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

Issue 2347023002: BitrateProber: Support higher probing bitrates (Closed)

Created:
4 years, 3 months ago by Irfan
Modified:
4 years, 2 months ago
Reviewers:
philipel, stefan-webrtc
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, zhuangzesen_agora.io, stefan-webrtc, mflodman
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

BitrateProber: Support higher probing bitrates Currently, BitrateProber does not scale higher than 2 Mbps to 6 Mbps. The actual number is dependent on the size of the last packet. If a packet of around 250 bytes is used for probing, it fails above 2 Mbps. BitrateProber now provides a recommendation on probe size instead of a packet size. PacedSender utilizes this to decide on the number of packets per probe. This enables BitrateProber to scale up-to higher bitrates. Tests with chromoting show it stalls at about 10 Mbps (perhaps due to the limitation on the simulation pipeline to deliver packets). BUG=webrtc:6332 Committed: https://crrev.com/cc5903e15f47ec9e2b9282225da38d62aae5ada2 Cr-Commit-Position: refs/heads/master@{#14503}

Patch Set 1 : BitrateProber: Support higher probing bitrates #

Total comments: 13

Patch Set 2 : addressed comments #

Total comments: 4

Patch Set 3 : Add tests #

Total comments: 17

Patch Set 4 : Address comments #

Total comments: 5

Patch Set 5 : Add test for validating padding overhead #

Total comments: 1

Patch Set 6 : Fix test to turn on RTX #

Patch Set 7 : Fix thread race and test flakiness on some platforms #

Total comments: 15

Patch Set 8 : Fix nits #

Patch Set 9 : Rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+238 lines, -132 lines) Patch
M webrtc/modules/pacing/bitrate_prober.h View 1 3 chunks +18 lines, -13 lines 0 comments Download
M webrtc/modules/pacing/bitrate_prober.cc View 1 2 5 chunks +28 lines, -26 lines 0 comments Download
M webrtc/modules/pacing/bitrate_prober_unittest.cc View 1 2 3 4 5 6 7 8 4 chunks +15 lines, -6 lines 0 comments Download
M webrtc/modules/pacing/paced_sender.h View 1 chunk +1 line, -1 line 0 comments Download
M webrtc/modules/pacing/paced_sender.cc View 1 2 4 chunks +26 lines, -20 lines 0 comments Download
M webrtc/modules/pacing/paced_sender_unittest.cc View 1 2 3 4 5 6 7 8 4 chunks +73 lines, -66 lines 0 comments Download
M webrtc/video/video_send_stream_tests.cc View 1 2 3 4 5 6 7 8 1 chunk +77 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 42 (17 generated)
Irfan
PTAL
4 years, 3 months ago (2016-09-15 23:19:13 UTC) #4
stefan-webrtc
https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc File webrtc/modules/pacing/bitrate_prober.cc (right): https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc#newcode148 webrtc/modules/pacing/bitrate_prober.cc:148: size_t BitrateProber::RecommendedProbeSize() const { Isn't this the recommended minimum ...
4 years, 3 months ago (2016-09-16 07:42:53 UTC) #6
Irfan
https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc File webrtc/modules/pacing/bitrate_prober.cc (right): https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc#newcode148 webrtc/modules/pacing/bitrate_prober.cc:148: size_t BitrateProber::RecommendedProbeSize() const { On 2016/09/16 07:42:53, stefan-webrtc (holmer) ...
4 years, 3 months ago (2016-09-19 06:05:11 UTC) #7
Irfan
PTAL. I have restructured it a bit so that ProbeSent is always called at end. ...
4 years, 3 months ago (2016-09-19 06:06:23 UTC) #8
stefan-webrtc
https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc File webrtc/modules/pacing/bitrate_prober.cc (right): https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc#newcode155 webrtc/modules/pacing/bitrate_prober.cc:155: RTC_DCHECK(probing_state_ == ProbingState::kActive); On 2016/09/19 06:05:11, Irfan wrote: > ...
4 years, 3 months ago (2016-09-19 07:24:56 UTC) #9
Irfan
https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc File webrtc/modules/pacing/bitrate_prober.cc (right): https://codereview.chromium.org/2347023002/diff/40001/webrtc/modules/pacing/bitrate_prober.cc#newcode156 webrtc/modules/pacing/bitrate_prober.cc:156: assert(bytes > 0); On 2016/09/19 07:24:55, stefan-webrtc (holmer) wrote: ...
4 years, 3 months ago (2016-09-19 18:23:30 UTC) #10
Irfan
PTAL
4 years, 3 months ago (2016-09-20 17:49:00 UTC) #15
Irfan
PTAL
4 years, 3 months ago (2016-09-20 17:49:00 UTC) #16
philipel
https://codereview.webrtc.org/2347023002/diff/140001/webrtc/modules/pacing/bitrate_prober.h File webrtc/modules/pacing/bitrate_prober.h (right): https://codereview.webrtc.org/2347023002/diff/140001/webrtc/modules/pacing/bitrate_prober.h#newcode41 webrtc/modules/pacing/bitrate_prober.h:41: void CreateProbeCluster(int bitrate_bps, int num_probes); Not for this CL, ...
4 years, 3 months ago (2016-09-21 09:26:40 UTC) #17
Irfan
https://codereview.chromium.org/2347023002/diff/140001/webrtc/modules/pacing/paced_sender_unittest.cc File webrtc/modules/pacing/paced_sender_unittest.cc (right): https://codereview.chromium.org/2347023002/diff/140001/webrtc/modules/pacing/paced_sender_unittest.cc#newcode815 webrtc/modules/pacing/paced_sender_unittest.cc:815: while (packet_sender.packets_sent() < kFirstClusterCount) { On 2016/09/21 09:26:40, philipel ...
4 years, 3 months ago (2016-09-21 17:00:37 UTC) #18
Irfan
PTAL
4 years, 3 months ago (2016-09-21 17:01:36 UTC) #19
philipel
lgtm
4 years, 3 months ago (2016-09-22 10:48:11 UTC) #20
Irfan
Stefan, can you PTAL ?
4 years, 3 months ago (2016-09-22 15:52:01 UTC) #21
stefan-webrtc
lg, but I'm missing one of the tests I requested. https://codereview.chromium.org/2347023002/diff/160001/webrtc/modules/pacing/paced_sender_unittest.cc File webrtc/modules/pacing/paced_sender_unittest.cc (right): https://codereview.chromium.org/2347023002/diff/160001/webrtc/modules/pacing/paced_sender_unittest.cc#newcode869 ...
4 years, 3 months ago (2016-09-23 13:29:11 UTC) #22
Irfan
https://codereview.chromium.org/2347023002/diff/160001/webrtc/modules/pacing/paced_sender_unittest.cc File webrtc/modules/pacing/paced_sender_unittest.cc (right): https://codereview.chromium.org/2347023002/diff/160001/webrtc/modules/pacing/paced_sender_unittest.cc#newcode869 webrtc/modules/pacing/paced_sender_unittest.cc:869: process_count++; On 2016/09/23 13:29:11, stefan-webrtc (holmer) wrote: > ++process_count; ...
4 years, 2 months ago (2016-09-26 23:00:29 UTC) #23
stefan-webrtc
https://codereview.chromium.org/2347023002/diff/160001/webrtc/modules/pacing/paced_sender_unittest.cc File webrtc/modules/pacing/paced_sender_unittest.cc (right): https://codereview.chromium.org/2347023002/diff/160001/webrtc/modules/pacing/paced_sender_unittest.cc#newcode882 webrtc/modules/pacing/paced_sender_unittest.cc:882: TEST_F(PacedSenderTest, ProbingUsesRetransmissions) { On 2016/09/26 23:00:29, Irfan wrote: > ...
4 years, 2 months ago (2016-09-27 14:18:33 UTC) #24
Irfan
Thanks for the pointer on RTX. I now see about 2-3% of traffic being padding. ...
4 years, 2 months ago (2016-09-28 17:57:17 UTC) #25
Irfan
PTAL. I reverted the tight control on exceeding 8 Mbps since some of the platforms ...
4 years, 2 months ago (2016-09-29 20:52:11 UTC) #31
stefan-webrtc
https://codereview.webrtc.org/2347023002/diff/320001/webrtc/modules/pacing/paced_sender_unittest.cc File webrtc/modules/pacing/paced_sender_unittest.cc (right): https://codereview.webrtc.org/2347023002/diff/320001/webrtc/modules/pacing/paced_sender_unittest.cc#newcode831 webrtc/modules/pacing/paced_sender_unittest.cc:831: EXPECT_EQ(0, padding_sent_)? https://codereview.webrtc.org/2347023002/diff/320001/webrtc/modules/pacing/paced_sender_unittest.cc#newcode882 webrtc/modules/pacing/paced_sender_unittest.cc:882: TEST_F(PacedSenderTest, ProbingUsesRetransmissions) { Do you ...
4 years, 2 months ago (2016-09-30 08:37:22 UTC) #32
Irfan
https://codereview.chromium.org/2347023002/diff/320001/webrtc/modules/pacing/paced_sender_unittest.cc File webrtc/modules/pacing/paced_sender_unittest.cc (right): https://codereview.chromium.org/2347023002/diff/320001/webrtc/modules/pacing/paced_sender_unittest.cc#newcode831 webrtc/modules/pacing/paced_sender_unittest.cc:831: On 2016/09/30 08:37:21, stefan-webrtc (holmer) wrote: > EXPECT_EQ(0, padding_sent_)? ...
4 years, 2 months ago (2016-10-03 18:45:26 UTC) #33
stefan-webrtc
lgtm https://codereview.webrtc.org/2347023002/diff/320001/webrtc/video/video_send_stream_tests.cc File webrtc/video/video_send_stream_tests.cc (right): https://codereview.webrtc.org/2347023002/diff/320001/webrtc/video/video_send_stream_tests.cc#newcode1068 webrtc/video/video_send_stream_tests.cc:1068: padding_length_ += header.paddingLength; On 2016/10/03 18:45:26, Irfan wrote: ...
4 years, 2 months ago (2016-10-04 14:56:40 UTC) #34
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/2347023002/360001
4 years, 2 months ago (2016-10-04 15:18:20 UTC) #37
Irfan
https://codereview.webrtc.org/2347023002/diff/320001/webrtc/video/video_send_stream_tests.cc File webrtc/video/video_send_stream_tests.cc (right): https://codereview.webrtc.org/2347023002/diff/320001/webrtc/video/video_send_stream_tests.cc#newcode1110 webrtc/video/video_send_stream_tests.cc:1110: EXPECT_LT(padding_length_, .1 * total_length_); On 2016/10/04 14:56:40, stefan-webrtc (holmer) ...
4 years, 2 months ago (2016-10-04 15:23:33 UTC) #38
commit-bot: I haz the power
Committed patchset #9 (id:360001)
4 years, 2 months ago (2016-10-04 15:29:42 UTC) #40
commit-bot: I haz the power
4 years, 2 months ago (2016-10-04 15:29:55 UTC) #42
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/cc5903e15f47ec9e2b9282225da38d62aae5ada2
Cr-Commit-Position: refs/heads/master@{#14503}

Powered by Google App Engine
This is Rietveld 408576698