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

Issue 1884383002: VideoTrackRecorder: Adding inner class H264Encoder (Closed)

Created:
4 years, 8 months ago by mcasas
Modified:
4 years, 8 months ago
Reviewers:
emircan, jam, miu, hbos_chromium
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, posciak+watch_chromium.org, jam, feature-media-reviews_chromium.org, darin-cc_chromium.org, mkwst+moarreviews-renderer_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

VideoTrackRecorder: Adding inner class H264Encoder H264 Encoder using third_party OpenH264 library. This CL adds a new class H264Encoder <is a> Encoder, where on ToT, there is only VpxEncoder <is a> Encoder. The new encoder is behing #if BUILDFLAG(RTC_USE_H264). Some code shifting from VpxEncoder to Encoder takes place, in particular, some common functionality is extracted from VpxEncoder into Encoder: - StartFrameEncode() and set_paused() are extracted and the latter is made thread safe, then renamed to SetPaused() - Members |main_task_runner_|, |origin_task_runner_| and |encoding_thread_| are also extracted. A few minor renames: - ConfigureEncoding() --> ConfigureEncoderOnEncodingThread() - CalculateFrameDuration() --> EstimateFrameDuration() This is the 3rd step in a series of CLs to add support for H264 to MediaRecorder (see https://crrev.com/1886123002/). Next step is to MediaRecorderHandler and Blink support. BUG=601636 TEST= see playground CL, also added unittest. Committed: https://crrev.com/240fa42bc3097277407a3d747bcd26a33e248efa Cr-Commit-Position: refs/heads/master@{#388965}

Patch Set 1 : #

Total comments: 9

Patch Set 2 : emircan@ comments #

Total comments: 20

Patch Set 3 : hbos@ comments and added direct content.gyp:content_renderer to openh264 #

Total comments: 4

Patch Set 4 : hbos@ comments: adding explicit dep to openh264 in content.gyp and content/renderer/BUILD.gn #

Unified diffs Side-by-side diffs Delta from patch set Stats (+348 lines, -101 lines) Patch
M content/content.gyp View 1 2 3 5 chunks +14 lines, -2 lines 0 comments Download
M content/renderer/BUILD.gn View 1 2 3 2 chunks +4 lines, -0 lines 0 comments Download
M content/renderer/media/DEPS View 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/media/video_track_recorder.h View 3 chunks +5 lines, -1 line 0 comments Download
M content/renderer/media/video_track_recorder.cc View 1 2 16 chunks +317 lines, -96 lines 0 comments Download
M content/renderer/media/video_track_recorder_unittest.cc View 2 chunks +7 lines, -2 lines 0 comments Download

Messages

Total messages: 32 (16 generated)
mcasas
emircan@, miu@ PTAL
4 years, 8 months ago (2016-04-15 18:35:13 UTC) #8
mcasas
ping emircan@ (and miu@)
4 years, 8 months ago (2016-04-18 16:20:31 UTC) #10
mcasas
hbos@ can you PTAL at the H264Encoder internal configuration and usage? Thanks.
4 years, 8 months ago (2016-04-19 17:21:03 UTC) #12
emircan
https://codereview.chromium.org/1884383002/diff/100001/content/renderer/media/video_track_recorder.cc File content/renderer/media/video_track_recorder.cc (right): https://codereview.chromium.org/1884383002/diff/100001/content/renderer/media/video_track_recorder.cc#newcode118 content/renderer/media/video_track_recorder.cc:118: FROM_HERE, base::Bind(&Encoder::SetPaused, this, paused)); return; https://codereview.chromium.org/1884383002/diff/100001/content/renderer/media/video_track_recorder.cc#newcode213 content/renderer/media/video_track_recorder.cc:213: ScopedISVCEncoderPtr encoder); ...
4 years, 8 months ago (2016-04-19 23:21:22 UTC) #13
mcasas
PTAL https://codereview.chromium.org/1884383002/diff/100001/content/renderer/media/video_track_recorder.cc File content/renderer/media/video_track_recorder.cc (right): https://codereview.chromium.org/1884383002/diff/100001/content/renderer/media/video_track_recorder.cc#newcode118 content/renderer/media/video_track_recorder.cc:118: FROM_HERE, base::Bind(&Encoder::SetPaused, this, paused)); On 2016/04/19 23:21:22, emircan ...
4 years, 8 months ago (2016-04-20 00:37:13 UTC) #14
emircan
lgtm https://codereview.chromium.org/1884383002/diff/100001/content/renderer/media/video_track_recorder.cc File content/renderer/media/video_track_recorder.cc (right): https://codereview.chromium.org/1884383002/diff/100001/content/renderer/media/video_track_recorder.cc#newcode213 content/renderer/media/video_track_recorder.cc:213: ScopedISVCEncoderPtr encoder); On 2016/04/20 00:37:12, mcasas wrote: > ...
4 years, 8 months ago (2016-04-20 17:26:20 UTC) #15
hbos_chromium
Looking good. https://codereview.chromium.org/1884383002/diff/120001/content/renderer/media/video_track_recorder.cc File content/renderer/media/video_track_recorder.cc (right): https://codereview.chromium.org/1884383002/diff/120001/content/renderer/media/video_track_recorder.cc#newcode24 content/renderer/media/video_track_recorder.cc:24: #endif // #if BUILDFLAG(RTC_USE_H264) content_renderer now has ...
4 years, 8 months ago (2016-04-20 20:28:42 UTC) #16
mcasas
hbos@ PTAL, particularly at content.gyp mod. https://codereview.chromium.org/1884383002/diff/120001/content/renderer/media/video_track_recorder.cc File content/renderer/media/video_track_recorder.cc (right): https://codereview.chromium.org/1884383002/diff/120001/content/renderer/media/video_track_recorder.cc#newcode24 content/renderer/media/video_track_recorder.cc:24: #endif // #if ...
4 years, 8 months ago (2016-04-20 23:20:35 UTC) #18
hbos_chromium
Awesome, but you forgot GN, and there's one gyp change necessary. https://codereview.chromium.org/1884383002/diff/120001/content/renderer/media/video_track_recorder.cc File content/renderer/media/video_track_recorder.cc (right): ...
4 years, 8 months ago (2016-04-21 07:36:09 UTC) #19
mcasas
hbos@ PTAL https://codereview.chromium.org/1884383002/diff/160001/content/content.gyp File content/content.gyp (right): https://codereview.chromium.org/1884383002/diff/160001/content/content.gyp#newcode286 content/content.gyp:286: 'target_name': 'content_renderer', On 2016/04/21 07:36:09, hbos_chromium wrote: ...
4 years, 8 months ago (2016-04-21 15:09:19 UTC) #21
mcasas
jam@ notwithstanding hbos@ LGTM, could you plz RS - content/renderer/BUILD.gn - content/content.gyp (which are basically ...
4 years, 8 months ago (2016-04-21 18:23:51 UTC) #23
hbos_chromium
lgtm
4 years, 8 months ago (2016-04-21 19:01:05 UTC) #24
jam
lgtm
4 years, 8 months ago (2016-04-21 23:05:30 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1884383002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1884383002/200001
4 years, 8 months ago (2016-04-21 23:07:48 UTC) #28
commit-bot: I haz the power
Committed patchset #4 (id:200001)
4 years, 8 months ago (2016-04-22 00:06:43 UTC) #30
commit-bot: I haz the power
4 years, 8 months ago (2016-04-22 19:42:05 UTC) #32
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/240fa42bc3097277407a3d747bcd26a33e248efa
Cr-Commit-Position: refs/heads/master@{#388965}

Powered by Google App Engine
This is Rietveld 408576698