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

Issue 8417019: Simplify VideoDecodeEngine interface by making everything synchronous. (Closed)

Created:
9 years, 1 month ago by scherkus (not reviewing)
Modified:
9 years, 1 month ago
CC:
chromium-reviews, hclam+watch_chromium.org, ddorwin+watch_chromium.org, fischman+watch_chromium.org, Paweł Hajdan Jr., acolwell+watch_chromium.org, annacc+watch_chromium.org, ajwong+watch_chromium.org, vrk (LEFT CHROMIUM), ihf+watch_chromium.org
Visibility:
Public.

Description

Simplify VideoDecodeEngine interface by making everything synchronous. Although I plan to remove VideoDecodeEngine entirely it requires detangling some of the code first. Other noteworthy changes: - It's no longer valid to call VideoFrameReady(NULL), instead FFmpegVideoDecoder will raise an error the moment it finds one - Buffer recycling has been vanquished (for now), with video frames always allocated in the decoder - Produce/ConsumeVideoFrame() has been replaced by Read() - Video decode byte statistics are only updated if more than 0 bytes were decoded - FFmpegVideoDecodeEngine no longer attempts to preroll Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=108612

Patch Set 1 #

Patch Set 2 : rebase #

Patch Set 3 : cleanup #

Patch Set 4 : cleanup++ #

Total comments: 21

Patch Set 5 : recycling: vanquished #

Total comments: 78

Patch Set 6 : fixes #

Total comments: 20

Patch Set 7 : fixes! #

Patch Set 8 : fix for CaptureVideoDecoder #

Unified diffs Side-by-side diffs Delta from patch set Stats (+519 lines, -1335 lines) Patch
M content/renderer/media/capture_video_decoder.h View 1 2 3 4 5 6 3 chunks +8 lines, -7 lines 0 comments Download
M content/renderer/media/capture_video_decoder.cc View 1 2 3 4 5 6 7 6 chunks +30 lines, -39 lines 0 comments Download
M content/renderer/media/capture_video_decoder_unittest.cc View 1 2 3 4 5 4 chunks +9 lines, -12 lines 0 comments Download
M content/renderer/media/rtc_video_decoder.h View 1 2 3 4 5 6 3 chunks +5 lines, -6 lines 0 comments Download
M content/renderer/media/rtc_video_decoder.cc View 1 2 3 4 5 6 4 chunks +21 lines, -52 lines 0 comments Download
M content/renderer/media/rtc_video_decoder_unittest.cc View 1 2 3 4 5 3 chunks +3 lines, -19 lines 0 comments Download
M media/base/filters.h View 1 2 3 4 5 6 3 chunks +12 lines, -23 lines 0 comments Download
M media/base/mock_filters.h View 1 2 3 4 5 6 1 chunk +2 lines, -6 lines 0 comments Download
M media/base/video_decoder_config.cc View 1 2 3 4 5 2 chunks +5 lines, -1 line 0 comments Download
M media/filters/ffmpeg_video_decoder.h View 1 2 3 4 5 6 3 chunks +16 lines, -41 lines 0 comments Download
M media/filters/ffmpeg_video_decoder.cc View 1 2 3 4 5 6 9 chunks +114 lines, -166 lines 0 comments Download
M media/filters/ffmpeg_video_decoder_unittest.cc View 1 2 3 4 5 17 chunks +67 lines, -78 lines 0 comments Download
M media/filters/video_renderer_base.h View 1 2 3 4 5 5 chunks +32 lines, -25 lines 0 comments Download
M media/filters/video_renderer_base.cc View 1 2 3 4 5 12 chunks +87 lines, -213 lines 0 comments Download
M media/filters/video_renderer_base_unittest.cc View 1 2 3 4 5 6 11 chunks +22 lines, -87 lines 0 comments Download
M media/media.gyp View 1 2 3 4 2 chunks +0 lines, -2 lines 0 comments Download
M media/video/ffmpeg_video_decode_engine.h View 1 2 3 4 5 2 chunks +12 lines, -37 lines 0 comments Download
M media/video/ffmpeg_video_decode_engine.cc View 1 2 3 4 5 6 8 chunks +56 lines, -155 lines 0 comments Download
D media/video/ffmpeg_video_decode_engine_unittest.cc View 1 2 3 4 5 1 chunk +0 lines, -286 lines 0 comments Download
M media/video/video_decode_engine.h View 1 2 3 4 5 1 chunk +18 lines, -80 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
scherkus (not reviewing)
http://codereview.chromium.org/8417019/diff/6001/media/filters/ffmpeg_video_decoder.cc File media/filters/ffmpeg_video_decoder.cc (right): http://codereview.chromium.org/8417019/diff/6001/media/filters/ffmpeg_video_decoder.cc#newcode168 media/filters/ffmpeg_video_decoder.cc:168: scoped_refptr<VideoFrame> video_frame; I'm not entirely sure if I should ...
9 years, 1 month ago (2011-10-28 16:54:03 UTC) #1
acolwell GONE FROM CHROMIUM
http://codereview.chromium.org/8417019/diff/6001/media/filters/ffmpeg_video_decoder.cc File media/filters/ffmpeg_video_decoder.cc (right): http://codereview.chromium.org/8417019/diff/6001/media/filters/ffmpeg_video_decoder.cc#newcode58 media/filters/ffmpeg_video_decoder.cc:58: callback.Run(); I'd like to see callback converted to a ...
9 years, 1 month ago (2011-10-28 17:38:47 UTC) #2
scherkus (not reviewing)
I realize this patch will be complicated to review but it's conceptually much simpler: 1) ...
9 years, 1 month ago (2011-11-01 04:18:26 UTC) #3
acolwell GONE FROM CHROMIUM
Initial pass of comments. http://codereview.chromium.org/8417019/diff/8001/content/renderer/media/rtc_video_decoder.cc File content/renderer/media/rtc_video_decoder.cc (right): http://codereview.chromium.org/8417019/diff/8001/content/renderer/media/rtc_video_decoder.cc#newcode58 content/renderer/media/rtc_video_decoder.cc:58: frame_ready_cb_.Reset(); // is this needed? ...
9 years, 1 month ago (2011-11-01 18:31:03 UTC) #4
Ami GONE FROM CHROMIUM
I love this CL! http://codereview.chromium.org/8417019/diff/8001/media/base/filters.h File media/base/filters.h (left): http://codereview.chromium.org/8417019/diff/8001/media/base/filters.h#oldcode196 media/base/filters.h:196: // TODO(scherkus): name this ConsumeVideoFrame() ...
9 years, 1 month ago (2011-11-01 22:17:40 UTC) #5
scherkus (not reviewing)
we're running into a lot of re-entrancy issues with our auto-trampolining checks http://codereview.chromium.org/8417019/diff/8001/content/renderer/media/rtc_video_decoder.cc File content/renderer/media/rtc_video_decoder.cc ...
9 years, 1 month ago (2011-11-03 04:55:59 UTC) #6
Ami GONE FROM CHROMIUM
LGTM modulo nits. Leaving careful tests & state-machine review for acolwell. http://codereview.chromium.org/8417019/diff/8001/media/filters/ffmpeg_video_decoder.h File media/filters/ffmpeg_video_decoder.h (right): ...
9 years, 1 month ago (2011-11-03 16:40:00 UTC) #7
acolwell GONE FROM CHROMIUM
LGTM just some nits on comments. http://codereview.chromium.org/8417019/diff/22001/content/renderer/media/rtc_video_decoder.h File content/renderer/media/rtc_video_decoder.h (right): http://codereview.chromium.org/8417019/diff/22001/content/renderer/media/rtc_video_decoder.h#newcode73 content/renderer/media/rtc_video_decoder.h:73: // Used for ...
9 years, 1 month ago (2011-11-03 20:00:43 UTC) #8
scherkus (not reviewing)
thanks for the review! wjia: can you sanity check the RTCVideoDecoder/CaptureVideoDecoder changes? http://codereview.chromium.org/8417019/diff/22001/content/renderer/media/rtc_video_decoder.h File content/renderer/media/rtc_video_decoder.h ...
9 years, 1 month ago (2011-11-03 20:34:38 UTC) #9
wjia(left Chromium)
Video capture preview crashes. The reason is that natural_size_ is not set correctly. Attached are ...
9 years, 1 month ago (2011-11-04 00:16:06 UTC) #10
scherkus (not reviewing)
ah! you must have tried PS#7 instead of PS#8 which has the fix I tried ...
9 years, 1 month ago (2011-11-04 00:37:38 UTC) #11
wjia(left Chromium)
Please use the fix I have attached. The PS#8 happens to work for some cases ...
9 years, 1 month ago (2011-11-04 00:43:28 UTC) #12
scherkus (not reviewing)
9 years, 1 month ago (2011-11-04 02:47:47 UTC) #13
On 2011/11/04 00:43:28, wjia wrote:
> Please use the fix I have attached. The PS#8 happens to work for some cases
> where requested resolutions are supported by camera. Otherwise, it will
> have problem. We need to use resolution returned by camera, not the one
> requested by user.
> 
> It's ok if you want to make a follow up patch.

Followup patch here:
http://codereview.chromium.org/8466001
 
> On Thu, Nov 3, 2011 at 5:37 PM, <mailto:scherkus@chromium.org> wrote:
> 
> > ah! you must have tried PS#7 instead of PS#8 which has the fix
> >
> > I tried out your link with PS#8 and it works great (cool demo!)
> >
> >
>
http://codereview.chromium.**org/8417019/%3Chttp://codereview.chromium.org/84...>
> >

Powered by Google App Engine
This is Rietveld 408576698