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

Issue 906403006: [Cast] Size-Adaptable platform video encoders. (Closed)

Created:
5 years, 10 months ago by miu
Modified:
5 years, 10 months ago
Reviewers:
hubbe, jfroy
CC:
chromium-reviews, hclam+watch_chromium.org, imcheng+watch_chromium.org, hguihot+watch_chromium.org, jasonroberts+watch_google.com, avayvod+watch_chromium.org, pwestin+watch_google.com, feature-media-reviews_chromium.org, miu+watch_chromium.org, hubbe+watch_chromium.org, mikhal+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[Cast] Size-Adaptable platform video encoders. Provides a proxy VideoEncoder implementation that wraps ExternalVideoEncoder or H264VTEncoder to handle frame size changes. When the frame size changes, the proxy 1) waits for current encoder instance to finish encoding any frames in-progress, then 2) destroys the encoder, and 3) finally re-creates/initializes a new encoder instance. During this process, frames provided via InsertRawVideoFrame() are simply dropped. Merged external_encoder_unittest.cc and video_encoder_impl_unittest.cc into a single video_encoder_unittest.cc that tests *all* cast VideoEncoder implementations. Made a number of fixes to allow testing of the H264VTEncoder on desktop Macs and the trybots. BUG=451277 Committed: https://crrev.com/9005303cba2d9ab58dd4439295695a93c8801e96 Cr-Commit-Position: refs/heads/master@{#315723}

Patch Set 1 : Fix CastStreamingApiTestWithPixelOutput.RtpStreamError test. #

Total comments: 38

Patch Set 2 : Addressed jfroy's comments. #

Total comments: 3

Patch Set 3 : Addressed hubbe's comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1180 lines, -1005 lines) Patch
M chrome/renderer/media/cast_rtp_stream.h View 1 chunk +1 line, -0 lines 0 comments Download
M chrome/renderer/media/cast_rtp_stream.cc View 6 chunks +0 lines, -22 lines 0 comments Download
M chrome/test/data/extensions/api_test/cast_streaming/rtp_stream_error.js View 1 chunk +2 lines, -3 lines 0 comments Download
M media/cast/BUILD.gn View 2 chunks +3 lines, -2 lines 0 comments Download
M media/cast/cast.gyp View 1 chunk +2 lines, -0 lines 0 comments Download
M media/cast/cast_config.h View 1 chunk +0 lines, -2 lines 0 comments Download
M media/cast/cast_config.cc View 1 chunk +0 lines, -2 lines 0 comments Download
M media/cast/cast_sender.h View 1 2 2 chunks +14 lines, -6 lines 0 comments Download
M media/cast/cast_sender_impl.cc View 4 chunks +13 lines, -12 lines 0 comments Download
M media/cast/cast_testing.gypi View 1 chunk +1 line, -2 lines 0 comments Download
M media/cast/sender/external_video_encoder.h View 1 2 5 chunks +37 lines, -4 lines 0 comments Download
M media/cast/sender/external_video_encoder.cc View 1 2 8 chunks +76 lines, -41 lines 0 comments Download
D media/cast/sender/external_video_encoder_unittest.cc View 1 chunk +0 lines, -223 lines 0 comments Download
M media/cast/sender/h264_vt_encoder.h View 1 2 6 chunks +43 lines, -5 lines 0 comments Download
M media/cast/sender/h264_vt_encoder.cc View 1 2 13 chunks +201 lines, -55 lines 0 comments Download
M media/cast/sender/h264_vt_encoder_unittest.cc View 3 chunks +6 lines, -1 line 0 comments Download
A media/cast/sender/size_adaptable_video_encoder_base.h View 1 2 1 chunk +120 lines, -0 lines 0 comments Download
A media/cast/sender/size_adaptable_video_encoder_base.cc View 1 2 1 chunk +168 lines, -0 lines 0 comments Download
M media/cast/sender/video_encoder.h View 1 chunk +17 lines, -7 lines 0 comments Download
M media/cast/sender/video_encoder.cc View 1 chunk +51 lines, -1 line 0 comments Download
M media/cast/sender/video_encoder_impl.h View 2 chunks +3 lines, -1 line 0 comments Download
M media/cast/sender/video_encoder_impl.cc View 2 chunks +9 lines, -6 lines 0 comments Download
D media/cast/sender/video_encoder_impl_unittest.cc View 1 chunk +0 lines, -313 lines 0 comments Download
A + media/cast/sender/video_encoder_unittest.cc View 6 chunks +288 lines, -147 lines 0 comments Download
M media/cast/sender/video_frame_factory.h View 2 chunks +9 lines, -1 line 0 comments Download
M media/cast/sender/video_sender.cc View 3 chunks +12 lines, -35 lines 0 comments Download
M media/cast/sender/video_sender_unittest.cc View 7 chunks +60 lines, -53 lines 0 comments Download
M media/cast/test/cast_benchmarks.cc View 2 chunks +0 lines, -4 lines 0 comments Download
M media/cast/test/end2end_unittest.cc View 13 chunks +4 lines, -31 lines 0 comments Download
M media/cast/test/utility/default_config.cc View 1 chunk +0 lines, -2 lines 0 comments Download
M media/cast/test/utility/video_utility.cc View 2 chunks +40 lines, -24 lines 0 comments Download

Messages

Total messages: 15 (5 generated)
miu
jfroy: PTAL at media/cast/cast_sender* and media/cast/sender/h264* and media/cast/sender/video_frame_factory*. There is a behavior change in the ...
5 years, 10 months ago (2015-02-10 21:56:18 UTC) #4
jfroy
On 2015/02/10 21:56:18, miu wrote: > jfroy: PTAL at media/cast/cast_sender* and media/cast/sender/h264* and > media/cast/sender/video_frame_factory*. ...
5 years, 10 months ago (2015-02-10 22:11:37 UTC) #5
jfroy
https://codereview.chromium.org/906403006/diff/40001/media/cast/sender/h264_vt_encoder.cc File media/cast/sender/h264_vt_encoder.cc (right): https://codereview.chromium.org/906403006/diff/40001/media/cast/sender/h264_vt_encoder.cc#newcode216 media/cast/sender/h264_vt_encoder.cc:216: return nullptr; // Buffer pool is not a match ...
5 years, 10 months ago (2015-02-10 22:51:37 UTC) #6
miu
https://codereview.chromium.org/906403006/diff/40001/media/cast/sender/h264_vt_encoder.cc File media/cast/sender/h264_vt_encoder.cc (right): https://codereview.chromium.org/906403006/diff/40001/media/cast/sender/h264_vt_encoder.cc#newcode216 media/cast/sender/h264_vt_encoder.cc:216: return nullptr; // Buffer pool is not a match ...
5 years, 10 months ago (2015-02-11 00:31:25 UTC) #7
hubbe
lgtm Just nits... https://codereview.chromium.org/906403006/diff/40001/media/cast/cast_sender.h File media/cast/cast_sender.h (right): https://codereview.chromium.org/906403006/diff/40001/media/cast/cast_sender.h#newcode52 media/cast/cast_sender.h:52: // this case, the caller must ...
5 years, 10 months ago (2015-02-11 00:47:54 UTC) #8
jfroy
lgtm, with very minor nits. https://codereview.chromium.org/906403006/diff/60001/media/cast/sender/h264_vt_encoder.cc File media/cast/sender/h264_vt_encoder.cc (right): https://codereview.chromium.org/906403006/diff/60001/media/cast/sender/h264_vt_encoder.cc#newcode41 media/cast/sender/h264_vt_encoder.cc:41: CFTypeRef* keys, nit: const ...
5 years, 10 months ago (2015-02-11 01:00:34 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/906403006/80001
5 years, 10 months ago (2015-02-11 02:14:17 UTC) #12
miu
Thanks guys for the quick turnaround on this code review. It was a biggie. All ...
5 years, 10 months ago (2015-02-11 02:14:24 UTC) #13
commit-bot: I haz the power
Committed patchset #3 (id:80001)
5 years, 10 months ago (2015-02-11 03:28:54 UTC) #14
commit-bot: I haz the power
5 years, 10 months ago (2015-02-11 03:29:34 UTC) #15
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/9005303cba2d9ab58dd4439295695a93c8801e96
Cr-Commit-Position: refs/heads/master@{#315723}

Powered by Google App Engine
This is Rietveld 408576698