Re: Mapping RTX in SDP to ORTC RtpParameters

Am 04.03.2016 um 00:14 schrieb IƱaki Baz Castillo:
> Hi, this is what a browser wants to send (some ines omitted):
>
> m=video 55154 UDP/TLS/RTP/SAVPF 100 101 96
> a=rtpmap:100 VP8/90000
> a=rtpmap:101 VP9/90000
> a=rtpmap:96 rtx/90000
> a=fmtp:96 apt=100
> a=ssrc-group:FID 1762798695 3360043549
> a=ssrc:1762798695 cname:S1TpdiJRYh4zmAJw
> a=ssrc:3360043549 cname:S1TpdiJRYh4zmAJw
>
>
> I want to generate the RTCRtpParameters for the corresponding
> RTCRtpSender in ORTC.
>
> As you can see, there are three codecs (VP8:100, VP9:101, rtx:96), all
> of them with clockRate 90000.
>
> According to "a=fmtp:96 apt=100", rtx is just used for VP8:100 codec.
> And according to the a=ssrc and a=ssrc-group lines, there are two SSRC
> (1762798695 and 3360043549) for sending VP8, VP9 and rtx.
>
>
> Now the questions:
>
>
>
> 1) If the browser also wishes to send rtx for VP9:101, should it add
> another rtx codec as follows (and of course a new SSRC)?:
>
>    a=rtpmap:97 rtx/90000
>    a=fmtp:97 apt=101
>    a=ssrc-group:FID 1762798695 3360043549 4444444444
>    a=ssrc:4444444444 cname:S1TpdiJRYh4zmAJw

the following change landed ~2 weeks ago in Chrome (omitting 
non-relevant lines):
a=rtpmap:100 VP8/90000

a=rtpmap:101 VP9/90000

a=rtpmap:116 red/90000

a=rtpmap:117 ulpfec/90000

a=rtpmap:96 rtx/90000

a=fmtp:96 apt=100

a=rtpmap:97 rtx/90000

a=fmtp:97 apt=101

a=rtpmap:98 rtx/90000

a=fmtp:98 apt=116

a=ssrc-group:FID 3394089718 2597890963

a=ssrc:3394089718 cname:KW7QnMvNSxEzPmpQ

a=ssrc:2597890963 cname:KW7QnMvNSxEzPmpQ


no additional ssrc is added. And I do not think it is necessary...

> 2) If 1) is correct, how to map it in ORTC? According to the spec:
>
>    9.12.1 Dictionary RTCRtpRtxParameters Members
>
>    payloadType
>      The payload type to use for retransmission. If unset,
>      RTCRtpCodecParameters.payloadType for the "rtx" codec is used.
>
>    ssrc
>      The SSRC to use for retransmission, as specified in [RFC4588].
>
> But how to specify the relationship between rtx:96 and VP8:100, and
> rtx:97 and VP9:101? Should it be done by setting 100 and 101 in the
> `codecPayloadType` of each RtpEncondingParameters object?

the relationship is defined by the parameters in RTCRtpCodecParameters 
which would be {apt: 100} for the first rtx codec.

> 3) How to know which SSRC will be used for VP8:100+VP9:101, rtx:96,
> and rtx:97 streams? The line ssrc-group just states that those tree
> SSRC values have a relationship, but RFC4588 does not define how each
> SSRC in a group is associated to the sending codecs.

the ssrc will be the same, the codec is determined by the PT. You need 
both to demultiplex. Makes sense?

Received on Friday, 4 March 2016 05:46:27 UTC