Re: RTCRtpRtxParameters lacks "apt"

Update:  I must have been looking at an old version of the spec.  The
latest version of the spec now *does* specify the payload type in the
RtpEncodingParameters, not the codec name.  I think we did that in
order to allow two payload types with the same name.  But I believe
those payload types must reference one of the payload types in the
codec list.  You can just put an arbitrary payload type in there.



On Wed, Oct 15, 2014 at 2:35 PM, Peter Thatcher <pthatcher@google.com> wrote:
> The codecPayloadType is not specified in the RtpRtxParameters.  The
> RtpRtxParameters are per-encoding, while the payload types are not.
> Payload types are specified in RtpParameters.  Only the codec name is
> referenced in the RtpEncodingParameters.   The RTX payload type should
> be specified in the RtpCodecParameters, not in the RtpRtxParameters.
>
> The spec currently says for RtpCodecParameters: "The codecs to send or
> receive (could include RTX and CN as well)."  So, if you want an RTX
> payload type, put it in there.  While it's not explicitly called out,
> I assume the "formats" dictionary could have an APT=OTHER_PAYLOAD_TYPE
> key/value pair.
>
> On Wed, Oct 15, 2014 at 4:47 AM, Iñaki Baz Castillo <ibc@aliax.net> wrote:
>> Please, let me refactor my text as it was wrong. Instead of audio and
>> video with same SSRC (which is 100% wrong) let me talk about a single
>> stream (let's say video) with two codecs:
>>
>>
>>
>> So the peer may announce this:
>>
>> - video h264
>>   - ssrc = 111111
>>   - codecPayloadType = 111
>>   - rtx.ssrc = 111112
>>
>> - video vp8
>>   - ssrc = 111111
>>   - codecPayloadType = 222
>>   - rtx.ssrc = 111112
>>
>> Now we receive a RTP packet with SSRC=111112. We don't know whether it
>> is a rtx for h264 or vp8. And we MUST NOT check its payload-type since
>> it is supposed to mean:
>>
>>        <number>: indicates the dynamic payload type number assigned
>>         to the retransmission payload format in an rtpmap attribute.
>>
>> This is, the payload in the rtx packet will never be 111 or 222.
>>
>>
>> So finally the info we need to accomplish this RTX stuff would be
>> something like:
>>
>> - video h264
>>   - ssrc = 111111
>>   - codecPayloadType = 111
>>   - rtx.ssrc = 111112
>>   - rtx.codecPayloadType = 991
>>
>> - video vp8
>>   - ssrc = 111111
>>   - codecPayloadType = 222
>>   - rtx.ssrc = 111112
>>   - rtx.codecPayloadType = 992
>>
>>
>> Now if a RTP packet with SSRC=111112 and payload-type=992 we know that
>> it is a retransmission of a vp8 packet.
>>
>>
>> At the end, we need to extend the RTCRtpRtxParameters dictionary:
>>
>> ------------------------
>> dictionary RTCRtpRtxParameters {
>>     unsigned long    ssrc;
>>     payloadtype       codecPayloadType;
>> };
>> ------------------------
>>
>>
>>
>> --
>> Iñaki Baz Castillo
>> <ibc@aliax.net>
>>

Received on Wednesday, 15 October 2014 22:53:12 UTC