-
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
Align spec /w codec direction decision #3006
Comments
The TPAC decision made it clear which direction to go, but we never touched on what happens if the transceiver direction makes it such that none of your codec preferences are applicable anymore (e.g. transceiver is sendrecv but preferences only include recvonly codecs). This issue was pointed out in #2939 |
Adding "Discuss at next meeting" label to reflect we need to discuss error handling as per previous comment |
Laundry list:
|
The spec used to say a preference is a send codec OR receive codec, this was actually changed in an amendment. So I wonder what our implementation does, if it still does both send and receive or if it was updated as per PR, do you know @fippo @alvestrand ? |
Filing crbug to align with any spec changes happening here: https://crbug.com/370792782 |
To be discussed at October Virtual Interim (slides) |
We still need to align the spec with the decision such that setCodecPreferences does not throw if you set a sendonly codec (e.g. sendonly transceiver use case) |
I thought we had been discussing this before and agreed no changes are needed? Do you have a fiddle or test showing your problem? https://www.rfc-editor.org/rfc/rfc9429#section-4.2.6
If you use sCP on a sendonly transceiver it does not matter much in practice but would only be observable in future O/A after changing the direction. |
@fippo IETF RTCWEB and AVTCORE WGs discussed RFC 9429 Section 4.2.6 - and the conclusion was that it was being interpretted by WEBRTC WG in a way that was inconsistent with RFC 3264. The decision at TPAC 2024 fixes that. |
Yep, and to really spell this out, the following should work:
But the following should NOT work:
In the next meeting I will discuss how to handle errors (e.g. if the bad example should result in exceptions or if it should be interpreted as "no preference" after filtering). TBD |
https://www.rfc-editor.org/rfc/rfc8829.html#section-4.2.6-1
I keep looking for a sendonly codec that is not covered by special codec rules like level-asymmetry-allowed which covered the weird (and likely buggy) H264 instance we found. |
It does not affect it directly, but it affects it indirectly. This JSEP reading is what led to this regression in the first place, we decided to fix this. |
Decision for the remaining error handling was Proposal A of this slide. This issue is now ready for PR. |
Let me try to clarify this after cappucino and water with hbos:
That part is 👍 I do not see a need to change those rules based on direction so disagree with the second code block of this comment but that might have been overtaken by events? I question the conclusion to do "Proposal A" of the slide above. The Working Group seems to make decisions based on opinions while lacking tests which, like this fiddle (took five minutes to write... for the second time, I had shown this in February already) which shows that "deployed code" is doing proposal C. Transceivers can get stopped for a number of reasons, applications must check what was negotiated anyway. |
You’re able to recognize the the past sendrecv limitation was a problem for your recvonly use case, but you can’t see that the exact same problem exists for the sendonly usecase? Your questioning of Proposal A has downsides (not fixing sendonly) without upside (what would thay be?). Your opposition also requires not caring what the RFCs referenced in the slides say. I stand by the WG decision. |
How does Proposal C (m-line is rejected; this has a downside of having a stopped transceiver after SLD), consistent with "incompatible choices result in a stopped transceiver" not fix sendonly? Transceivers get stopped, they are cheap. See also #2936 (it seems we are going in circles) |
How to deal with codecs and directionality was discussed at TPAC 2024:
There was a strong preference for Proposal A, i.e. to "keep it simple": sendonly transceivers can do all send codecs, recvonly transcievers can do all receive codecs, and sendrecv transceivers can only do codecs and profiles that you can BOTH send AND receive with. So if you want to do fancy unidirectional codecs or profiles you use multiple m= sections.
Let this issue track making sure the spec aligns with Proposal A and allow us to merge other codec related issues as fixed by this issue
The text was updated successfully, but these errors were encountered: