Project: webrtc Issues People Development process History Sign in
New issue
Advanced search Search tips
Issue 5079 Adapt audio bitrate based on estimated available bandwidth.
Starred by 27 users Project Member Reported by mflodman@webrtc.org, Oct 15 2015 Back to list
Status: Assigned
Owner:
Cc:
Components:
OS: ----
Pri: 1
Type: Feature

Blocked on: View detail
issue 5263
issue 7043



Sign in to add a comment
The video bitrate is adapted up to several times per second, based on the current bandwidth estimate. To better cope with lower bitrates, and to allow higher audio bitrates, the audio codec should be hooked up to the bitrate allocator and be assigned a bitrate to follow.

 
Project Member Comment 1 by bugdroid1@chromium.org, Oct 16 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/949c2f04b4156095090e02f3f13613aadacce88d

commit 949c2f04b4156095090e02f3f13613aadacce88d
Author: mflodman <mflodman@webrtc.org>
Date: Fri Oct 16 09:31:11 2015

Move ownership of send ViEChannels and ViEEncoder to VideoSendStream.

This is the first CL to get ready for adapting audio bitrate based on
BWE. I've kept this CL as small as possible and had to add a few getters
to ChannelManager. The next CL will do the same for receive ViEChannels.

The getters are a bit uggly, but is an in-between-state. Let's discuss
future ownership of the different modules and what do do with
ChannelGroup.

BUG=5079

Review URL: https://codereview.webrtc.org/1394243006

Cr-Commit-Position: refs/heads/master@{#10298}

[modify] http://crrev.com/949c2f04b4156095090e02f3f13613aadacce88d/webrtc/video/video_send_stream.cc
[modify] http://crrev.com/949c2f04b4156095090e02f3f13613aadacce88d/webrtc/video/video_send_stream.h
[modify] http://crrev.com/949c2f04b4156095090e02f3f13613aadacce88d/webrtc/video_engine/vie_channel.cc
[modify] http://crrev.com/949c2f04b4156095090e02f3f13613aadacce88d/webrtc/video_engine/vie_channel.h
[modify] http://crrev.com/949c2f04b4156095090e02f3f13613aadacce88d/webrtc/video_engine/vie_channel_group.cc
[modify] http://crrev.com/949c2f04b4156095090e02f3f13613aadacce88d/webrtc/video_engine/vie_channel_group.h

Project Member Comment 2 by bugdroid1@chromium.org, Oct 19 2015
Project Member Comment 4 by bugdroid1@chromium.org, Oct 21 2015
Project Member Comment 5 by bugdroid1@chromium.org, Oct 21 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/0c478b3d75be3c026e68f03a11cb558c3655c926

commit 0c478b3d75be3c026e68f03a11cb558c3655c926
Author: mflodman <mflodman@webrtc.org>
Date: Wed Oct 21 13:52:16 2015

Rename ChannelGroup to CongestionController and move to webrtc/call/.

BUG=webrtc:5079
R=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1419803002 .

Cr-Commit-Position: refs/heads/master@{#10358}

[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/call/BUILD.gn
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/call/call.cc
[rename] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/call/congestion_controller.cc
[rename] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/call/congestion_controller.h
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/call/webrtc_call.gypi
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/video/BUILD.gn
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/video/video_receive_stream.cc
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/video/video_receive_stream.h
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/video/video_send_stream.cc
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/video/video_send_stream.h
[modify] http://crrev.com/0c478b3d75be3c026e68f03a11cb558c3655c926/webrtc/video/webrtc_video.gypi

Project Member Comment 6 by 76821325...@developer.gserviceaccount.com, Nov 13 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e

commit 0e7e259ebd69993bb5670a991f43aa1b06c9bf9e
Author: mflodman <mflodman@webrtc.org>
Date: Fri Nov 13 05:02:42 2015

Move BitrateAllocator from BitrateController logic to Call.

This is a step on the way to have variable bitrate for audio and is
intended to be as much of a no-op as possible.

BUG=webrtc:5079

Review URL: https://codereview.webrtc.org/1441673002

Cr-Commit-Position: refs/heads/master@{#10630}

[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/BUILD.gn
[rename] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/bitrate_allocator.cc
[rename] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/bitrate_allocator.h
[rename] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/bitrate_allocator_unittest.cc
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/call.cc
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/congestion_controller.cc
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/congestion_controller.h
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/call/webrtc_call.gypi
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/modules/bitrate_controller/BUILD.gn
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/modules/bitrate_controller/bitrate_controller.gypi
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/modules/modules.gyp
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.cc
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/video/video_receive_stream.cc
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/video/video_send_stream.cc
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/video/video_send_stream.h
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/video_engine/vie_encoder.cc
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/video_engine/vie_encoder.h
[modify] http://crrev.com/0e7e259ebd69993bb5670a991f43aa1b06c9bf9e/webrtc/webrtc_tests.gypi

Project Member Comment 7 by juberti@webrtc.org, Jan 27 2016
Labels: -Mstone-49 Mstone-50
Project Member Comment 8 by stefan@webrtc.org, Feb 4 2016
Blockedon: 5263
Project Member Comment 9 by bugdroid1@chromium.org, Mar 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/86aabb288d61d56955e7fa4890f46f3388f28263

commit 86aabb288d61d56955e7fa4890f46f3388f28263
Author: mflodman <mflodman@webrtc.org>
Date: Fri Mar 11 14:44:32 2016

Move BitrateAllocator reference from ViEEncoder to VideoSendStream.

This CL will be followed up with a CL adding AudioSendStream to
BitrateAllocator, so this is a small CL to have the video connection to
BitrateAllocator "at the same level" as for audio.

BUG=webrtc:5079
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1785283002 .

Cr-Commit-Position: refs/heads/master@{#11955}

[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/call/bitrate_allocator.cc
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/call/bitrate_allocator.h
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/call/bitrate_allocator_unittest.cc
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/call/call.cc
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/video/encoder_state_feedback_unittest.cc
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/video/video_send_stream.cc
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/video/video_send_stream.h
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/video/vie_encoder.cc
[modify] https://crrev.com/86aabb288d61d56955e7fa4890f46f3388f28263/webrtc/video/vie_encoder.h

Project Member Comment 10 by bugdroid1@chromium.org, Apr 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/3d7db263b902f319b5b0c828ccff59cd8664b937

commit 3d7db263b902f319b5b0c828ccff59cd8664b937
Author: mflodman <mflodman@webrtc.org>
Date: Fri Apr 29 07:57:13 2016

Switch voice transport to use Call and Stream instead of VoENetwork.

VoENetwork is kept for now, but is not really used anylonger.

webrtcvoiceengine is changed to have the same behavior for unsignaled
ssrc as video has, which is reflected by disabling one test case and
this will be discussed and followed up.

BUG=webrtc:5079

TBR=tommi

Review-Url: https://codereview.webrtc.org/1909333002
Cr-Commit-Position: refs/heads/master@{#12555}

[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/audio/audio_receive_stream.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/audio/audio_receive_stream_unittest.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/audio/audio_send_stream.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/audio/audio_send_stream_unittest.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/audio_receive_stream.h
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/call/call.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/call/call_perf_tests.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/media/engine/fakewebrtccall.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/media/engine/fakewebrtccall.h
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/media/engine/fakewebrtcvoiceengine.h
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/media/engine/webrtcvoiceengine.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/media/engine/webrtcvoiceengine_unittest.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/test/call_test.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/test/call_test.h
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/test/mock_voe_channel_proxy.h
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/voice_engine/channel.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/voice_engine/channel.h
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/voice_engine/channel_proxy.cc
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/voice_engine/channel_proxy.h
[modify] https://crrev.com/3d7db263b902f319b5b0c828ccff59cd8664b937/webrtc/voice_engine/voe_network_impl.cc

Can somebody explain how audio and video will be coordinated to adapt to estimated available bandwidth?

Will audio bitrate be adapted only after video is stopped in low bandwidth conditions?  Will audio and video reduce their bitrate proportionally?    

We can figure it out from the code but a description of the expected behaviour would be useful to make sure we don't miss anything.
Project Member Comment 12 by bugdroid1@chromium.org, May 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/cfc8e3b9ef25eb977e55960c7bac2172298f4d27

commit cfc8e3b9ef25eb977e55960c7bac2172298f4d27
Author: mflodman <mflodman@webrtc.org>
Date: Wed May 04 04:22:04 2016

Removed all RTP dependencies from ViEChannel and renamed class.

ViEChannel is now called VideoStreamReceiver.

There will be a follow up CL removing all rtp references from VideoReceiveStream, but that made this CL to big and it will be done separately.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/1929313002
Cr-Commit-Position: refs/heads/master@{#12619}

[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/BUILD.gn
[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/receive_statistics_proxy.h
[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/rtp_stream_receiver.cc
[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/rtp_stream_receiver.h
[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/video_receive_stream.cc
[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/video_receive_stream.h
[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/video_send_stream.h
[add] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/video_stream_decoder.cc
[add] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/video_stream_decoder.h
[delete] https://crrev.com/fe4b21641be58f9f88161d96cb65a619a11d3d8c/webrtc/video/vie_channel.cc
[delete] https://crrev.com/fe4b21641be58f9f88161d96cb65a619a11d3d8c/webrtc/video/vie_channel.h
[modify] https://crrev.com/cfc8e3b9ef25eb977e55960c7bac2172298f4d27/webrtc/video/webrtc_video.gypi

Project Member Comment 13 by bugdroid1@chromium.org, May 6 2016
Project Member Comment 14 by bugdroid1@chromium.org, Jul 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/86cc6ffc7ca14c79d760695e89ab9698ed251873

commit 86cc6ffc7ca14c79d760695e89ab9698ed251873
Author: mflodman <mflodman@webrtc.org>
Date: Tue Jul 26 11:44:06 2016

Variable audio bitrate.

This is a first CL wiring up AudioSendStream to BitrateAllocator. This
is still experimental and there is a test added for the audio only case,
combined audio video variable bitrate test cases will be added as a
follow up.

BUG=5079

Review-Url: https://codereview.webrtc.org/2165743003
Cr-Commit-Position: refs/heads/master@{#13527}

[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/audio/DEPS
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/audio/audio_send_stream.cc
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/audio/audio_send_stream.h
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/audio/audio_send_stream_unittest.cc
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/audio_send_stream.h
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/call/call.cc
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/call/rampup_tests.cc
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/call/rampup_tests.h
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/media/engine/webrtcvoiceengine.cc
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/test/call_test.cc
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/test/mock_voe_channel_proxy.h
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/voice_engine/channel_proxy.cc
[modify] https://crrev.com/86cc6ffc7ca14c79d760695e89ab9698ed251873/webrtc/voice_engine/channel_proxy.h

Project Member Comment 15 by kjellander@webrtc.org, Oct 5
Labels: M-50
Project Member Comment 16 by anatolid@webrtc.org, Nov 11
Labels: -Mstone-50 -M-50 M-57
Bumping this optimistically to M57. Update if that's wrong.
Project Member Comment 17 by stefan@webrtc.org, Nov 15
Cc: michaelt@webrtc.org minyue@webrtc.org mflodman@webrtc.org
Owner: stefan@webrtc.org
Project Member Comment 18 by bugdroid1@chromium.org, Nov 15
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/b2b61b359c804f5dc237b387e40fc709798ce5dc

commit b2b61b359c804f5dc237b387e40fc709798ce5dc
Author: stefan <stefan@webrtc.org>
Date: Tue Nov 15 13:23:30 2016

Rename the adapt audio bitrate experiment.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2498233003
Cr-Commit-Position: refs/heads/master@{#15080}

[modify] https://crrev.com/b2b61b359c804f5dc237b387e40fc709798ce5dc/webrtc/media/engine/webrtcvoiceengine.cc

Project Member Comment 19 by bugdroid1@chromium.org, Dec 2
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/5932149c9aeaa7679ad0bc3183047766832ca907

commit 5932149c9aeaa7679ad0bc3183047766832ca907
Author: stefan <stefan@webrtc.org>
Date: Fri Dec 02 16:46:25 2016

Use different restrictions of acked bitrate lag depending on operating point.

Before this the BWE was allowed to operate freely up to 100 kbps. This isn't a good idea for audio BWE.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2542083003
Cr-Commit-Position: refs/heads/master@{#15389}

[modify] https://crrev.com/5932149c9aeaa7679ad0bc3183047766832ca907/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc
[modify] https://crrev.com/5932149c9aeaa7679ad0bc3183047766832ca907/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc

Project Member Comment 20 by bugdroid1@chromium.org, Dec 2
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/2e59a02dd49c122a0e848baaebb7a38faf20dec4

commit 2e59a02dd49c122a0e848baaebb7a38faf20dec4
Author: deadbeef <deadbeef@webrtc.org>
Date: Fri Dec 02 19:29:33 2016

Revert of Use different restrictions of acked bitrate lag depending on operating point. (patchset #3 id:40001 of https://codereview.webrtc.org/2542083003/ )

Reason for revert:
Appears to cause a regression to RampUpTest.SendSideAudioOnlyUpDownUpRtx:

https://build.chromium.org/p/client.webrtc.perf/builders/Android32%20Tests%20%28L%20Nexus6%29/builds/626

Original issue's description:
> Use different restrictions of acked bitrate lag depending on operating point.
>
> Before this the BWE was allowed to operate freely up to 100 kbps. This isn't a good idea for audio BWE.
>
> BUG=webrtc:5079
>
> Committed: https://crrev.com/5932149c9aeaa7679ad0bc3183047766832ca907
> Cr-Commit-Position: refs/heads/master@{#15389}

TBR=terelius@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2547113002
Cr-Commit-Position: refs/heads/master@{#15394}

[modify] https://crrev.com/2e59a02dd49c122a0e848baaebb7a38faf20dec4/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc
[modify] https://crrev.com/2e59a02dd49c122a0e848baaebb7a38faf20dec4/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc

Project Member Comment 22 by anatolid@webrtc.org, Jan 11
stefan@ will this make it to M57?
Project Member Comment 23 by stefan@webrtc.org, Jan 12
Labels: -M-57 M-58
Not enabled by default.
Project Member Comment 24 by stefan@webrtc.org, Jan 24
Blockedon: 7043
Project Member Comment 25 by bugdroid1@chromium.org, Jan 24
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/e9f36d55dadda72dd31ab0b130b1441fef1397a4

commit e9f36d55dadda72dd31ab0b130b1441fef1397a4
Author: stefan <stefan@webrtc.org>
Date: Tue Jan 24 16:18:45 2017

Make sure min and max bitrate is always set for audio.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2654503005
Cr-Commit-Position: refs/heads/master@{#16250}

[modify] https://crrev.com/e9f36d55dadda72dd31ab0b130b1441fef1397a4/webrtc/media/engine/webrtcvoiceengine.cc

Project Member Comment 26 by bugdroid1@chromium.org, Jan 27
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/5a2c506e8e8fb4941ab428e355bf8f68954af348

commit 5a2c506e8e8fb4941ab428e355bf8f68954af348
Author: stefan <stefan@webrtc.org>
Date: Fri Jan 27 14:43:18 2017

Set the start bitrate to the delay-based BWE.

This avoids issues where the bitrate produced by the codec is far lower than the target bitrate in the beginning, which causes the delay-based BWE to be initialized accordingly.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2653883002
Cr-Commit-Position: refs/heads/master@{#16327}

[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/call/call.cc
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/call/rampup_tests.cc
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/call/rampup_tests.h
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/congestion_controller/congestion_controller.cc
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/congestion_controller/congestion_controller_unittest.cc
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/congestion_controller/delay_based_bwe.cc
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/congestion_controller/delay_based_bwe.h
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/congestion_controller/transport_feedback_adapter.h
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc
[modify] https://crrev.com/5a2c506e8e8fb4941ab428e355bf8f68954af348/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.h

Project Member Comment 27 by bugdroid1@chromium.org, Feb 10
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/e9ad271db4e0e2b3df8b21ca93e727c24838ffcf

commit e9ad271db4e0e2b3df8b21ca93e727c24838ffcf
Author: stefan <stefan@webrtc.org>
Date: Fri Feb 10 14:09:28 2017

Increase the send-time history to 60 seconds.

This helps us avoid time-outs on really bad networks with long queues.
Also adding periodic logging of the fake network pipe's queue in milliseconds.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2687013005
Cr-Commit-Position: refs/heads/master@{#16532}

[modify] https://crrev.com/e9ad271db4e0e2b3df8b21ca93e727c24838ffcf/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
[modify] https://crrev.com/e9ad271db4e0e2b3df8b21ca93e727c24838ffcf/webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc
[modify] https://crrev.com/e9ad271db4e0e2b3df8b21ca93e727c24838ffcf/webrtc/test/fake_network_pipe.cc
[modify] https://crrev.com/e9ad271db4e0e2b3df8b21ca93e727c24838ffcf/webrtc/test/fake_network_pipe.h

Project Member Comment 28 by bugdroid1@chromium.org, Feb 13
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/e3a55672300af797cac012e65d260860156a3efb

commit e3a55672300af797cac012e65d260860156a3efb
Author: stefan <stefan@webrtc.org>
Date: Mon Feb 13 17:08:22 2017

Reduce the BWE with 50% when feedback is received too late.

Lateness is determined by the length of the send-side history, currently
set to 60 seconds.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2684353004
Cr-Commit-Position: refs/heads/master@{#16588}

[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/congestion_controller/congestion_controller.cc
[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/congestion_controller/delay_based_bwe.cc
[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/congestion_controller/delay_based_bwe.h
[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc
[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc
[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.h
[modify] https://crrev.com/e3a55672300af797cac012e65d260860156a3efb/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc

Project Member Comment 29 by anatolid@chromium.org, Feb 23
Will this issue be fixed/closed in time for M58 cut?
Project Member Comment 30 by stefan@webrtc.org, Feb 23
We may want to do that, depending on what we mean with fixed.

We still don't support adapting audio _and_ video bitrate in the same peer connection, but I would say we do support adapting audio bitrate alone. However, it still has to be manually added to the SDP as the SDP parameters are behind a field trial.

WDYT?
Project Member Comment 31 by anatolid@webrtc.org, Feb 24
I'd say let's wait with closing at least until the audio support is fully productionised (i.e. out of field trial and doesn't require manual enablement in SDP, AFAIK).
Project Member Comment 32 by anatolid@webrtc.org, Mar 6
So should we bump this to M59?
Project Member Comment 33 by stefan@webrtc.org, Mar 6
Labels: -M-58 M-59
Yes, let's move to M59 for now, but it's likely that we won't enable by default in 59 either.
Sign in to add a comment