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

Issue 239893002: Allow multiple concurrent Decode() requests in VideoDecoder interface. (Closed)

Created:
6 years, 8 months ago by Sergey Ulanov
Modified:
6 years, 7 months ago
CC:
chromium-reviews, feature-media-reviews_chromium.org
Visibility:
Public.

Description

Allow multiple concurrent Decode() requests in VideoDecoder interface. Previosly VideoDecoder interface allowed only one pending Decode() request. This meant that decoders that want to decode multiple buffers simultaneously had to delay frames in order get multiple buffers from demuxer. Now VideoDecode implementation may allow multiple concurrent Decode() requests, which is determined by the new VideoDecoder::GetMaxDecodeRequests(). Also updated DecodeStream to allow decoding multiple frames in parallel. BUG=338529 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=268140

Patch Set 1 #

Total comments: 12

Patch Set 2 : #

Total comments: 28

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Total comments: 49

Patch Set 6 : #

Total comments: 13

Patch Set 7 : #

Total comments: 2

Patch Set 8 : #

Total comments: 6

Patch Set 9 : #

Patch Set 10 : #

Patch Set 11 : fix windows #

Patch Set 12 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+577 lines, -202 lines) Patch
M media/base/video_decoder.h View 1 2 3 4 5 6 7 8 3 chunks +13 lines, -3 lines 0 comments Download
M media/base/video_decoder.cc View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M media/filters/decoder_stream.h View 1 2 3 4 5 6 7 8 4 chunks +13 lines, -3 lines 0 comments Download
M media/filters/decoder_stream.cc View 1 2 3 4 5 6 7 8 18 chunks +106 lines, -49 lines 0 comments Download
M media/filters/fake_demuxer_stream.h View 1 2 3 4 5 1 chunk +3 lines, -0 lines 0 comments Download
M media/filters/fake_demuxer_stream.cc View 1 2 3 4 5 1 chunk +9 lines, -0 lines 0 comments Download
M media/filters/fake_video_decoder.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +29 lines, -9 lines 0 comments Download
M media/filters/fake_video_decoder.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +121 lines, -47 lines 0 comments Download
M media/filters/fake_video_decoder_unittest.cc View 1 2 3 4 5 6 7 8 11 chunks +100 lines, -62 lines 0 comments Download
M media/filters/video_frame_stream_unittest.cc View 1 2 3 4 5 6 7 8 10 chunks +179 lines, -29 lines 0 comments Download

Messages

Total messages: 34 (0 generated)
Sergey Ulanov
I haven't added any new tests for this change yet - I'd like to get ...
6 years, 8 months ago (2014-04-16 00:52:15 UTC) #1
Ami GONE FROM CHROMIUM
The basic approach looks fine to me, though I believe xhwang@ has strong feelings on ...
6 years, 8 months ago (2014-04-16 01:00:00 UTC) #2
Sergey Ulanov
https://codereview.chromium.org/239893002/diff/1/media/base/video_decoder.h File media/base/video_decoder.h (right): https://codereview.chromium.org/239893002/diff/1/media/base/video_decoder.h#newcode52 media/base/video_decoder.h:52: // parallel. On 2014/04/16 01:00:00, Ami Fischman wrote: > ...
6 years, 8 months ago (2014-04-16 01:44:14 UTC) #3
Ami GONE FROM CHROMIUM
On Tue, Apr 15, 2014 at 6:44 PM, <sergeyu@chromium.org> wrote: > I don't feel strongly ...
6 years, 8 months ago (2014-04-16 01:46:37 UTC) #4
xhwang
Sorry for late reply. This CL touches some fundamental principle that we keep for long ...
6 years, 8 months ago (2014-04-17 01:06:47 UTC) #5
xhwang
https://codereview.chromium.org/239893002/diff/20001/media/filters/gpu_video_decoder.h File media/filters/gpu_video_decoder.h (right): https://codereview.chromium.org/239893002/diff/20001/media/filters/gpu_video_decoder.h#newcode139 media/filters/gpu_video_decoder.h:139: std::list<DecodeCB> pending_decode_callbacks_; On 2014/04/17 01:06:47, xhwang wrote: > Usually ...
6 years, 8 months ago (2014-04-17 01:21:07 UTC) #6
Sergey Ulanov
https://codereview.chromium.org/239893002/diff/20001/media/filters/decoder_stream.cc File media/filters/decoder_stream.cc (right): https://codereview.chromium.org/239893002/diff/20001/media/filters/decoder_stream.cc#newcode89 media/filters/decoder_stream.cc:89: state_ == STATE_ERROR || state_ == STATE_REINITIALIZING_DECODER) On 2014/04/17 ...
6 years, 8 months ago (2014-04-23 02:44:20 UTC) #7
Ami GONE FROM CHROMIUM
Sergey: please update reviewlog when you're ready for a real review or need one or ...
6 years, 8 months ago (2014-04-23 17:25:53 UTC) #8
Sergey Ulanov
On 2014/04/23 17:25:53, Ami Fischman wrote: > Sergey: please update reviewlog when you're ready for ...
6 years, 8 months ago (2014-04-23 19:43:34 UTC) #9
Ami GONE FROM CHROMIUM
LG and defer to xhwang for the real/final review. Thanks!
6 years, 8 months ago (2014-04-23 21:28:56 UTC) #10
scherkus (not reviewing)
(FYI taking a look at this today -- was behind on my code reviews)
6 years, 8 months ago (2014-04-24 17:31:49 UTC) #11
xhwang
It looks good in general. Thanks! As discussed offline, parallel decoding cannot work with decoders ...
6 years, 8 months ago (2014-04-25 00:36:02 UTC) #12
Sergey Ulanov
https://codereview.chromium.org/239893002/diff/100001/media/base/video_decoder.h File media/base/video_decoder.h (right): https://codereview.chromium.org/239893002/diff/100001/media/base/video_decoder.h#newcode51 media/base/video_decoder.h:51: // GetMaxDecodeRequests() to get number of frames that may ...
6 years, 8 months ago (2014-04-26 00:59:28 UTC) #13
Sergey Ulanov
scherkus, xhwang: ping
6 years, 7 months ago (2014-04-29 01:14:33 UTC) #14
xhwang
On 2014/04/29 01:14:33, Sergey Ulanov wrote: > scherkus, xhwang: ping Sorry for the delay. I ...
6 years, 7 months ago (2014-04-29 17:14:38 UTC) #15
xhwang
Looking pretty good! Just a few comments on tests and comments. scherkus@: You should skim ...
6 years, 7 months ago (2014-04-29 20:01:25 UTC) #16
xhwang
BTW, feel free to play with more combinations of decoding_delay, parallel_deocodes etc to make sure ...
6 years, 7 months ago (2014-04-29 20:02:42 UTC) #17
Sergey Ulanov
https://codereview.chromium.org/239893002/diff/100001/media/filters/decoder_stream.cc File media/filters/decoder_stream.cc (right): https://codereview.chromium.org/239893002/diff/100001/media/filters/decoder_stream.cc#newcode309 media/filters/decoder_stream.cc:309: if (pending_decode_requests_ == 0) Ah, I see your point. ...
6 years, 7 months ago (2014-04-30 18:56:51 UTC) #18
xhwang
Thanks! Only one comment about the new test. https://codereview.chromium.org/239893002/diff/140001/media/filters/video_frame_stream_unittest.cc File media/filters/video_frame_stream_unittest.cc (right): https://codereview.chromium.org/239893002/diff/140001/media/filters/video_frame_stream_unittest.cc#newcode462 media/filters/video_frame_stream_unittest.cc:462: // ...
6 years, 7 months ago (2014-04-30 21:36:51 UTC) #19
Sergey Ulanov
https://codereview.chromium.org/239893002/diff/140001/media/filters/video_frame_stream_unittest.cc File media/filters/video_frame_stream_unittest.cc (right): https://codereview.chromium.org/239893002/diff/140001/media/filters/video_frame_stream_unittest.cc#newcode462 media/filters/video_frame_stream_unittest.cc:462: // still blocked. On 2014/04/30 21:36:52, xhwang wrote: > ...
6 years, 7 months ago (2014-04-30 22:43:00 UTC) #20
xhwang
Thanks for the hard work! LGTM % nits https://codereview.chromium.org/239893002/diff/160001/media/filters/fake_video_decoder.cc File media/filters/fake_video_decoder.cc (right): https://codereview.chromium.org/239893002/diff/160001/media/filters/fake_video_decoder.cc#newcode58 media/filters/fake_video_decoder.cc:58: decoding_delay_ ...
6 years, 7 months ago (2014-05-01 17:40:34 UTC) #21
Sergey Ulanov
Andrew, should I wait for your review or can I land it now? https://codereview.chromium.org/239893002/diff/160001/media/filters/fake_video_decoder.cc File ...
6 years, 7 months ago (2014-05-02 02:25:53 UTC) #22
Sergey Ulanov
After testing this change more I discovered that it break H.264 decoding on daisy_spring devices. ...
6 years, 7 months ago (2014-05-03 01:26:27 UTC) #23
Sergey Ulanov
The CQ bit was checked by sergeyu@chromium.org
6 years, 7 months ago (2014-05-03 01:48:54 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sergeyu@chromium.org/239893002/200001
6 years, 7 months ago (2014-05-03 01:50:37 UTC) #25
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-03 03:34:49 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_x64_rel on tryserver.chromium
6 years, 7 months ago (2014-05-03 03:34:49 UTC) #27
Sergey Ulanov
The CQ bit was checked by sergeyu@chromium.org
6 years, 7 months ago (2014-05-04 19:19:50 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sergeyu@chromium.org/239893002/220001
6 years, 7 months ago (2014-05-04 19:19:53 UTC) #29
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-04 20:15:45 UTC) #30
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium
6 years, 7 months ago (2014-05-04 20:15:45 UTC) #31
Sergey Ulanov
The CQ bit was checked by sergeyu@chromium.org
6 years, 7 months ago (2014-05-05 01:29:45 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sergeyu@chromium.org/239893002/240001
6 years, 7 months ago (2014-05-05 01:29:53 UTC) #33
commit-bot: I haz the power
6 years, 7 months ago (2014-05-05 03:15:04 UTC) #34
Message was sent while issue was closed.
Change committed as 268140

Powered by Google App Engine
This is Rietveld 408576698