- From: Peter Thatcher <pthatcher@google.com>
- Date: Fri, 9 May 2014 14:09:31 -0700
- To: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Cc: Justin Uberti <juberti@google.com>, "public-ortc@w3.org" <public-ortc@w3.org>
- Message-ID: <CAJrXDUHRo8Y+krgOTuZPL_OkDAgwUSA+=c--1nW1gehgPn8WKg@mail.gmail.com>
I'd be happy with
.getCapabilities() => returns combined audio+video capabilities
.getCapabilities("audio") => returns audio capabilities
.getCapabilities("video") => returns video capabilities
On Fri, May 9, 2014 at 1:54 PM, Bernard Aboba
<Bernard.Aboba@microsoft.com>wrote:
> Yes, that was what prompted this.
>
> On May 9, 2014, at 11:44 AM, "Justin Uberti" <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>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> 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 21:10:39 UTC