RTX support (RFC 4588)

Hi all,

I am currently implementing the RTX RFC on my MCU, so I am a bit 
obsessed with this topic.. :)

I have been looking how ORTC implements it, and not really sure if 
current API would allow to implement it.

According to rfc588, it is possible to do to kind of

    Session-multiplexing: scheme by which the original stream and the
    associated retransmission stream are sent into two different RTP
    sessions.

    SSRC-multiplexing: scheme by which the original stream and the
    retransmission stream are sent in the same RTP session with different
    SSRC values.



I am not yet an expert on ORTC apis, so please correct me if I am wrong, 
but it seems that the only way to set/retrieve the ssrc of the stream is 
via the RTCRtpParameters. So I think that in order to support 
SSRC-multiplixing, it would be needed to change:

dictionaryRTCRtpParameters  {
     DOMString                                  muxId  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-muxId>  ="";
     sequence<|RTCRtpCodecParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtpCodecParameters>>            codecs  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-codecs>;
     sequence<|RTCRtpHeaderExtensionParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtpHeaderExtensionParameters>>  headerExtensions  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-headerExtensions>;
     sequence<|RTCRtpEncodingParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtpEncodingParameters>>         encodings  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-encodings>;
     |RTCRtcpParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtcpParameters>                          rtcp  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-rtcp>;
};

by

dictionaryRTCRtpParameters  {
     DOMString                                  muxId  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-muxId>  ="";
     sequence<|RTCRtpCodecParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtpCodecParameters>>            codecs  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-codecs>;
     sequence<|RTCRtpHeaderExtensionParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtpHeaderExtensionParameters>>  headerExtensions  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-headerExtensions>;
     sequence<|RTCRtpEncodingParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtpEncodingParameters>>         encodings  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-encodings>;
     ||  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtcpParameters>*|sequence<RTCRtcpParameters|  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#idl-def-RTCRtcpParameters>>rtcps  <http://ortc.org/wp-content/uploads/2014/10/ortc.html#widl-RTCRtpParameters-rtcp>;*
};


Regarding how to implement the Session-Multiplexing (if needed to), I 
think it would be more complex, as it would require to add some kind of 
RTCRtpSenderGroup and RTCRtpReceiverGroup objects that would make it 
possible to group several sender/receivers together.

Best regards
Sergio

Received on Monday, 20 October 2014 09:59:02 UTC