New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 803615 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

SDP bandwidth attribute does not get honored when a new track is added

Reported by ganapath...@gmail.com, Jan 18 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

Steps to reproduce the problem:
1. Create a webrtc session with audio and video captures
2. Set a 2 Mpbs limit on the bandwidth using b=AS:2048 line in the sdp. I had set this as an attribute under the video media line.
3. Once the session is stable, add another track to the same stream and renegotiate the session through a new offer/answer. The usecase here is starting a screen capture during a video session
4. Observe the bandwidth usage

What is the expected behavior?
Even after the screen capture track is added, the overall bandwidth should be 2 Mpbs (not considering audio here)

What went wrong?
The bandwidth usage doubles on adding a new track to the session. Instead of splitting the available BW between the two tracks each track is allocated 2 Mbps.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 63.0.3239.132  Channel: stable
OS Version: OS X 10.12.4
Flash Version: 

The strange thing here is that, it works fine under the following conditions
1. In the process of adding the new track, if there is a change in the BW then it works fine. For example, in the second offer/answer that was initiated to signal the new track, if the answerer changes the BW from say 2048 to 2047, then the bandwidth gets equally split between the two tracks
2. If I disable transport-cc and other extensions that negotiates the sender side rate control and fallback to REMB and receiver side rate control the bandwidth gets split equally and the overall bandwidth usage stays within the limit specified by the b line.

In essence it appears to me that, chrome does behave the right way under certain conditions but misses out on a few. When a new track gets added to the stream or a track gets removed the bandwidth estimation probably has to be reset to take into account the change in number of media flows.
 
Labels: Needs-Triage-M63

Comment 2 by guidou@chromium.org, Jan 19 2018

Components: -Blink>WebRTC Blink>WebRTC>Network
Ping for triaging.
Cc: susan.boorgula@chromium.org
Labels: Triaged-ET Needs-Feedback
ganapathy.vijay@ Thanks for the issue.

Request you to provide a test file where this issue can be reproduced, which will help in further triaging.

Thanks..
Status: WontFix (was: Unconfirmed)
Mac triage: WontFix old issue without feedback or repro steps.
Cc: holmer@chromium.org srte@chromium.org
Components: -Blink>WebRTC>Network Blink>WebRTC>Video
Labels: -Needs-Feedback
Status: Untriaged (was: WontFix)
I was able to reproduce with this fiddle: https://jsfiddle.net/jyoa78aj/

Interestingly, only seems to occur if there's an audio track in the mix... I'm guessing the issue is that Call::SetSdpBitrateParameters is called for both the video and audio m= sections. Upon setting the updated description, if "b=AS:2048" stays the same, the video channel doesn't call SetSdpBitrateParameters (since nothing's changing), but the audio channel does (it's not as optimized), unsetting the limit. That explains why changing to a different value (like 2049) makes a difference.

CCing some people who may be able to triage.
Ping for triaging.

Comment 8 by sprang@chromium.org, Apr 26 2018

Cc: philipel@chromium.org
+philipel
There have been a few fixes around this since this bug. Is it still a problem?
Looks like its still an issue. The jsfiddle example still seems to behave the same way.
Owner: terelius@chromium.org
Status: Assigned (was: Untriaged)
terelius, can you triage this?

Sign in to add a comment