-
Andres Calderon Jaramillo authored
CL:2122484 overrode ProvidePictureBuffersWithVisibleRect() in VdaVideoDecoder in order to fix an issue where the coded size of a VideoFrame was not being advertised correctly to the client. This fix must also be applied to GpuVideoDecodeAccelerator. Otherwise, an AssignPictureBuffers() call can fail due to the validation in [1]. This CL makes the default implementation of ProvidePictureBuffersWithVisibleRect() behave as in VdaVideoDecoder. However, it only does so when the texture target is GL_TEXTURE_EXTERNAL_OES; otherwise, it uses the same implementation as before. In order to test, I adapted the video_decode example that comes with the Native Client SDK to use a 1920x1080 video which triggers this problem. Before this CL, no video would be rendered and we would get validation errors from [1]. After this CL, no errors are observed in the logs and the video is rendered. I tested this across multiple devices. Kukui is the only one that failed (Native Client says it's a crash) but this happens even before CL:2122484, so it's not a regression caused by the series of fixes for the referenced bug. Nyan_kitty shows a small white artifact on the bottom that will need to be addressed later. The test results are in [2]. [1] https://source.chromium.org/chromium/chromium/src/+/master:media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc;l=1275-1286;drc=2b1b0cc6e2fa7c34965c39caa561e28e9e831626?originalUrl=https:%2F%2Fcs.chromium.org%2F [2] https://drive.google.com/open?id=1ErWDq9bd3ZnLnPU3uhlGQ2zV6zJw7wyT Bug: 1062002,1067794 Test: kevin, kukui, eve, hana, nyan_kitty with procedure described above. Change-Id: I0177f63ab7d19ca196646a017ee532880ec555fb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2134417 Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Reviewed-by:
Dan Sanders <sandersd@chromium.org> Cr-Commit-Position: refs/heads/master@{#756494}
d852ccda