-
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
mid vs. receiverId #140
Comments
[Peter Thatcher] http://lists.w3.org/Archives/Public/public-ortc/2014Aug/0002.html "I agree that we can switch to using the MID header extension from the [Emil Ivov] http://lists.w3.org/Archives/Public/public-ortc/2014Aug/0003.html "Bernard referred to it as a "track ID" earlier today and I thought |
One concern. Within the Statistics API, there are several attributes with somewhat similar names:
|
Assuming that there is no concern about confusion with other terms similar to "trackId", here are the changes that result from using "trackId" instead of "receiverId" Section 8.4: To determine whether an RTP stream is configured to be processed by an existing RTCRtpReceiver object, the RTCRtpListener attempts to match the values of an incoming RTP packet's Payload Type and SSRC fields as well as the value of the trackId (if present in the mid RTP extension) against the RTCRtpReceiver.RTCRtpParameters.RTCRtpCodecParameters.payLoadType, RTCRtpReceiver.RTCRtpParameters.RTCRtpEncodingParameters.ssrc, and RTCRtpReceiver.RTCRtpParameters.trackId attributes of configured RTCRtpReceiver objects. Section 9.1: partial dictionary RTCRtpUnhandled { Section 9.5 partial dictionary RTCRtpParameters { Section 9.5.1 trackId of type DOMString, defaulting to "" |
Note that the concept of a track ID is already defined in the W3C Media Source Extensions document: |
FYI - It really does need to be an "mid" not a "trackId". If you are sending a simulcast of SST-MS to an SFU, you'll need to identify each encoding "mid" so you can distinguish on SFU which SSRC encodings for MS layers belong to which encoded stream. |
In particular, when sending simulcast, the value of the mid is typically different for each outgoing simulcast stream, while being the same for each incoming simulcast stream. This implies that the SFU will rewrite the mid RTP header extension. |
Let's step back and remember what we're trying to accomplish here. We want
The JS gets to choose X, but we're trying to decide what Y and Z are. I'm
When the JS sets X, it must do so in RtpParameters. So what do we call For simulcast, I think in the normal case, you'll have multiple encodings So, two questions:
Currently, I feel like muxId > senderId, receiverId > mid. On Mon, Aug 4, 2014 at 12:10 PM, aboba notifications@github.com wrote:
|
I agree with most of the above. Only point which I may disagree with is whether an RTCRtpSender sending simulcast streams will always have the same value for the "mid" RTP extension for each outgoing simulcast stream. IMHO, the "mid" RTP extension could be different for each outgoing simulcast stream (though it would be the same for each incoming simulcast stream). For this reason I don't like the "senderId" term (since it is not necessarily the same for simulcast streams sent by an RTCRtpSender). Could live with "muxId". Question: Should "muxId" be removed from RTCRtpParameters and instead be in RTCRtpEncodingParameters? If the "muxId" can be different with each outoing simulcast stream, this makes sense. |
Proposed resolution is to change "receiverId" to "muxId". Section 8.4: To determine whether an RTP stream is configured to be processed by an existing RTCRtpReceiver object, the RTCRtpListener attempts to match the values of an incoming RTP packet's Payload Type and SSRC fields as well as the value of the muxId (if present in the MID RTP extension) against the RTCRtpReceiver.RTCRtpParameters.RTCRtpCodecParameters.payLoadType, RTCRtpReceiver.RTCRtpParameters.RTCRtpEncodingParameters.ssrc, and RTCRtpReceiver.RTCRtpParameters.muxId attributes of configured RTCRtpReceiver objects. Section 9.1: partial dictionary RTCRtpUnhandled { Section 9.5 partial dictionary RTCRtpParameters { Section 9.5.1 muxId of type DOMString, defaulting to "" |
w3c#93 Clarified onerror usage in sender and receiver objects, as noted in: w3c#95 Clarified SST-MS capability issue noted in: w3c#108 Clarification of send() and receive() usage as noted in: w3c#119 Changed ICE state diagram as noted in: w3c#122 Removed getParameters methods and changed send() method as noted in: w3c#136 Changed definition of framerateScale and resolutionScale as noted in: w3c#137 Substituted "muxId" for the "receiverId" as noted in: w3c#138 w3c#140 Clarified the setting of track.kind as described in: w3c#141 Added SSRC conflict event to the RTCRtpSender, as described in: w3c#143 Addressed the "end of candidates" issues noted in: w3c#142 w3c#144
Within the IETF 90 MMUSIC WG session, Christer Holmberg discussed the future of the "receiver-id" within the BUNDLE draft:
http://www.ietf.org/proceedings/90/slides/slides-90-mmusic-0.pdf
The recommendation (which appeared to have consensus) was to "Use existing SDP mid attribute value as receiver-id" within SDP, as well as to enable the mid to be sent within an RTP extension.
My understanding (please correct me if this is wrong) is that within the context of "Unified Plan" the mid can function as a "trackID", enabling SVC layers (regardless of whether SST-SS or SST-MS is being used) to be steered to an RTCRtpReceiver object. As a result, mid essentially takes the place of the "receiverId".
If that is true, then it would appear to me that references to "receiverId" should be replaced by "mid" in the following places in the document:
Section 8.4
Section 9.1
Section 9.5
Also, the reference in Section A.2 to [APPID] should be replaced by a reference in Section A.1 to an appropriate mid RTP extension draft.
The text was updated successfully, but these errors were encountered: