Skip to content
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

Is "same PT, different FMTP lines" allowed in BUNDLE? #2766

Open
henbos opened this issue Sep 1, 2022 · 6 comments
Open

Is "same PT, different FMTP lines" allowed in BUNDLE? #2766

henbos opened this issue Sep 1, 2022 · 6 comments
Assignees
Labels
Needs Test Needs a WPT test

Comments

@henbos
Copy link
Contributor

henbos commented Sep 1, 2022

While working on w3c/webrtc-stats#662 (comment), we discovered that Chrome is able to handle a BUNDLEd transport where different m= sections use the same codec and payload type but where the FMTP line is different. See fiddle (you'd think this would throw, but it doesn't).

The idea that it should be possible to have different FMTP lines for the same PT and transport was expressed by @jan-ivar here and @taylor-b here, while @fippo strongly believes that this should be illegal and there is a bug in Chrome.

I don't know what BUNDLE says but different FMTP lines sounds wrong to me. What should be the correct behavior? (If it is not, some recent code to avoid duplicate RTCCodecStats objects in libwebrtc could be simplified.)

@fippo
Copy link
Contributor

fippo commented Sep 1, 2022

I think the following fiddle is forbidden
https://jsfiddle.net/fippo/Lrdj4mwu/3/
yet passes

https://www.rfc-editor.org/rfc/rfc8843#name-payload-type-pt-value-reuse says
all codecs associated with the payload type number MUST share an identical codec configuration. This means that the codecs MUST share the same media type, encoding name, clock rate, and any parameter that can affect the codec configuration and packetization
and https://www.rfc-editor.org/rfc/rfc8859.html#section-5.1 lists fmtp as "identical per pt"

@henbos
Copy link
Contributor Author

henbos commented Sep 1, 2022

Sounds pretty disallowed, filed https://crbug.com/webrtc/14420

@taylor-b
Copy link
Contributor

taylor-b commented Sep 2, 2022

Just want to add, in that same thread alvestrand@ says "the way RTP works, there can't be two different codec configurations for the same payload type on the same transport in the same direction", and I trust his knowledge of RTP semantics. I just know how Chrome/libwebrtc works, and the fact that it supports different FMTP lines doesn't mean that's correct.

@fippo
Copy link
Contributor

fippo commented Sep 2, 2022

seems we have a bug in multiple browsers, Firefox accepts the fiddle as well.

@dontcallmedom dontcallmedom transferred this issue from w3c/webrtc-stats Sep 2, 2022
@aboba
Copy link
Contributor

aboba commented Sep 3, 2022

RFC 8843 has been obsoleted by RFC 9143, but the text @fippo quotes remains the same. So having two FMTP configurations utilizing the same PT is forbidden (although with distinct PTs, they can share the same SSRC as long as the clockrate is the same).

@aboba aboba added the Needs Test Needs a WPT test label Sep 5, 2022
@fippo
Copy link
Contributor

fippo commented Jan 17, 2024

Current status: we can't fix browsers since there is too much actual usage and we don't know who needs to fix their code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs Test Needs a WPT test
Projects
None yet
Development

No branches or pull requests

4 participants