RTCTrackEvent-fire.html wpt wants ontrack events when a=msid is altered in remote description
Categories
(Core :: WebRTC: Signaling, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox68 | --- | fixed |
People
(Reporter: bwc, Assigned: bwc)
References
Details
Attachments
(7 files, 1 obsolete file)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
This is pretty debatable, because the JSEP spec forbids a=msid changing, which implies an expectation that JS won't see new tracks unless a transceiver is added. On the other hand, it was not always this way, and existing JS might want to see the events.
Comment 1•6 years ago
|
||
As I recall, we deprecated msid for identification in favor of mid, removing the track id part that made them unique. Its remaining use: keeping track of stream associations, which can change with sender.setStreams() (bug 1510802), causing events. E.g. two tracks in the same stream now have the same msid.
I think this renders the following JSEP text obsolete: "For RtpTransceivers that are not stopped, the "a=msid" line(s) MUST stay the same if they are present in the current description, regardless of changes to the transceiver's direction or track."
If I didn't want to change JSEP, I'd narrowly interpret this as: "must not change when the track changes", and since we've removed the relevant part it was speaking to (the unique track id), we can ignore it.
Assignee | ||
Comment 2•6 years ago
|
||
Just to be clear, your opinion is that this check should be removed?
Comment 3•6 years ago
•
|
||
Sorry for not being clear: the check is correct and should stay. I meant "JSEP spec forbids a=msid changing" is obsolete.
MSID reflects stream associations, which can change according to webrtc-pc, and must fire events. From SRD(offer):
If direction is "sendrecv" or "recvonly", let msids be a list of the MSIDs that the media description indicates transceiver.[[Receiver]].[[ReceiverTrack]] is to be associated with. Otherwise, let msids be an empty list.
Set the associated remote streams given transceiver.[[Receiver]], msids, addList, and removeList.
If the previous step increased the length of addList, or if transceiver's [[FiredDirection]] slot is neither "sendrecv" nor "recvonly", process the addition of a remote track for the media description, given transceiver and trackEventInits.
Assignee | ||
Comment 4•6 years ago
|
||
As much as I dislike the JSEP spec around this, I don't think your narrow interpretation holds up. The jsep draft says that a=msid is invariant until the transceiver is stopped, and this is purposeful. Definitely, we should not be changing our own a=msid attributes (unless draft-jsep is changed, which would require us to raise an almighty fuss at this point).
Let's bring this up on w3c.
Comment 5•6 years ago
|
||
The jsep draft says that a=msid is invariant until the transceiver is stopped, and this is purposeful.
What purpose does that solve when it is no longer unique? E.g. the typical case of a stream with an audio track and a video track, the tracks will both have the same msid now.
Let's bring this up on w3c.
Please file an issue on webrtc-pc or jsep if you think there is an issue here.
Assignee | ||
Comment 6•6 years ago
|
||
(In reply to Jan-Ivar Bruaroey [:jib] (needinfo? me) from comment #5)
The jsep draft says that a=msid is invariant until the transceiver is stopped, and this is purposeful.
What purpose does that solve when it is no longer unique? E.g. the typical case of a stream with an audio track and a video track, the tracks will both have the same msid now.
Exactly the question I asked here: https://github.com/w3c/webrtc-pc/issues/2115
Assignee | ||
Comment 7•6 years ago
|
||
Ok, so it looks like the consensus is that JSEP is buggy here, and we're going to surface this to JS.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Comment 9•6 years ago
|
||
Assignee | ||
Comment 10•6 years ago
|
||
Assignee | ||
Comment 11•6 years ago
|
||
Assignee | ||
Comment 12•6 years ago
|
||
Depends on D25793
Assignee | ||
Comment 13•6 years ago
|
||
Depends on D25794
Assignee | ||
Comment 14•6 years ago
|
||
Depends on D25795
Assignee | ||
Comment 15•6 years ago
|
||
Depends on D25796
Assignee | ||
Comment 16•6 years ago
|
||
Depends on D25797
Assignee | ||
Comment 17•6 years ago
|
||
Depends on D25798
Updated•6 years ago
|
Assignee | ||
Comment 18•6 years ago
|
||
Assignee | ||
Comment 19•6 years ago
|
||
Assignee | ||
Comment 20•6 years ago
|
||
Assignee | ||
Comment 21•6 years ago
|
||
Assignee | ||
Comment 22•6 years ago
|
||
Assignee | ||
Comment 23•6 years ago
|
||
Wow, what happened on try there? Oranges in lots of unrelated tests... I think I'll rebase and see if it is less of a mess.
Assignee | ||
Comment 24•6 years ago
|
||
Comment 25•6 years ago
|
||
Comment 26•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/86910675df13
https://hg.mozilla.org/mozilla-central/rev/cbe9386e0d7a
https://hg.mozilla.org/mozilla-central/rev/14e1bfbd0060
https://hg.mozilla.org/mozilla-central/rev/f8a6a019f873
https://hg.mozilla.org/mozilla-central/rev/4864459fde54
https://hg.mozilla.org/mozilla-central/rev/6bf3fd241bb8
https://hg.mozilla.org/mozilla-central/rev/d2ba7da778f0
Description
•