Re: Encoding parameters for RTX/FEC/RED (Issue 157)

Do we still have RTCRtpRtxParameters within RTCRtpEncodingParameters? 

partial dictionary RTCRtpEncodingParameters {
  RTCRtpRtxParameters rtx;
  RTCRtpFecParameters fec;
  // ...
}

Also, how do specify the rtx-time for RTX?  Does it look like this? 

dictionary RTCRtpRtxParameters {
  // Specify the SSRC to be used for the RTX stream
  unsigned long ssrc;
  // Specify the PT to be used for RTX
  payloadtype   payloadType;
  // Specify the rtx-time (see RFC 4588 Section 8.1)
  unsigned long lifetime;
}


Peter Thatcher said: 

"There has been a lot of confusion of how to enable RTX, FEC, and RED.
Previously we were a little vague about it, relying on the codecs list to
contain them like SDP does.  But several people think that's unclear, and I
agree.  So, here's a proposal that makes the RTX, FEC, and RED payload
types explicit without having RTX, FED, and RED listed as codecs, and
without using codec parameters like "APT":

dictionary RTCRtpCodecParameters {
   DOMString   name;
   payloadtype payloadType;
   payloadtype rtxPayloadType;
   // ...
};

dictionary RTCRtpFecParameters {
    payloadtype         payloadType;
    payloadtype         redPayloadType;
    // If RED is used, RTX refers to RED, not FEC
    payloadtype         rtxPayloadType;
    // ...
};

In case you're wondering why there are so many rtxPayloadTypes, it's
because RTX requires a payload type for every other payload type that could
be received.

I hope this simplifies and clarifies matters."

Received on Wednesday, 5 November 2014 22:37:29 UTC