[webrtc-pc] Clarify a=ssrc attributes when track is changed/removed (#2783)

k0nserv has just created a new issue for https://github.com/w3c/webrtc-pc:

== Clarify a=ssrc attributes when track is changed/removed ==

I found something that's not clear from the spec. Imagine the following:

1. Create a peer connection
2. Create a track
3. Negotiate with a peer
4. Run `sender.replaceTrack(null)` and `transceiver.direction = "inactive"`
5. Negotiate with the peer

In step 5 should the offered m-line contain `a=ssrc` attributes? I can't find anything in JSEP that specifies this.

## Observed behaviour

When negotiating with an "inactive" direction after calling `sender.replaceTrack(null)` the following is observed:

* Chrome/Safari/Edge: These all keep the `a=ssrc` attributes the same, notably they also all keep `a=msid` which is a violation of JSEP(it says to only include them for sendrecv/sendonly m-lines).
* Firefox: Removes `a=ssrc` lines and `a=msid`, but it keeps `a=ssrc-group:FID` lines

Further, when offering an m-line that removes these `a=ssrc` attributes for inactive m-lines and then adding them back with a direction of `sendonly` Chrome fails to restart the video feed(it logs "VideoReceiveStreamInterface not connected to a VideoSink."). Firefox correctly restarts these streams.

## Request to clarify

Please clarify if `a=ssrc` lines should remain the same when `sender.replaceTrack(null)` and `transceiver.direction = "inactive"` is used to temporarily mute a track.

Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2783 using your GitHub account

Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Monday, 10 October 2022 17:33:59 UTC