RE: Issue 80: filterParameters

Robin Raymond said: 

What does it do?

[BA] May I ask another (perhaps related question)? What does it do that createParameters doesn't or can't?

Looking at Examples 8 and 9 from the Editor's draft, it would appear to me that the RTCRtpCapabilities argument to createParameters refers to remoteCapabilities. 

If one can assume that createParameters also has access to the local capabilities without it having to be passed as an argument, then it 
would appear to me that I can rewrite Examples 8 and 9 from the Editor's draft without having to call filterParameters at all. 

Am I missing something?

EXAMPLE 8

// Assume we already have a way to signal, a transport 
// (RTCDtlsTransport), and audio and video tracks. This is an example 
// of  how to offer them  and get back an answer with audio and 
// video tracks, and begin sending and receiving them.
function initiate(signaller, transport, audioTrack, videoTrack) {
  var audioSender = new RTCRtpSender(audioTrack, transport);
  var videoSender = new RTCRtpSender(videoTrack, transport);
  var audioReceiver = new RTCRtpReceiver(transport);
  var videoReceiver = new RTCRtpReceiver(transport);

  signaller.offerCaps({
   // The initiator offers its receiver and sender capabilities. 
   "rtpRecvCaps" : RTCRtpReceiver.getCapabilities(),
   "rtpSendCaps" : RTCRtpSender.getCapabilities() 
  }, function (answer) {
// The responder answers with its sender and receiver capabilities. 
// The initiator then creates its audio and video send and receive
// parameters. 
   var audioSendParams = RTCRtpSender.createParameters(audioTrack, 
      answer.rtpRecvCaps);
   var videoSendParams = RTCRtpSender.createParameters(videoTrack,
      answer.rtpRecvCaps); 
   var audioRecvParams = RTCRtpReceiver.createParameters(
      "audio", answer.rtpSendCaps);
   var videoRecvParams = RTCRtpReceiver.createParameters(
      "video", answer.rtpSendCaps);
      
    audioSender.send(audioSendParams);
    videoSender.send(videoSendParams);
    audioReceiver.receive(audioRecvParams);
    videoReceiver.receive(videoRecvParams);

    // Now we can render/play 
    // audioReceiver.track and videoReceiver.track.
  });
}
    
EXAMPLE 9

// Assume we already have a way to signal, a transport 
// (RTCDtlsTransport), and audio and video tracks. This is an example 
// of how to answer an offer with audio and video tracks, and begin 
// sending and receiving them.
function accept(
  signaller, remote, transport, audioTrack, videoTrack) {
  var audioSender = new RTCRtpSender(audioTrack, transport);
  var videoSender = new RTCRtpSender(videoTrack, transport);
  var audioReceiver = new RTCRtpReceiver(transport);
  var videoReceiver = new RTCRtpReceiver(transport);

// The responder answers with its sender and receiver capabilities.
  signaller.answerCaps({
   "rtpRecvCaps" : RTCRtpReceiver.getCapabilities(),
   "rtpSendCaps" : RTCRtpSender.getCapabilities()
  });

// The responder creates its audio and video send and receive
// parameters.
   var audioSendParams = RTCRtpSender.createParameters(audioTrack,
      remote.rtpRecvCaps);
   var videoSendParams = RTCRtpSender.createParameters(videoTrack,
      remote.rtpRecvCaps);
   var audioRecvParams = RTCRtpReceiver.createParameters(
      "audio", remote.rtpSendCaps);
   var videoRecvParams = RTCRtpReceiver.createParameters(
      "video", remote.rtpSendCaps);

  audioSender.send(audioSendParams);
  videoSender.send(videoSendParams)
  audioReceiver.receive(audioRecvParams);
  videoReceiver.receive(videoRecvParams);

  // Now we can render/play 
  // audioReceiver.track and videoReceiver.track.
}

Received on Friday, 9 May 2014 04:39:45 UTC