-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firefox throws an exception if you pass a max-bundle sdp to janus and use the answer as provided by janus #2390
Comments
@lminiero I looked at this and it seems that Janus misinterprets Firefox bundle-only in the audio m-line, invents a mid "0" for the bundle group and then puts mid:(null) into the SDP. The obvious workaround is to not use max-bundle yet but that might become more relevant with unified plan |
How about trying to add audio and video in the order of "audio first, followed by video"? My guess is the Janus might handle that "standard" scenario a little better. Without looking it up I'm pretty sure that "mid:(null)" is not valid SDP. So Firefox is correct to complain about that. @fippo if I remember it correctly with max-bundle the browser is required to request as much bundling as possible, which only works if everything besides the initial m-section gets bundled. So I think Firefox behavior is correct here. |
The order of media is irrelevant, Janus accepts it any way. The issue is that the port in the m-line is 0, which in Janus SDP parsing today means the m-line is disabled. |
@nils-ohlmeier true, that is what JSEP says. Even though I would interpret "Only the first m= section will contain transport parameters; all streams other than the first will be marked as bundle-only" on media streams, i.e. audio+video, not rtp streams. |
More precisely, we probably stop parsing the m-line earlier because of the port
( |
@nils-ohlmeier I can confirm that the cause of the exception is the wrong mid in the |
The commit above should fix it (it seems to work fine for me now). Thanks for the heads up on the issue! |
Yeah unfortunately the IETF decided AFAIK that implementations which are aware of bundle need to handle port 0 differently from the old style non bundle implementations. I'm not a big fan o that either, but if one reads through the mailing list discussions about bundle I'm sure there is some sensible reasoning for that (assuming one finds bundling reasonable ;-) ). |
Steps to reproduce:
use firefox (any current version, 82.0b9 (64-bit))
initialize a PC with bundlePolicy "max-bundle" (sdpSemantics "unified-plan")
pass audio and video to the peercon.
create an offer (attached)
pass the offer to janus through a configure command
put the answer into the pc using setRemoteDescription
ff_max_bundle.txt
janusTransport.log
The text was updated successfully, but these errors were encountered: