SDP bandwidth attribute does not get honored when a new track is added
Reported by
ganapath...@gmail.com,
Jan 18 2018
|
|||||||
Issue descriptionUserAgent: 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.
,
Jan 19 2018
,
Feb 9 2018
Ping for triaging.
,
Mar 1 2018
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..
,
Apr 2 2018
Mac triage: WontFix old issue without feedback or repro steps.
,
Apr 2 2018
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.
,
Apr 26 2018
Ping for triaging.
,
Apr 26 2018
+philipel There have been a few fixes around this since this bug. Is it still a problem?
,
Apr 26 2018
Looks like its still an issue. The jsfiddle example still seems to behave the same way.
,
May 4 2018
terelius, can you triage this? |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by krajshree@chromium.org
, Jan 19 2018