-
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
What is the intended behavior of rollback of remote simulcast offer? #2764
Comments
That doesn't seem consistent with the description of Rollback in RFC 8829: 4.1.10.2. Rollback In certain situations, it may be desirable to "undo" a change made to |
I've tested this and Chrome removes the encodings while Safari doesn't. Removing encodings on rollback seems in keeping with the spirit of RFC 8829, so I think we should align the spec with Chrome here. |
Similarly, do we want a rollback to restore encodings that were removed by a sRD(offer)? Including any scaleResolutionDownBy etc that was set by JS? |
If we do #2762 (comment) then sRD(offer) won't have removed anything, and there's nothing to restore. |
To clarify, all I could test until crbug 944821 is fixed was the moot "the transceiver is removed' case, where the transceiver is stopped and removed from The only non-moot case that seems important here is addTrack, and it's not possible to remove its first encoding.
Re-reading the OP, by "modifications" do you mean modifications made by sRD itself, or do you also include calls to setParameters() in have-remote-offer in your question? While investigating the latter, I found a bunch of interesting pathological cases: calling sRD back-to-back, first without rollback in-between and then with. In Chrome, back-to-back sRDs affect each other (even with rollback in-between), producing the same narrowing effect as if O/A completed between each call. This seems wrong. Also, parameter changes from JS survive when rollback isn't used in-between, but not when it is (which seems... right? wrong? Why not leave them alone always?) cc @Orphis Safari seems to exhibit the same behavior when rollback isn't used in-between. When rollback is used in-between the test fails because a second transceiver appears (!) A bug? cc @youennf |
With #2758 merged, the only remaining trouncing done by sRD(simulcastOffer) is of ridless unicast [[SendEncodings]]. I'll add a PR to roll that back when necessary. |
Right now, it looks like rollback of a remote simulcast offer does not undo any modifications made to RTCRtpSender.[[SendEncodings]] (unless the transceiver is removed, making the point moot). Is this the intent?
The text was updated successfully, but these errors were encountered: