Error on WebRTC renegotiation
Reported by
ish...@zingaya.com,
May 13 2016
|
||||||||
Issue description
UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
Steps to reproduce the problem:
1. Create chrome-chrome webrtc connection with audio & video
2. On Offer side
i. remove localStream
ii. add localStream with audio only
iii. generate Offer with {offerToReceiveVideo: true, offerToReceiveAudio: true}
iv. send SDP to another side
3. On Answer side
i. setRemoteDescription
ii. createAnswer without params
iii. setLocalDescription with this answer
iv. send SDP to another side
4. On Offer side
i. setRemoteDescription
On offer side throw error
DOMException: Failed to parse SessionDescription. Failed to parse video codecs correctly.
What is the expected behavior?
What went wrong?
in Answer sdp we have
a=rtcp-fb:101 ccm fir
a=rtcp-fb:101 nack
a=rtcp-fb:101 nack pli
a=rtcp-fb:101 goog-remb
a=rtcp-fb:101 transport-cc
but we haven't
a=rtpmap:101 VP9/90000
Did this work before? N/A
Chrome version: 50.0.2661.94 Channel: n/a
OS Version: OS X 10.11.4
Flash Version: Shockwave Flash 21.0 r0
,
May 26 2016
,
May 27 2016
Thank you for the detailed bug report! FWIW, I mostly used https://webrtc.github.io/samples/src/content/peerconnection/munge-sdp/ when investigating this report. Your offer says: m=video 9 UDP/TLS/RTP/SAVPF 100 and a=rtpmap:100 VP8/90000 a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=rtcp-fb:100 goog-remb a=rtcp-fb:100 transport-cc so I'm assuming you're trying to indicate that you only want to receive VP8 video. However, your offer also includes a=rtcp-fb:101 ccm fir a=rtcp-fb:101 nack a=rtcp-fb:101 nack pli a=rtcp-fb:101 goog-remb a=rtcp-fb:101 transport-cc but rtp payload number 101 isn't mentioned in the m=video line. Removing those five "a=rtcp-fb:101" lines from the offer eliminated the "Failed to parse video codecs correctly" error when attempting to set the offer. jansson@ and hta@ - is it correct that Chrome throws an error while parsing an offer that references "a=rtcp-fb:101" without "a=rtpmap:101 VP9/90000" or a mention of payload 101 in the m=video line? (And FYI to the reporter - even after removing the "a=rtcp-fb:101" lines from the offer, I still wasn't able to establish a connection because when I tried to set an answer, Chrome threw this error: Failed to set session description: OperationError: Failed to set remote answer sdp: Failed to push down transport description: Offerer must use actpass value for setup attribute. A possibly relevant discussion of that error is in https://bugs.chromium.org/p/webrtc/issues/detail?id=2782)
,
May 27 2016
Thank you for answer! I'm don't mangle offer and answer. It's pure generated by Chrome on renegotiation without change DTLS roles. This is holding operation. OfferToRecive set to false and no media streams added as local streams.
,
May 27 2016
Directly assigning to hta@ since I'm getting the feeling that I'm missing something here...
,
Jun 1 2016
The offer generated has the brokenness. It seems that we're leaving in some stuff that belongs to VP9, but somehow leave VP9 out of the offer. It also has a=setup:active, which I am not sure it should (but seems to make sense - "keep the current role"). A test case is needed; according to the description, it should be easy to repro.
,
Apr 5 2017
Is someone in Kirkland able to pick this up?
,
Apr 7 2017
Archiving this because it was reported several Chrome versions ago, and I think it's unlikely to still be a problem. Please comment if you still see this, and I'll reopen and investigate further.
,
Apr 10 2017
I'm still can reproduce this bug on 57.0.2987.133 (64-bit) Linux and Mac
,
Apr 10 2017
I wasn't able to reproduce the originally reported issue (extra "rtcp-fb" lines). But what I did find is that, after adding the new stream, the stream ID in the new offer didn't change. As a result, though the offer/answer exchange completed successfully, audio wasn't flowing end-to-end audio. Is this what you saw? If so, I believe that issue will be fixed by this CL: https://codereview.webrtc.org/2810733003
,
Apr 14 2017
The CL linked above landed in webrtc; can you test next week with Chrome Canary? |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by ashej...@chromium.org
, May 17 2016Labels: Needs-Feedback