Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Issue 1490333005: Don't require VDAs to return all PictureBuffers at once. (Closed)

Created:
5 years ago by liberato (no reviews please)
Modified:
5 years ago
CC:
chromium-reviews, darin-cc_chromium.org, feature-media-reviews_chromium.org, jam, mcasas+watch_chromium.org, piman+watch_chromium.org, posciak+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Don't require VDAs to return all PictureBuffers at once. The android deferred rendering backing strategy cannot always guarantee a minimum number of outstanding PictureBuffers beyond one at the client. Failure to do so can cause the pipeline to hang waiting for more pictures before returning any. This CL allows the VDA to provide a flag with its SupportedProfiles, collectively called the VDA Capabilities, that indicates that it cannot promise to return all of the PictureBuffers at once. In practice, GpuVideoDecoder uses this flag to always return false from CanReadWithoutStalling, once picture buffers are assigned. BUG=531606 Committed: https://crrev.com/57587790264882a5e0b83f90b896a81d7c0b7212 Cr-Commit-Position: refs/heads/master@{#364387}

Patch Set 1 #

Total comments: 9

Patch Set 2 : moved flags into VDA::Capabilities. #

Total comments: 3

Patch Set 3 : bot failures, cl feedback. #

Total comments: 2

Patch Set 4 : removed GpuVideoDecoderFactories::Get...SupportedProfiles #

Patch Set 5 : kSomeValue => SOME_VALUE to match the rest of the file. #

Patch Set 6 : ...because trybots have feelings too. #

Total comments: 22

Patch Set 7 : rebased, fixed webrtc test. #

Patch Set 8 : unit test. #

Total comments: 8

Patch Set 9 : cl feedback #

Total comments: 10

Patch Set 10 : enum => int32, docs. #

Total comments: 6

Patch Set 11 : cl feedback. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+206 lines, -116 lines) Patch
M content/common/gpu/gpu_messages.h View 1 2 3 4 5 6 2 chunks +6 lines, -1 line 0 comments Download
M content/common/gpu/media/android_copying_backing_strategy.h View 1 2 3 4 2 chunks +5 lines, -1 line 0 comments Download
M content/common/gpu/media/android_copying_backing_strategy.cc View 1 2 2 chunks +0 lines, -11 lines 0 comments Download
M content/common/gpu/media/android_deferred_rendering_backing_strategy.h View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -1 line 0 comments Download
M content/common/gpu/media/android_deferred_rendering_backing_strategy.cc View 1 2 2 chunks +0 lines, -9 lines 0 comments Download
M content/common/gpu/media/android_video_decode_accelerator.h View 1 2 3 4 5 6 3 chunks +2 lines, -7 lines 0 comments Download
M content/common/gpu/media/android_video_decode_accelerator.cc View 1 2 3 4 5 6 7 8 9 chunks +25 lines, -11 lines 0 comments Download
M content/common/gpu/media/android_video_decode_accelerator_unittest.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -2 lines 0 comments Download
M content/common/gpu/media/gpu_video_accelerator_util.h View 1 1 chunk +10 lines, -0 lines 0 comments Download
M content/common/gpu/media/gpu_video_accelerator_util.cc View 1 2 3 4 5 6 7 8 9 2 chunks +22 lines, -0 lines 0 comments Download
M content/common/gpu/media/gpu_video_decode_accelerator.h View 1 2 3 4 5 6 1 chunk +4 lines, -4 lines 0 comments Download
M content/common/gpu/media/gpu_video_decode_accelerator.cc View 1 2 3 4 5 6 3 chunks +19 lines, -22 lines 0 comments Download
M content/gpu/gpu_main.cc View 1 2 3 4 5 6 1 chunk +2 lines, -2 lines 0 comments Download
M content/renderer/media/renderer_gpu_video_accelerator_factories.h View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M content/renderer/media/renderer_gpu_video_accelerator_factories.cc View 1 2 3 1 chunk +4 lines, -6 lines 0 comments Download
M content/renderer/media/rtc_video_decoder.cc View 1 2 3 4 5 6 1 chunk +3 lines, -3 lines 0 comments Download
M content/renderer/media/rtc_video_decoder_unittest.cc View 1 2 3 4 5 6 2 chunks +5 lines, -5 lines 0 comments Download
M gpu/config/gpu_info.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +9 lines, -2 lines 0 comments Download
M gpu/config/gpu_info.cc View 1 2 3 chunks +10 lines, -3 lines 0 comments Download
M gpu/config/gpu_info_collector.cc View 1 2 3 4 5 6 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/config/gpu_info_unittest.cc View 1 2 3 1 chunk +4 lines, -1 line 0 comments Download
M media/filters/gpu_video_decoder.h View 1 2 3 4 5 6 7 8 9 2 chunks +12 lines, -3 lines 0 comments Download
M media/filters/gpu_video_decoder.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +18 lines, -9 lines 0 comments Download
M media/renderers/gpu_video_accelerator_factories.h View 1 2 3 1 chunk +4 lines, -3 lines 0 comments Download
M media/renderers/mock_gpu_video_accelerator_factories.h View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M media/video/video_decode_accelerator.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +23 lines, -0 lines 0 comments Download
M media/video/video_decode_accelerator.cc View 1 2 3 4 5 6 1 chunk +6 lines, -4 lines 0 comments Download

Messages

Total messages: 32 (10 generated)
liberato (no reviews please)
here's the !CanReadWithoutStalling implementation that uses SupportedProfiles instead. i like it better. thanks -fl https://codereview.chromium.org/1490333005/diff/1/content/common/gpu/media/android_video_decode_accelerator.cc ...
5 years ago (2015-12-03 21:21:01 UTC) #3
sandersd (OOO until July 31)
lgtm
5 years ago (2015-12-03 21:44:32 UTC) #4
DaleCurtis
lgtm https://codereview.chromium.org/1490333005/diff/1/content/common/gpu/media/android_video_decode_accelerator.cc File content/common/gpu/media/android_video_decode_accelerator.cc (right): https://codereview.chromium.org/1490333005/diff/1/content/common/gpu/media/android_video_decode_accelerator.cc#newcode56 content/common/gpu/media/android_video_decode_accelerator.cc:56: #define kBackingStrategy AndroidDeferredRenderingBackingStrategy ALL_CAPS
5 years ago (2015-12-03 21:59:47 UTC) #5
Pawel Osciak
https://codereview.chromium.org/1490333005/diff/1/gpu/config/gpu_info.h File gpu/config/gpu_info.h (right): https://codereview.chromium.org/1490333005/diff/1/gpu/config/gpu_info.h#newcode62 gpu/config/gpu_info.h:62: uint32 flags; Do we need this in each profile? ...
5 years ago (2015-12-04 11:09:45 UTC) #7
liberato (no reviews please)
added VDA::GetCapabilities to replace GetSupportedProfiles, and moved the flag there. -fl https://codereview.chromium.org/1490333005/diff/1/content/common/gpu/media/android_video_decode_accelerator.cc File content/common/gpu/media/android_video_decode_accelerator.cc (right): ...
5 years ago (2015-12-04 18:28:58 UTC) #8
DaleCurtis
https://codereview.chromium.org/1490333005/diff/20001/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc File content/common/gpu/media/android_deferred_rendering_backing_strategy.cc (right): https://codereview.chromium.org/1490333005/diff/20001/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc#newcode26 content/common/gpu/media/android_deferred_rendering_backing_strategy.cc:26: enum { kNumPictureBuffers = 4 }; Should this be ...
5 years ago (2015-12-04 18:40:14 UTC) #9
liberato (no reviews please)
https://codereview.chromium.org/1490333005/diff/20001/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc File content/common/gpu/media/android_deferred_rendering_backing_strategy.cc (right): https://codereview.chromium.org/1490333005/diff/20001/content/common/gpu/media/android_deferred_rendering_backing_strategy.cc#newcode26 content/common/gpu/media/android_deferred_rendering_backing_strategy.cc:26: enum { kNumPictureBuffers = 4 }; On 2015/12/04 18:40:13, ...
5 years ago (2015-12-04 18:50:04 UTC) #10
sandersd (OOO until July 31)
This just gets better and better \o/. https://codereview.chromium.org/1490333005/diff/40001/media/video/video_decode_accelerator.h File media/video/video_decode_accelerator.h (right): https://codereview.chromium.org/1490333005/diff/40001/media/video/video_decode_accelerator.h#newcode42 media/video/video_decode_accelerator.h:42: kNoFlags = ...
5 years ago (2015-12-04 19:10:24 UTC) #13
Pawel Osciak
https://chromiumcodereview.appspot.com/1490333005/diff/20002/content/common/gpu/media/gpu_video_accelerator_util.cc File content/common/gpu/media/gpu_video_accelerator_util.cc (right): https://chromiumcodereview.appspot.com/1490333005/diff/20002/content/common/gpu/media/gpu_video_accelerator_util.cc#newcode41 content/common/gpu/media/gpu_video_accelerator_util.cc:41: static_cast<media::VideoDecodeAccelerator::Capabilities::Flags>( Is the cast needed? Both are uint32s... https://chromiumcodereview.appspot.com/1490333005/diff/20002/content/renderer/media/renderer_gpu_video_accelerator_factories.h ...
5 years ago (2015-12-05 00:18:55 UTC) #14
liberato (no reviews please)
dcheng: can you provide owners feedback for gpu_messages? kbr: can you provide owners feedback for ...
5 years ago (2015-12-07 19:04:40 UTC) #16
Ken Russell (switch to Gerrit)
Mostly rubber-stamp LGTM based on others' reviews. Couple of comments. https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/media/android_video_decode_accelerator.cc File content/common/gpu/media/android_video_decode_accelerator.cc (right): https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/media/android_video_decode_accelerator.cc#newcode37 ...
5 years ago (2015-12-07 22:06:12 UTC) #17
dcheng
https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/gpu_messages.h File content/common/gpu/gpu_messages.h (right): https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/gpu_messages.h#newcode232 content/common/gpu/gpu_messages.h:232: IPC_STRUCT_TRAITS_MEMBER(flags) How does this work? I don't see an ...
5 years ago (2015-12-08 04:57:59 UTC) #18
liberato (no reviews please)
thanks for the feedback! -fl https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/gpu_messages.h File content/common/gpu/gpu_messages.h (right): https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/gpu_messages.h#newcode232 content/common/gpu/gpu_messages.h:232: IPC_STRUCT_TRAITS_MEMBER(flags) On 2015/12/08 04:57:59, ...
5 years ago (2015-12-08 15:55:57 UTC) #19
Pawel Osciak
https://codereview.chromium.org/1490333005/diff/20002/content/renderer/media/renderer_gpu_video_accelerator_factories.h File content/renderer/media/renderer_gpu_video_accelerator_factories.h (right): https://codereview.chromium.org/1490333005/diff/20002/content/renderer/media/renderer_gpu_video_accelerator_factories.h#newcode85 content/renderer/media/renderer_gpu_video_accelerator_factories.h:85: GetVideoDecodeAcceleratorCapabilities() override; On 2015/12/07 19:04:39, liberato wrote: > On ...
5 years ago (2015-12-09 01:31:49 UTC) #20
dcheng
https://codereview.chromium.org/1490333005/diff/20002/media/renderers/gpu_video_accelerator_factories.h File media/renderers/gpu_video_accelerator_factories.h (right): https://codereview.chromium.org/1490333005/diff/20002/media/renderers/gpu_video_accelerator_factories.h#newcode103 media/renderers/gpu_video_accelerator_factories.h:103: GetVideoDecodeAcceleratorCapabilities() = 0; On 2015/12/09 at 01:31:48, Pawel Osciak ...
5 years ago (2015-12-09 01:41:50 UTC) #21
liberato (no reviews please)
https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/gpu_messages.h File content/common/gpu/gpu_messages.h (right): https://codereview.chromium.org/1490333005/diff/130001/content/common/gpu/gpu_messages.h#newcode232 content/common/gpu/gpu_messages.h:232: IPC_STRUCT_TRAITS_MEMBER(flags) On 2015/12/09 01:41:50, dcheng wrote: > On 2015/12/08 ...
5 years ago (2015-12-09 22:15:31 UTC) #22
Pawel Osciak
Thank you very much for your patience with this! lgtm % question https://chromiumcodereview.appspot.com/1490333005/diff/170001/media/filters/gpu_video_decoder.cc File media/filters/gpu_video_decoder.cc ...
5 years ago (2015-12-10 02:03:23 UTC) #23
dcheng
lgtm https://codereview.chromium.org/1490333005/diff/170001/media/video/video_decode_accelerator.h File media/video/video_decode_accelerator.h (right): https://codereview.chromium.org/1490333005/diff/170001/media/video/video_decode_accelerator.h#newcode41 media/video/video_decode_accelerator.h:41: enum Flags { Is there a convention around ...
5 years ago (2015-12-10 07:09:48 UTC) #24
liberato (no reviews please)
thanks for all the feedback! -fl https://codereview.chromium.org/1490333005/diff/170001/media/filters/gpu_video_decoder.cc File media/filters/gpu_video_decoder.cc (right): https://codereview.chromium.org/1490333005/diff/170001/media/filters/gpu_video_decoder.cc#newcode366 media/filters/gpu_video_decoder.cc:366: (!needs_all_picture_buffers_to_decode_ && available_pictures_ ...
5 years ago (2015-12-10 15:56:07 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1490333005/190001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1490333005/190001
5 years ago (2015-12-10 15:57:06 UTC) #28
commit-bot: I haz the power
Committed patchset #11 (id:190001)
5 years ago (2015-12-10 17:16:35 UTC) #30
commit-bot: I haz the power
5 years ago (2015-12-10 17:17:47 UTC) #32
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/57587790264882a5e0b83f90b896a81d7c0b7212
Cr-Commit-Position: refs/heads/master@{#364387}

Powered by Google App Engine
This is Rietveld 408576698