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

Issue 1846893002: Interface with webrtc through encoded frames (Closed)

Created:
4 years, 8 months ago by Irfan
Modified:
4 years, 8 months ago
Reviewers:
Sergey Ulanov
CC:
chromium-reviews, chromoting-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Interface with webrtc through encoded frames This change introduces a refactor to provide encoded frames to webrtc. As a result, frame scheduling for capture and encoding is taken care of by remoting itself. The current interface to webrtc should eventually improve than what exists now. The frame scheduling is a simple poll at 30 FPS in this change. The improvement over previous change is that we only report frames that are not changed and avoid all the frame dropping issues through camera pipeline. The tests are broken for webrtc prototype due to failure to measure network bandwidth over the simulated interface and need to be fixed for proper comparison. We still need to investigate latency issues as well. Committed: https://crrev.com/87c2fbdcfdab62ae44f43a171804762f64b276a2 Cr-Commit-Position: refs/heads/master@{#387096}

Patch Set 1 #

Total comments: 40

Patch Set 2 : Addressed sergeyu comments #

Total comments: 7

Patch Set 3 : Addressed sergeyu comments and rebased #

Total comments: 14

Patch Set 4 : Fixes from rebase and address comments #

Patch Set 5 : Address unit test failures due to race #

Total comments: 3

Patch Set 6 : Addressed sergey comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+836 lines, -441 lines) Patch
M remoting/client/software_video_renderer_unittest.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M remoting/codec/codec_test.cc View 1 2 3 4 chunks +5 lines, -5 lines 0 comments Download
M remoting/codec/video_encoder.h View 1 2 3 chunks +5 lines, -2 lines 0 comments Download
M remoting/codec/video_encoder_verbatim.h View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M remoting/codec/video_encoder_verbatim.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M remoting/codec/video_encoder_vpx.h View 1 2 3 2 chunks +3 lines, -3 lines 0 comments Download
M remoting/codec/video_encoder_vpx.cc View 1 2 6 chunks +9 lines, -4 lines 0 comments Download
M remoting/codec/video_encoder_vpx_unittest.cc View 1 2 3 7 chunks +12 lines, -12 lines 0 comments Download
M remoting/host/chromoting_host.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M remoting/proto/video.proto View 1 chunk +3 lines, -0 lines 0 comments Download
M remoting/protocol/BUILD.gn View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M remoting/protocol/connection_unittest.cc View 1 2 3 1 chunk +2 lines, -1 line 0 comments Download
M remoting/protocol/video_frame_pump.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M remoting/protocol/video_frame_pump_unittest.cc View 1 2 3 2 chunks +4 lines, -3 lines 0 comments Download
M remoting/protocol/webrtc_connection_to_client.h View 1 2 2 chunks +5 lines, -3 lines 0 comments Download
M remoting/protocol/webrtc_connection_to_client.cc View 1 2 6 chunks +16 lines, -11 lines 0 comments Download
A remoting/protocol/webrtc_dummy_video_capturer.h View 1 2 3 1 chunk +45 lines, -0 lines 0 comments Download
A remoting/protocol/webrtc_dummy_video_capturer.cc View 1 2 3 1 chunk +43 lines, -0 lines 0 comments Download
A remoting/protocol/webrtc_frame_scheduler.h View 1 2 3 1 chunk +101 lines, -0 lines 0 comments Download
A remoting/protocol/webrtc_frame_scheduler.cc View 1 2 3 4 5 1 chunk +181 lines, -0 lines 0 comments Download
M remoting/protocol/webrtc_transport.h View 1 2 6 chunks +8 lines, -2 lines 0 comments Download
M remoting/protocol/webrtc_transport.cc View 1 2 3 6 chunks +19 lines, -3 lines 0 comments Download
D remoting/protocol/webrtc_video_capturer_adapter.h View 1 2 1 chunk +0 lines, -102 lines 0 comments Download
D remoting/protocol/webrtc_video_capturer_adapter.cc View 1 2 1 chunk +0 lines, -245 lines 0 comments Download
A remoting/protocol/webrtc_video_encoder.h View 1 2 3 4 5 1 chunk +89 lines, -0 lines 0 comments Download
A remoting/protocol/webrtc_video_encoder.cc View 1 2 3 4 5 1 chunk +221 lines, -0 lines 0 comments Download
M remoting/protocol/webrtc_video_renderer_adapter.cc View 1 2 2 chunks +5 lines, -1 line 0 comments Download
M remoting/protocol/webrtc_video_stream.h View 1 2 3 chunks +9 lines, -6 lines 0 comments Download
M remoting/protocol/webrtc_video_stream.cc View 1 2 4 chunks +30 lines, -22 lines 0 comments Download
M remoting/remoting_srcs.gypi View 1 2 2 chunks +6 lines, -3 lines 0 comments Download
M remoting/test/codec_perftest.cc View 1 2 3 2 chunks +2 lines, -2 lines 0 comments Download
M remoting/test/test_video_renderer_unittest.cc View 1 2 3 4 chunks +5 lines, -4 lines 0 comments Download

Messages

Total messages: 27 (12 generated)
Irfan
PTAL. I still need to resolve the perf issues and make tests produce reasonable results.
4 years, 8 months ago (2016-03-31 07:12:09 UTC) #4
Sergey Ulanov
https://codereview.chromium.org/1846893002/diff/20001/remoting/codec/webrtc_video_encoder.cc File remoting/codec/webrtc_video_encoder.cc (right): https://codereview.chromium.org/1846893002/diff/20001/remoting/codec/webrtc_video_encoder.cc#newcode97 remoting/codec/webrtc_video_encoder.cc:97: base::AutoLock Lock(lock_); lock with lower-case l https://codereview.chromium.org/1846893002/diff/20001/remoting/codec/webrtc_video_encoder.cc#newcode103 remoting/codec/webrtc_video_encoder.cc:103: webrtc::EncodedImage ...
4 years, 8 months ago (2016-03-31 22:06:20 UTC) #5
Irfan
https://codereview.chromium.org/1846893002/diff/20001/remoting/codec/webrtc_video_encoder.cc File remoting/codec/webrtc_video_encoder.cc (right): https://codereview.chromium.org/1846893002/diff/20001/remoting/codec/webrtc_video_encoder.cc#newcode97 remoting/codec/webrtc_video_encoder.cc:97: base::AutoLock Lock(lock_); On 2016/03/31 22:06:18, Sergey Ulanov wrote: > ...
4 years, 8 months ago (2016-04-05 21:23:28 UTC) #6
Sergey Ulanov
lgtm please wait until next week before landing this. https://codereview.chromium.org/1846893002/diff/60001/remoting/codec/video_encoder.h File remoting/codec/video_encoder.h (right): https://codereview.chromium.org/1846893002/diff/60001/remoting/codec/video_encoder.h#newcode24 remoting/codec/video_encoder.h:24: ...
4 years, 8 months ago (2016-04-07 21:05:39 UTC) #8
Sergey Ulanov
Looks like there are merge conflicts that need to be resolved. Also I think you ...
4 years, 8 months ago (2016-04-12 18:57:31 UTC) #9
Irfan
PTAL https://codereview.chromium.org/1846893002/diff/60001/remoting/codec/video_encoder.h File remoting/codec/video_encoder.h (right): https://codereview.chromium.org/1846893002/diff/60001/remoting/codec/video_encoder.h#newcode24 remoting/codec/video_encoder.h:24: enum Flags { kRequestKeyFrame = 1 << 0 ...
4 years, 8 months ago (2016-04-12 21:13:12 UTC) #10
Irfan
There appears to be a race which is triggered only on some platforms where the ...
4 years, 8 months ago (2016-04-12 23:19:35 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1846893002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1846893002/160001
4 years, 8 months ago (2016-04-13 19:17:02 UTC) #15
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_chromium_gn_compile_rel on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_chromium_gn_compile_rel/builds/50340)
4 years, 8 months ago (2016-04-13 19:27:39 UTC) #17
Irfan
PTAL
4 years, 8 months ago (2016-04-13 19:45:37 UTC) #18
Sergey Ulanov
lgtm, but please see my comments https://codereview.chromium.org/1846893002/diff/160001/remoting/protocol/webrtc_video_encoder.cc File remoting/protocol/webrtc_video_encoder.cc (right): https://codereview.chromium.org/1846893002/diff/160001/remoting/protocol/webrtc_video_encoder.cc#newcode147 remoting/protocol/webrtc_video_encoder.cc:147: void WebRtcVideoEncoder::ClearKeyFrameRequestCallback() { ...
4 years, 8 months ago (2016-04-13 19:52:10 UTC) #19
Irfan
https://codereview.chromium.org/1846893002/diff/160001/remoting/protocol/webrtc_video_encoder.cc File remoting/protocol/webrtc_video_encoder.cc (right): https://codereview.chromium.org/1846893002/diff/160001/remoting/protocol/webrtc_video_encoder.cc#newcode147 remoting/protocol/webrtc_video_encoder.cc:147: void WebRtcVideoEncoder::ClearKeyFrameRequestCallback() { On 2016/04/13 19:52:10, Sergey Ulanov wrote: ...
4 years, 8 months ago (2016-04-13 20:30:36 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1846893002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1846893002/180001
4 years, 8 months ago (2016-04-13 20:30:55 UTC) #23
commit-bot: I haz the power
Committed patchset #6 (id:180001)
4 years, 8 months ago (2016-04-13 21:21:57 UTC) #25
commit-bot: I haz the power
4 years, 8 months ago (2016-04-13 21:24:02 UTC) #27
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/87c2fbdcfdab62ae44f43a171804762f64b276a2
Cr-Commit-Position: refs/heads/master@{#387096}

Powered by Google App Engine
This is Rietveld 408576698