New issue
Advanced search Search tips

Issue 906623 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Windows , Chrome , Mac
Pri: 1
Type: Bug



Sign in to add a comment

VDAViideoDecoder doesn't handle resolution change correctly?

Project Member Reported by hiroh@chromium.org, Nov 19

Issue description

We have run into the regression related to resolution change,  crbug.com/906475 .
It turned out the CL to enable MojoVideoDecoder on CrOS was culprit, which was already reverted for some other issues, crrev.com/c/1328634.
Doesn't VDAVideoDecoder handle resolution change correctly with CrOS VDAs?
The regression happens with all of three CrOS VDAs, V4L2VDA, V4L2SVDA and VaapiVDA.

Dan, could you take a look?
 
Is there a way for me to run these tests myself? The logs are not informative, and VdaVideoDecoder absolutely handles resolution changes.
The test is a simple custom html page with a <video> element seeking via js: https://chromium.googlesource.com/chromiumos/third_party/autotest/+/HEAD/client/site_tests/video_VideoSeek/. 

I think it should be possible to reproduce via http://crosvideo.appspot.com/?cycle=true&mute=true&loop=true&seek=true as well though.
Components: -OS>Kernel>Video Internals>Media>Hardware
Labels: -Pri-2 M-72 OS-Android OS-Mac OS-Windows Pri-1
Affects at least Windows as well, will need to merge back at least some change (either the fix or turn off the flag).
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35b82bc8409d987903dae8ff366ebebb9d526bf0

commit 35b82bc8409d987903dae8ff366ebebb9d526bf0
Author: Dan Sanders <sandersd@chromium.org>
Date: Mon Dec 10 21:30:36 2018

[media] Fix race between ready and dismiss in VdaVideoDecoder.

During the time between when VdaVideoDecoder posts PictureReady to the
parent thread and when that task runs, it is possible for a VDA to
dismiss the associated picture buffer.

This CL adds a hop through the parent thread for DismissPictureBuffer().

Bug:  906623 
Change-Id: I46db8aff8b7687e5ec7b00c70068002fe2f2983e
Reviewed-on: https://chromium-review.googlesource.com/c/1362005
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Ted Meyer <tmathmeyer@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615265}
[modify] https://crrev.com/35b82bc8409d987903dae8ff366ebebb9d526bf0/media/gpu/ipc/service/picture_buffer_manager.cc
[modify] https://crrev.com/35b82bc8409d987903dae8ff366ebebb9d526bf0/media/gpu/ipc/service/picture_buffer_manager.h
[modify] https://crrev.com/35b82bc8409d987903dae8ff366ebebb9d526bf0/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/35b82bc8409d987903dae8ff366ebebb9d526bf0/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/35b82bc8409d987903dae8ff366ebebb9d526bf0/media/gpu/ipc/service/vda_video_decoder_unittest.cc

Labels: Merge-Request-72
Code changes are small, straightforward, and tested. The failure mode is not sensitive, it's video playback failure during video size changes.
Project Member

Comment 6 by bugdroid1@chromium.org, Dec 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ca7f9b7713f5b5274b8d74a24d7526421e4c2350

commit ca7f9b7713f5b5274b8d74a24d7526421e4c2350
Author: Dan Sanders <sandersd@chromium.org>
Date: Tue Dec 11 23:56:50 2018

[media] Refactorings for VdaVideoDecoder and PictureBufferManager.

These refactorings were removed from https://crrev.com/c/1362005 to
reduce the size of the patch.

This change also fixes a previously unknown issue in
PictureBufferManager whereby show_existing_frame picture buffers could
be destroyed while there are still outstanding video frames using the
textures.

Bug:  906623 
Change-Id: I0a243684c9a6d44dec5a5f279cf28f51b79c99c0
Reviewed-on: https://chromium-review.googlesource.com/c/1368780
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615730}
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/command_buffer_helper.cc
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/command_buffer_helper.h
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/fake_command_buffer_helper.cc
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/fake_command_buffer_helper.h
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/ipc/service/picture_buffer_manager.cc
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/ipc/service/picture_buffer_manager_unittest.cc
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/ca7f9b7713f5b5274b8d74a24d7526421e4c2350/media/gpu/ipc/service/vda_video_decoder.h

can you verify which CL needs to be merged? Have you verified the fixes in canary?
Project Member

Comment 8 by sheriffbot@chromium.org, Dec 12

Labels: -Merge-Request-72 Hotlist-Merge-Approved Merge-Approved-72
Your change meets the bar and is auto-approved for M72. Please go ahead and merge the CL to branch 3626 manually. Please contact milestone owner if you have questions.
Owners: govind@(Android), kariahda@(iOS), djmm@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Pls merge your change to M72 branch 3626 ASAP. Thank you.
Pls merge your change to M72 branch 3626 ASAP so we can pick it up for next M72 Beta release. Thank you.
Sorry, I had wrong filters configured and missed all of this D:

Only the first CL is intended for M72, 35b82bc8409d987903dae8ff366ebebb9d526bf0. It has been tested and, due to my lack of attention, has baked in canary for some time. I will merge it immediately.
Project Member

Comment 12 by bugdroid1@chromium.org, Dec 14

Labels: -merge-approved-72 merge-merged-3626
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3bff2ba90ba82d6389039a809252e045cf745105

commit 3bff2ba90ba82d6389039a809252e045cf745105
Author: Dan Sanders <sandersd@chromium.org>
Date: Fri Dec 14 20:04:06 2018

[media] Fix race between ready and dismiss in VdaVideoDecoder.

During the time between when VdaVideoDecoder posts PictureReady to the
parent thread and when that task runs, it is possible for a VDA to
dismiss the associated picture buffer.

This CL adds a hop through the parent thread for DismissPictureBuffer().

Bug:  906623 
Change-Id: I46db8aff8b7687e5ec7b00c70068002fe2f2983e
Reviewed-on: https://chromium-review.googlesource.com/c/1362005
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Ted Meyer <tmathmeyer@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#615265}(cherry picked from commit 35b82bc8409d987903dae8ff366ebebb9d526bf0)
Reviewed-on: https://chromium-review.googlesource.com/c/1378632
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/branch-heads/3626@{#364}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}
[modify] https://crrev.com/3bff2ba90ba82d6389039a809252e045cf745105/media/gpu/ipc/service/picture_buffer_manager.cc
[modify] https://crrev.com/3bff2ba90ba82d6389039a809252e045cf745105/media/gpu/ipc/service/picture_buffer_manager.h
[modify] https://crrev.com/3bff2ba90ba82d6389039a809252e045cf745105/media/gpu/ipc/service/vda_video_decoder.cc
[modify] https://crrev.com/3bff2ba90ba82d6389039a809252e045cf745105/media/gpu/ipc/service/vda_video_decoder.h
[modify] https://crrev.com/3bff2ba90ba82d6389039a809252e045cf745105/media/gpu/ipc/service/vda_video_decoder_unittest.cc

Status: Fixed (was: Assigned)
Labels: Merge-Merged-72-3626
The following revision refers to this bug: 
https://chromium.googlesource.com/chromium/src.git/+/3bff2ba90ba82d6389039a809252e045cf745105

Commit: 3bff2ba90ba82d6389039a809252e045cf745105
Author: sandersd@chromium.org
Commiter: sandersd@chromium.org
Date: 2018-12-14 20:04:06 +0000 UTC

[media] Fix race between ready and dismiss in VdaVideoDecoder.

During the time between when VdaVideoDecoder posts PictureReady to the
parent thread and when that task runs, it is possible for a VDA to
dismiss the associated picture buffer.

This CL adds a hop through the parent thread for DismissPictureBuffer().

Bug:  906623 
Change-Id: I46db8aff8b7687e5ec7b00c70068002fe2f2983e
Reviewed-on: https://chromium-review.googlesource.com/c/1362005
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Ted Meyer <tmathmeyer@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#615265}(cherry picked from commit 35b82bc8409d987903dae8ff366ebebb9d526bf0)
Reviewed-on: https://chromium-review.googlesource.com/c/1378632
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/branch-heads/3626@{#364}
Cr-Branched-From: d897fb137fbaaa9355c0c93124cc048824eb1e65-refs/heads/master@{#612437}

Sign in to add a comment