- 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