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

Issue 2510583002: Reland #2 of Issue 2434073003: Extract bitrate allocation ... (Closed)

Created:
4 years, 1 month ago by sprang_webrtc
Modified:
4 years, 1 month ago
Reviewers:
stefan-webrtc
CC:
webrtc-reviews_webrtc.org, interface-changes_webrtc.org, video-team_agora.io, yujie_mao (webrtc), zhengzhonghou_agora.io, stefan-webrtc, tterriberry_mozilla.com, qiang.lu, niklas.enbom, peah-webrtc, the sun, mflodman
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Reland #2 of Issue 2434073003: Extract bitrate allocation ... This is yet another reland of https://codereview.webrtc.org/2434073003/ including two fixes: 1. SimulcastRateAllocator did not handle the screenshare settings properly for numSimulcastStreams = 1. Additional test case was added for that. 2. In VideoSender, when rate allocation is updated after setting a new VideoCodec config, only update the state of the EncoderParameters, but don't actually run SetRateAllocation on the encoder itself. This caused some problems upstreams. Please review only the changes after patch set 1. Original description: Extract bitrate allocation of spatial/temporal layers out of codec impl. This CL makes a number of intervowen changes: * Add BitrateAllocation struct, that contains a codec independent view of how the target bitrate is distributed over spatial and temporal layers. * Adds the BitrateAllocator interface, which takes a bitrate and frame rate and produces a BitrateAllocation. * A default (non layered) implementation is added, and SimulcastRateAllocator is extended to fully handle VP8 allocation. This includes capturing TemporalLayer instances created by the encoder. * ViEEncoder now owns both the bitrate allocator and the temporal layer factories for VP8. This allows allocation to happen fully outside of the encoder implementation. This refactoring will make it possible for ViEEncoder to signal the full picture of target bitrates to the RTCP module. BUG=webrtc:6301 R=stefan@webrtc.org Committed: https://chromium.googlesource.com/external/webrtc/+/08127a9449f5e1778382d453267abbe9354b0095

Patch Set 1 #

Patch Set 2 : Bug fixes + rebase #

Total comments: 4

Patch Set 3 : Addressed comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1861 lines, -896 lines) Patch
M webrtc/api/android/jni/androidmediaencoder_jni.cc View 2 chunks +6 lines, -4 lines 0 comments Download
M webrtc/call/call_perf_tests.cc View 5 chunks +14 lines, -13 lines 0 comments Download
M webrtc/common_types.h View 1 2 4 chunks +35 lines, -1 line 0 comments Download
M webrtc/common_types.cc View 1 2 3 chunks +87 lines, -0 lines 0 comments Download
M webrtc/common_video/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/common_video/common_video.gyp View 1 chunk +1 line, -0 lines 0 comments Download
A webrtc/common_video/include/video_bitrate_allocator.h View 1 chunk +30 lines, -0 lines 0 comments Download
M webrtc/media/engine/fakewebrtcvideoengine.h View 2 chunks +12 lines, -11 lines 0 comments Download
M webrtc/media/engine/videoencodersoftwarefallbackwrapper.h View 1 2 chunks +3 lines, -3 lines 0 comments Download
M webrtc/media/engine/videoencodersoftwarefallbackwrapper.cc View 1 3 chunks +13 lines, -7 lines 0 comments Download
M webrtc/media/engine/videoencodersoftwarefallbackwrapper_unittest.cc View 6 chunks +26 lines, -4 lines 0 comments Download
M webrtc/modules/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/modules/video_coding/BUILD.gn View 3 chunks +4 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.h View 2 chunks +4 lines, -3 lines 0 comments Download
M webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc View 2 chunks +14 lines, -4 lines 0 comments Download
M webrtc/modules/video_coding/codecs/i420/include/i420.h View 2 chunks +1 line, -4 lines 0 comments Download
M webrtc/modules/video_coding/codecs/test/videoprocessor.h View 3 chunks +5 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/codecs/test/videoprocessor.cc View 12 chunks +40 lines, -23 lines 0 comments Download
M webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc View 2 chunks +2 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.h View 5 chunks +13 lines, -7 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc View 8 chunks +69 lines, -19 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc View 4 chunks +8 lines, -4 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/realtime_temporal_layers.cc View 7 chunks +64 lines, -30 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/screenshare_layers.h View 4 chunks +12 lines, -13 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc View 1 6 chunks +74 lines, -46 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc View 5 chunks +33 lines, -9 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.h View 2 chunks +2 lines, -3 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc View 6 chunks +54 lines, -58 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc View 13 chunks +32 lines, -18 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h View 24 chunks +44 lines, -132 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.cc View 1 chunk +0 lines, -5 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/temporal_layers.h View 1 3 chunks +46 lines, -12 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc View 4 chunks +9 lines, -1 line 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/vp8_impl.h View 3 chunks +2 lines, -3 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc View 8 chunks +81 lines, -103 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp9/vp9_impl.h View 1 chunk +2 lines, -1 line 0 comments Download
M webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc View 2 chunks +13 lines, -8 lines 0 comments Download
M webrtc/modules/video_coding/generic_encoder.h View 1 chunk +1 line, -1 line 0 comments Download
M webrtc/modules/video_coding/generic_encoder.cc View 2 chunks +17 lines, -5 lines 0 comments Download
M webrtc/modules/video_coding/include/mock/mock_video_codec_interface.h View 1 chunk +3 lines, -0 lines 0 comments Download
A webrtc/modules/video_coding/include/video_codec_initializer.h View 1 chunk +59 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/include/video_coding.h View 1 chunk +1 line, -0 lines 0 comments Download
A webrtc/modules/video_coding/utility/default_video_bitrate_allocator.h View 1 chunk +33 lines, -0 lines 0 comments Download
A webrtc/modules/video_coding/utility/default_video_bitrate_allocator.cc View 1 chunk +47 lines, -0 lines 0 comments Download
A webrtc/modules/video_coding/utility/default_video_bitrate_allocator_unittest.cc View 1 chunk +80 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/utility/simulcast_rate_allocator.h View 1 chunk +17 lines, -5 lines 0 comments Download
M webrtc/modules/video_coding/utility/simulcast_rate_allocator.cc View 1 1 chunk +118 lines, -49 lines 0 comments Download
M webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc View 1 11 chunks +159 lines, -45 lines 0 comments Download
M webrtc/modules/video_coding/utility/video_coding_utility.gyp View 1 chunk +2 lines, -0 lines 0 comments Download
A webrtc/modules/video_coding/video_codec_initializer.cc View 1 1 chunk +212 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/video_coding.gypi View 2 chunks +2 lines, -0 lines 0 comments Download
M webrtc/modules/video_coding/video_coding_impl.h View 1 3 chunks +14 lines, -2 lines 0 comments Download
M webrtc/modules/video_coding/video_coding_impl.cc View 4 chunks +22 lines, -1 line 0 comments Download
M webrtc/modules/video_coding/video_sender.cc View 1 6 chunks +47 lines, -12 lines 0 comments Download
M webrtc/modules/video_coding/video_sender_unittest.cc View 12 chunks +58 lines, -19 lines 0 comments Download
M webrtc/test/configurable_frame_size_encoder.h View 1 chunk +2 lines, -1 line 0 comments Download
M webrtc/test/configurable_frame_size_encoder.cc View 3 chunks +5 lines, -3 lines 0 comments Download
M webrtc/test/fake_encoder.h View 2 chunks +3 lines, -2 lines 0 comments Download
M webrtc/test/fake_encoder.cc View 4 chunks +6 lines, -6 lines 0 comments Download
M webrtc/video/end_to_end_tests.cc View 1 chunk +4 lines, -3 lines 0 comments Download
M webrtc/video/video_send_stream_tests.cc View 1 2 7 chunks +43 lines, -32 lines 0 comments Download
M webrtc/video/vie_encoder.h View 2 chunks +2 lines, -5 lines 0 comments Download
M webrtc/video/vie_encoder.cc View 1 7 chunks +19 lines, -155 lines 0 comments Download
M webrtc/video/vie_encoder_unittest.cc View 3 chunks +16 lines, -0 lines 0 comments Download
M webrtc/video_encoder.h View 2 chunks +12 lines, -1 line 0 comments Download

Messages

Total messages: 21 (13 generated)
stefan-webrtc
lgtm with comments addressed. https://codereview.webrtc.org/2510583002/diff/20001/webrtc/common_types.cc File webrtc/common_types.cc (right): https://codereview.webrtc.org/2510583002/diff/20001/webrtc/common_types.cc#newcode143 webrtc/common_types.cc:143: const size_t BitrateAllocation::kMaxBitrateBps = uint32?t ...
4 years, 1 month ago (2016-11-16 14:55:08 UTC) #7
sprang_webrtc
https://codereview.webrtc.org/2510583002/diff/20001/webrtc/common_types.cc File webrtc/common_types.cc (right): https://codereview.webrtc.org/2510583002/diff/20001/webrtc/common_types.cc#newcode143 webrtc/common_types.cc:143: const size_t BitrateAllocation::kMaxBitrateBps = On 2016/11/16 14:55:08, stefan-webrtc (holmer) ...
4 years, 1 month ago (2016-11-16 15:01:43 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2510583002/40001
4 years, 1 month ago (2016-11-16 15:02:31 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: linux_rel on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/linux_rel/builds/20239)
4 years, 1 month ago (2016-11-16 15:04:44 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2510583002/40001
4 years, 1 month ago (2016-11-16 15:33:43 UTC) #15
commit-bot: I haz the power
Try jobs failed on following builders: mac_baremetal on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/mac_baremetal/builds/16277)
4 years, 1 month ago (2016-11-16 15:39:13 UTC) #17
commit-bot: I haz the power
Patchset 3 (id:??) landed as https://crrev.com/08127a9449f5e1778382d453267abbe9354b0095 Cr-Commit-Position: refs/heads/master@{#15105}
4 years, 1 month ago (2016-11-16 15:41:52 UTC) #19
sprang_webrtc
4 years, 1 month ago (2016-11-16 15:41:54 UTC) #21
Message was sent while issue was closed.
Committed patchset #3 (id:40001) manually as
08127a9449f5e1778382d453267abbe9354b0095 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698