-
Notifications
You must be signed in to change notification settings - Fork 42
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
RTP matching rules when no encoding.rtx.ssrc is given #546
Comments
@ibc What if we always fill the pt_table regardless of whether parameters.muxId is set or parameters.encodings[i].ssrc is set? If we did that, then the "rtx" packets wouldn't be discarded. |
Exactly. Not filling the |
I must add a concern. Not filling the If multiple media tracks are carried over the same transport it's likely they will share most of the codecs and PTs. If all those PT values are inserted into the Finally, in my implementation I followed the original text regarding filling tables, with the following changes/steps:
This works fine so far. |
Routing Rules PR in JSEP: rtcweb-wg/jsep#320 |
@ibc The JSEP Section 7 rules always add entries to the pt_table, but never remove entries or latch. The rules do not say what happens when pt_table entries conflict, but presumably this is not considered an error (e.g. one of the pt_table entries wins). This has the advantage of perhaps handling the case where all the SSRCs are given for encoding.ssrc, encoding.rtx.ssrc and encoding.fec.ssrc, but there is an SSRC change that is not signaled. |
Routing Rules update to address compatibility with Section 7 of https://tools.ietf.org/html/draft-ietf-rtcweb-jsep Addresses the following issues: #368, #546, #547
@ibc @robin-raymond - Can you check whether this issue is resolved by PR #602 (which is based on JSEP Section 7)? |
It looks to me like this Issue is addressed by the JSEP Section 7 rules, since the proposed algorithm does fill the |
I must properly check JSEP Section 7, but it makes sense (something like "all for me" or "first wins" or "the latest wins"). |
JSEP rules have changed: PT_table entry added regardless of SSRC values, so still addresses this issue. |
@ibc @robin-raymond @pthatcherg The JSEP Appendix B RTP matching rules appear to address this issue, correct? The proposed rules will add a pt_table entry regardless of whether encodings[].ssrc, encodings[].rtx.ssrc or encodings[].fec.ssrc is specified, as long as the PTs do not overlap. So "rtx" packets will not be discarded. |
Robin has written down his algorithm, which seems to address this issue: |
Imagine
receive()
is called withoutmuxId
, with "vp8" (PT 100) and "rtx" (PT 98) incodecs
, and with a singleencoding
withssrc
but nortx
.According to the rules:
But in the above case
encoding.ssrc
is given, so the PT of "rtx" won't be added to thept_table
and thus "rtx" packets will be discarded.One may say that
encoding.rtx.ssrc
is not required (as the spec states) but in the above case RTX would not work.The text was updated successfully, but these errors were encountered: