-
Notifications
You must be signed in to change notification settings - Fork 116
Description
We're in the process of moving the header extensions API to webrtc-pc, see #3060, so I'm filing this here (webrtc-pc), but the header header extension extension API is currently described here.
We've introduced direction:
partial dictionary RTCRtpHeaderExtensionCapability {
required RTCRtpTransceiverDirection direction;
};
Which is required and very well defined in the context of get/setHeaderExtensionsToNegotiate(). But we never really spell out what direction means in the context of getCapabilities().
The only language we have is from webrtc-pc here (for sending/receiving), e.g:
The list of implemented header extensions for sending, given kind, is an implementation-defined list of RTCRtpHeaderExtensionCapability dictionaries representing the most optimistic view of the header extensions the user agent supports for sending media of the given kind (video or audio).
The dependency descriptor is a good example of a header extension that (I think) everyone supports but which is not negotiated by default, so getHeaderExtensionsToNegotiate() returns it with direction: "stopped". But what should getCapabilities() say?
- It should say
sendrecvbecause support is implemented for both sending and receiving and the most "optimistic view" would include both sending and receiving. - It should say
stoppedbecause it's not used by default, the fact that it is listed is proof in and of itself that DD is supported for feature detection purposes.
We should probably spell this out as part of the move. Also I found that Chrome doesn't list stopped header extensions at all when getCapabilities is called, which seems like a mistake. Actually that's a third option:
- Don't list things that are not enabled by default.