-
Notifications
You must be signed in to change notification settings - Fork 115
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
On track removal: Should you mute an already muted track? #2506
Comments
The RTP thing is in https://w3c.github.io/webrtc-pc/#mediastreamtrack-network-use |
No, because where muteTracks is populated says: "If track.muted is false, add track to muteTracks." As far as desirable outcome, I think we're doing the right thing. Firing Now, there are other places in this spec where we call that mediacapture algorithm (RTCP BYE etc.) where it looks like we're not checking as carefully. I've filed w3c/mediacapture-main#676 to fix mediacapture. |
No, people can use |
That assumes there is a stream but we allow addTrack without a stream. |
Yes but
|
At both Nightly and Chromium when |
Actually,
Chromium in particular can toggle between |
One question that have is what is the expected state of a
Does a If If |
Firefox should be unmuting correctly (only once packets arrive). Chrome has bugs here. |
Does the |
Note, the proposed workaround
does not work for this case web-platform-tests/wpt#22779 (comment), where |
I believe so, because canvas.captureStream says: "a captured stream MUST request capture of a frame when created, even if frameRequestRate is zero." I've verified this in Firefox with https://jsfiddle.net/jib1/kzsh9wgx/ which produces a black frame (alpha channel does not survive a peer connection AFAIK) |
Hmm, looks like it's intermittent actually. I've filed a bug. |
Neither Chromium nor Firefox behaviour is consistency re The filed issue does not address or explain why |
Attempted to use the same code at Firefox and Chromium to 1) determine what is a minimum requirement for a remote Observations Chromium fires Firefox does not fire Two canvas At Firefox At Chromium Given That does not solve the Chromium issue of One option would be to update the canvas capture stream specification to stream the contents of the canvas regardless of whether or not a new image was painted onto or modification was made to the canvas. Alternatively, adjust
|
For an "infinite" stream of "black frames" at Chromium with
however, since Chromium toggle the
is included in the code, the user will be face with an endless series of prompts with |
The chromium unmute bug is 889487 (go ★ it), so we don't need to discuss that part here. |
Closed by w3c/mediacapture-main#685. |
If a track is negotiated to receive we fire ontrack regardless of packets flowing.
I can't find the relevant spec reference for this, but we should only fire onunmute when we've received RTP packets (and have a decoded frame to render?).
The removeTrack() section says...
It says "is not already muted", but our SDP processing does this:
Which references an algorithm that does not care if the track is already muted, it fires onmute regardless.
So what is the intent? If the track is still muted because we haven't received RTP packets yet, does onmute fire or not?
Is the intent that an application should manually loop through all transceivers and check its currentDirection before and after the negotiation to detect if a track was removed in a way that does not race with RTP packets?
The text was updated successfully, but these errors were encountered: