Re: Issue 81: Separating audio and video capabilities

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