- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Fri, 9 May 2014 20:54:19 +0000
- To: Justin Uberti <juberti@google.com>
- CC: Peter Thatcher <pthatcher@google.com>, Bernard Aboba <Bernard.Aboba@microsoft.com>, "public-ortc@w3.org" <public-ortc@w3.org>
- Message-ID: <73A5CD02-CC4E-446D-83C0-1E372238D0F0@microsoft.com>
Yes, that was what prompted this. On May 9, 2014, at 11:44 AM, "Justin Uberti" <juberti@google.com<mailto:juberti@google.com>> wrote: RTP header extensions will often be media-specific (e.g. sender audio level). Same with RTCP feedback mechanisms. On Fri, May 9, 2014 at 10:57 AM, Peter Thatcher <pthatcher@google.com<mailto:pthatcher@google.com>> wrote: I think it's nice to be able to get the capabilities without creating a sender or receiver object first. I don't really see the advantage of having separate audio/video capabilities. What things will be audio-only or video-only? The codecs? The codecs already indicate whether they are audio or video. On Thu, May 8, 2014 at 10:19 PM, Bernard Aboba <Bernard.Aboba@microsoft.com<mailto:Bernard.Aboba@microsoft.com>> wrote: Currently, getCapabilities is defined as follows: partial interface RTCRtpSender { static RTCRtpCapabilities getCapabilities (); }; partial interface RTCRtpReceiver { static RTCRtpCapabilities getCapabilities (); }; The implication is that getCapabilities() returns both audio and video capabilities in a single RTCRtpCapabilities object. However, if getCapabilities wasn't defined as static, then it could return only capabilities of the appropriate kind: partial interface RTCRtpReceiver { RTCRtpCapabilities getCapabilities (DOMString kind); } partial interface RTCRtpSender { RTCRtpCapabilities getCapabilities (); }; If it were done this way, with respect to the RTCRtpSender object, it would be possible to retrieve audio and video send and receive capabilities separately: var audioSender = new RTCRtpSender(audioTrack, transport); var videoSender = new RTCRtpSender(videoTrack, transport); rtpAudioSendCaps = audioSender.getCapabilities(); rtpVideoSendCaps = videoSender.getCapabilities(); With the RTCRtpReceiver object, it would look like this: var audioReceiver = new RTCRtpReceiver(transport); var videoReceiver = new RTCRtpReceiver(transport); rtpAudioRecvCaps = audioReceiver.getCapabilities("audio"); rtpVideoRecvCaps = videoReceiver.getCapabilities("video"); One advantage of separating audio and video capabilities is that subsequent calls to createParameters could be more specific: var audioRecvParams = RTCRtpReceiver.createParameters( "audio", remote.rtpAudioSendCaps); var videoRecvParams = RTCRtpReceiver.createParameters( "video", remote.rtpVideoSendCaps);
Received on Friday, 9 May 2014 20:54:49 UTC