Open k0nserv opened 1 year ago
I agree with the discussion in the Chromium tracker that it looks like RFC 8829 wasn't updated when setStreams was added, as further evidenced by paragraphs like this one:
- For each MediaStream that was associated with the transceiver
when it was created via addTrack or addTransceiver, an "a=msid"
line, as specified in [RFC8830], Section 2, but omitting the
"appdata" field.
...which doesn't account for: pc.addTrack(track).setStreams(stream)
.
As further mentioned in the Chromium tracker, since the introduction of mid
, and with appdata
now omitted, msid is AFAIK relegated to surfacing stream associations remotely (which can change with setStreams
), with the stable identifier instead being mid
.
@docfaraday can we file an errata on the RFC?
@alvestrand we need a spec decision on this one to determine the fate of the crbug
RFC 8829(JSEP) says
How should this be interpreted? It sounds like it's saying, that after the first negotiation where a track is present is complete any change to the streams associated with that track are frozen, i.e., any changes will not be reflected in offers.
However, this seems to conflict with the
RTCRtpSender.setStreams
method its purpose modifying the streams of an existingRTCPRtpSender
. Given the above interpretation of the RFC it would mean that any calls tosetStreams
have no observable effect on the remote side after the first negotiation that included the sender's transceiver.There are further details on the Chromium issue tracker: https://bugs.chromium.org/p/chromium/issues/detail?id=1342010
Any guidance would be helpful