-
Notifications
You must be signed in to change notification settings - Fork 114
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
Regarding "a=msid" #2005
Comments
didn't we conclude that track ids are meaningless? This seems to be blocked on rtcweb-wg/jsep#842 transceiver.mid still doesn't allow defining a stream relationship between different mediasections? |
addTrack says the MSID of the track added will be listed in future offers/answers. Other than that I think MSIDs are only used to signal MediaStream IDs as far as webrtc-pc is concerned. No calls to "Create an RTCRtpReceiver" actually pass an ID as an argument, meaning they MUST all be randomly generated and if any browser uses "a=msid" to be nice for backwards compatibility they're doing it wrong. Edit: Sorry, "from the media description" probably means to pass the ID. |
Maybe even 0% of the time unless we update the spec :) |
Why do we need MediaStreams and msid at all? |
I like option 1. or 2. here. We need "a=msid ..." lines to signal that a given sender/track is associated with a given MediaStream ID.
Do we know why duplicates aren't allowed? |
Yes, they decided in JSEP to remove the track ID from a=msid. There's even a pull request to change the language, but it doesn't appear that anyone has looked at it yet: rtcweb-wg/jsep#850 |
We could remove it or we could allow duplicates. ("Do we know why duplicates aren't allowed?" I personally don't.)
I was tempted to say that we don't, but I'm curious if this is still useful in order to signal which track is which without mapping mids. Track IDs are no longer guaranteed to match, but stream IDs are. Associating a track with a stream is a way to carry information about which track is which inside of the SDP, at the same point in time as you previously would have cared about track IDs. Using MIDs on the other hand requires SLD/SRD to have been performed. With streams you'd know the ID right there before the answer. I have heard developers confused and frustrated about not being able to rely on track IDs anymore. Though I don't understand why they have a problem with simply using the MIDs... someone was creating a bunch of dummy transceivers because they didn't know how many tracks would be carried in the answer but thought they needed the MIDs before that or something? |
Related issue: #1718 |
We are working on landing the PR in jsep - there wasn't an opportunity to do so before because the doc had gone past Last Call, but now are updating the doc again and can take this PR. |
The JSEP PR has merged; track IDs are no longer signaled with "a=msid", only stream IDs. |
The decision on TPAC was to "Stop saying anything about track.id mapping". From what I can find, we mention track IDs in these places:
JSEP has been updated not to signal track IDs, which means "from media description" would not involve a track ID. But what if you're communicating with an endpoint that does signal the track ID? We'll have to either say "use that track ID if it is not already in-use" if we want to avoid duplicate IDs, or remove the track ID from the creation steps such that it is always random no matter what was signaled. |
OK, JSEP says when parsing m= sections:
So track ID is always ignored even from remote SDP, so track ID is always N/A. |
JSEP Section 5.2.1 and 5.2.2 says:
MSID Section 2 says:
It sounds to me that the following, while clearly intended to be permitted, is not permitted:
Because one spec says we MUST use the track's ID and stream ID "-" for both "a=msid" lines and the other say having two identical "a=msid" lines is not permitted.
What both Chrome and Firefox does is the second track will get a random "a=msid" value. Doesn't this go against the spec? @jan-ivar
On the other hand, if you supply media streams the combination is no longer unique, and the following would allow you to reuse the track ID:
Because it would show up in SDP as "a track belonging to multiple streams". However current implementations (at least Chrome?) still generate a new ID.
Proposals
For related bug info, including code snippet to test this, see https://crbug.com/894231.
The text was updated successfully, but these errors were encountered: