Proposal for controlling RTP header extensions for RtpSender and RtpReceiver

An area of the current API which needs a little improvement is RTP
header extensions.  Before we changed to RtpSender/RtpReceiver, it
only allowed for setting the key/value pairs for header extensions,
but it didn't specify what the keys or values should be, nor did it
allow an easy way for good defaults to be set, or for even knowing
what header extensions were supported by the browser.
Now that we have RtpSender/RtpReceiver, there is no way to control it
at all.  But we can fix that, I think, very easily.  I propose we do
so by adding fields to RTCRtpCapabilities and RTCRtpParameters like
so:


dictionary RTCRtpCapabilities {
 // ... Codecs and stuff.
 sequence<DOMString> headerExtensions; // Just the URIs
}


dictionary RTCRtpParameters {
 // ... Codecs and stuff.
 sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
}


dictionary RTCRtpHeaderExtensionParameters {
 DOMString uri;
 unsigned short id;  // The value that goes in the packet.
 bool encrypt;  // If true, encrypt the value in the header.
}


I haven't bothered to write example code.  Is it clear enough or does
anyone need an example?

Received on Wednesday, 29 January 2014 01:40:33 UTC