New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 29 users
Status: Fixed
Owner:
Closed: Sep 4
Cc:
Components:
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocked on:
issue 5263
issue 7043

Blocking:
issue 4502



Sign in to add a comment
Adapt audio bitrate based on estimated available bandwidth.
Project Member Reported by mflodman@webrtc.org, Oct 15 2015 Back to list
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 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 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 2016
Labels: M-50
Project Member Comment 16 by anatolid@webrtc.org, Nov 11 2016
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 2016
Cc: michaelt@webrtc.org minyue@webrtc.org mflodman@webrtc.org
Owner: stefan@webrtc.org
Project Member Comment 18 by bugdroid1@chromium.org, Nov 15 2016
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 2016
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 2016
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 2017
stefan@ will this make it to M57?
Project Member Comment 23 by stefan@webrtc.org, Jan 12 2017
Labels: -M-57 M-58
Not enabled by default.
Project Member Comment 24 by stefan@webrtc.org, Jan 24 2017
Blockedon: 7043
Project Member Comment 25 by bugdroid1@chromium.org, Jan 24 2017
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 2017
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 28 by bugdroid1@chromium.org, Feb 13 2017
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 2017
Will this issue be fixed/closed in time for M58 cut?
Project Member Comment 30 by stefan@webrtc.org, Feb 23 2017
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 2017
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 2017
So should we bump this to M59?
Project Member Comment 33 by stefan@webrtc.org, Mar 6 2017
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.
Project Member Comment 34 by stefan@webrtc.org, Mar 31 2017
Components: -Video -Audio BWE
Labels: -Pri-1 Pri-2
Project Member Comment 35 by bugdroid1@chromium.org, Apr 10 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/fca900aa3767bc6800e2119e4135965895b54e2c

commit fca900aa3767bc6800e2119e4135965895b54e2c
Author: stefan <stefan@webrtc.org>
Date: Mon Apr 10 10:53:00 2017

Fix two invalid DCHECKs related to audio BWE.

These are invalid since:
- An allocated bitrate of 0 means that the stream should be disabled. Changing the behavior to send audio at min bitrate even though the allocator asks for the stream to be disabled.
- It should be OK to set a min bitrate equal to the start bitrate.

BUG= webrtc:5079 

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

[modify] https://crrev.com/fca900aa3767bc6800e2119e4135965895b54e2c/webrtc/audio/audio_send_stream.cc
[modify] https://crrev.com/fca900aa3767bc6800e2119e4135965895b54e2c/webrtc/call/call.cc

Project Member Comment 36 by anatolid@webrtc.org, Apr 18 2017
Stefan, it looks like this didn't make it into M59, am I correct?
Project Member Comment 37 by stefan@webrtc.org, Apr 18 2017
Labels: -M-59 M-61
Yes, I'll move it to M61 for now as we have no current plans of removing this from the finch experiment.
Project Member Comment 38 by stefan@webrtc.org, May 23
Blocking: 4502
Project Member Comment 39 by bugdroid1@chromium.org, Jun 1
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/e80f4c91d0a2854a339e419162fdcd1d916f7de0

commit e80f4c91d0a2854a339e419162fdcd1d916f7de0
Author: Stefan Holmer <holmer@chromium.org>
Date: Thu Jun 01 14:29:30 2017

Wire up BWE stats through WebrtcSession so that they are filled in both for audio and video calls.

Prior to this CL Call::Stats were collected via WebRtcVideoEngine2, but not via WebRtcVoiceEngine, causing these stats to be missing for audio-only calls. Call lives on the peerconnection/session level and should only be collected once independent on how many streams we have.

BUG= webrtc:5079 
R=deadbeef@webrtc.org, hbos@webrtc.org

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

[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/media/base/fakemediaengine.h
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/media/base/mediachannel.h
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/media/engine/webrtcvideoengine2.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/media/engine/webrtcvideoengine2.h
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/media/engine/webrtcvideoengine2_unittest.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/channel.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/channel.h
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/rtcstatscollector.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/rtcstatscollector.h
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/rtcstatscollector_unittest.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/statscollector.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/statscollector.h
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/statscollector_unittest.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/test/mock_webrtcsession.h
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/webrtcsession.cc
[modify] https://crrev.com/e80f4c91d0a2854a339e419162fdcd1d916f7de0/webrtc/pc/webrtcsession.h

Project Member Comment 40 by bugdroid1@chromium.org, Jun 1
The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/d72098a41971833e210bfdcffaab7a18ced4775f

commit d72098a41971833e210bfdcffaab7a18ced4775f
Author: charujain <charujain@webrtc.org>
Date: Thu Jun 01 15:54:47 2017

Revert of Wire up BWE stats through WebrtcSession so that they are filled in both for audio and video calls. (patchset #8 id:140001 of https://codereview.webrtc.org/2863123002/ )

Reason for revert:
Broken downstream projects

Original issue's description:
> Wire up BWE stats through WebrtcSession so that they are filled in both for audio and video calls.
>
> Prior to this CL Call::Stats were collected via WebRtcVideoEngine2, but not via WebRtcVoiceEngine, causing these stats to be missing for audio-only calls. Call lives on the peerconnection/session level and should only be collected once independent on how many streams we have.
>
> BUG= webrtc:5079 
> R=deadbeef@webrtc.org, hbos@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2863123002 .
> Cr-Commit-Position: refs/heads/master@{#18384}
> Committed: https://chromium.googlesource.com/external/webrtc/+/e80f4c91d0a2854a339e419162fdcd1d916f7de0

TBR=hbos@webrtc.org,deadbeef@webrtc.org,holmer@google.com,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/2916793003
Cr-Commit-Position: refs/heads/master@{#18386}

[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/media/base/fakemediaengine.h
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/media/base/mediachannel.h
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/media/engine/webrtcvideoengine2.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/media/engine/webrtcvideoengine2.h
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/media/engine/webrtcvideoengine2_unittest.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/channel.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/channel.h
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/rtcstatscollector.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/rtcstatscollector.h
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/rtcstatscollector_unittest.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/statscollector.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/statscollector.h
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/statscollector_unittest.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/test/mock_webrtcsession.h
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/webrtcsession.cc
[modify] https://crrev.com/d72098a41971833e210bfdcffaab7a18ced4775f/webrtc/pc/webrtcsession.h

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

commit f79ade1320d1f27dc85a1bf7da5ca430ca80ab85
Author: stefan <stefan@webrtc.org>
Date: Fri Jun 02 13:44:03 2017

Revert "Revert of Wire up BWE stats through WebrtcSession so that they are filled in both for audio and video calls. (patchset #8 id:140001 of https://codereview.webrtc.org/2863123002/ )"

This reverts commit d72098a41971833e210bfdcffaab7a18ced4775f.

BUG= webrtc:5079 

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

[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/media/base/fakemediaengine.h
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/media/base/mediachannel.h
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/media/engine/webrtcvideoengine2.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/media/engine/webrtcvideoengine2.h
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/media/engine/webrtcvideoengine2_unittest.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/channel.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/channel.h
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/rtcstatscollector.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/rtcstatscollector.h
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/rtcstatscollector_unittest.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/statscollector.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/statscollector.h
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/statscollector_unittest.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/test/mock_webrtcsession.h
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/webrtcsession.cc
[modify] https://crrev.com/f79ade1320d1f27dc85a1bf7da5ca430ca80ab85/webrtc/pc/webrtcsession.h

Project Member Comment 43 by anatolid@webrtc.org, Aug 14
What's the status here? Shall we bump this to M62?
Project Member Comment 44 by anatolid@webrtc.org, Sep 4
Ping. Will this be carried over to M63?
Project Member Comment 45 by stefan@webrtc.org, Sep 4
Status: Fixed
I will close this as fixed, although the code is still behind a field trial in Chrome. We'll open a new bug for tracking removing the field trial in Chrome.
thx for the update Stefan.
How can one enable/disable this? or is the field trial on for all Chrome endpoints starting on a release number onwards?
Project Member Comment 47 by stefan@webrtc.org, Sep 4
It's currently only recommended that you enable this on audio-only calls. The field trial hasn't been enabled, so you'd have to force enable the field trial in Chrome, or alternatively munge SDP and add the necessary header extension to audio (transport sequence number).

I'd imagine that we enable this by default in Chrome once we have verified it works well when combining audio and video in the BWE.


thx Stefan. 
Is receiver-side bwe (REMB and co.) planned to support it ? 
From your comments, it sounds that this is tight to sender-side bwe apparently for now.
Project Member Comment 49 by stefan@webrtc.org, Sep 5
No plan to support receive-side bwe at this point. This relies on bitrate probing during periods of silence/dtx, which we don't support with receive-side bwe.
Sign in to add a comment