- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Tue, 2 Jan 2018 19:05:16 +0000
- To: T H Panton <thp@westhawk.co.uk>, "public-webrtc@w3.org" <public-webrtc@w3.org>
- CC: Martin Thomson <martin.thomson@gmail.com>, Dominique Hazael-Massieux <dom@w3.org>
Tim Panton said: "Given that we haven't implemented 1.0 anywhere yet" [BA] The Web Platform Test site (https://wpt.fyi/webrtc) provides an artificially pessimistic view of the implementation status of WebRTC 1.0. In fact, there has been great progress made on WebRTC 1.0 and object model implementations over the last few months. For example, here is an inventory of the methods/objects supported by various browsers (point your browser at http://internaut.com:8080/~baboba/cluecon-tutorial/cap-dumper/ to see for yourself): Chrome Canary 65.0.3309.0 Phase 1: Object/Method Inventory RTCPeerConnection supported addTrack supported getReceivers supported getSenders supported ontrack supported removeTrack supported RTCRtpReceiver supported RTCRtpSender supported Safari Version 11.0.2 (13604.4.7.1.3) Phase 1: Object/Method Inventory RTCPeerConnection supported addTrack supported addTransceiver supported getReceivers supported getSenders supported getTransceivers supported ontrack supported removeTrack supported RTCRtpTransceiver supported setDirection supported stop supported RTCIceTransport supported RTCRtpReceiver supported getParameters supported RTCRtpSender supported getParameters supported replaceTrack supported Firefox Nightly 59.0a1 Phase 1: Object/Method Inventory RTCPeerConnection supported addTrack supported addTransceiver supported getReceivers supported getSenders supported getTransceivers supported ontrack supported removeTrack supported RTCRtpTransceiver supported stop supported RTCRtpReceiver supported getContributingSources supported getSynchronizationSources supported getStats supported RTCRtpSender supported getParameters supported getStats supported replaceTrack supported setParameters supported Edge Fall Creator's Update Phase 1: Object/Method Inventory RTCPeerConnection supported RTCIceGatherer supported getLocalParameters supported getLocalCandidates supported createAssociatedGatherer supported onerror supported onlocalcandidate supported RTCIceTransport supported getRemoteCandidates supported start supported stop supported getRemoteParameters supported createAssociatedTransport supported addRemoteCandidate supported setRemoteCandidate supported oncandidatepairchange supported RTCDtlsTransport supported getLocalParameters supported getRemoteParameters supported getRemoteCertificates supported start supported stop supported onerror supported RTCSrtpSdesTransport supported RTCRtpReceiver supported getCapabilities supported setTransport supported receive supported getContributingSources supported stop supported RTCRtpSender supported getCapabilities supported Phase 2: Sender/Receiver Capabilities RTCRtpReceiver.getCapabilities(audio): { "codecs": [ { "name": "SILK", "kind": "audio", "clockRate": 16000, "preferredPayloadType": 104, "maxptime": 100, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "opus", "kind": "audio", "clockRate": 48000, "preferredPayloadType": 102, "maxptime": 60, "ptime": 20, "numChannels": 2, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "G722", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 9, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "PCMU", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 0, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "PCMA", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 8, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "SILK", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 103, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "RED", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 97, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "CN", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 13, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "CN", "kind": "audio", "clockRate": 16000, "preferredPayloadType": 118, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "telephone-event", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 101, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": { "events": "0-16" }, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false } ], "headerExtensions": [ { "kind": "audio", "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", "preferredId": 1, "preferredEncrypt": false }, { "kind": "audio", "uri": "http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2", "preferredId": 3, "preferredEncrypt": false } ], "fecMechanisms": [ "RED" ] } RTCRtpReceiver.getCapabilities(video): { "codecs": [ { "name": "X-H264UC", "kind": "video", "clockRate": 90000, "preferredPayloadType": 122, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:src,x-pli recv:src,x-pli" } ], "parameters": { "packetization-mode": "1", "mst-mode": "NI-TC" }, "options": {}, "maxTemporalLayers": 3, "maxSpatialLayers": 0, "svcMultiStreamSupport": true }, { "name": "H264", "kind": "video", "clockRate": 90000, "preferredPayloadType": 107, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "nack", "parameter": "" }, { "type": "nack", "parameter": "pli" }, { "type": "goog-remb", "parameter": "" } ], "parameters": { "profile-level-id": "42C02A", "packetization-mode": "1" }, "options": {}, "maxTemporalLayers": 3, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "VP8", "kind": "video", "clockRate": 90000, "preferredPayloadType": 100, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "nack", "parameter": "" }, { "type": "nack", "parameter": "pli" }, { "type": "goog-remb", "parameter": "" } ], "parameters": { "max-fr": "30", "max-fs": "3600" }, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "rtx", "kind": "video", "clockRate": 90000, "preferredPayloadType": 99, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": { "apt": "107" }, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "rtx", "kind": "video", "clockRate": 90000, "preferredPayloadType": 96, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": { "apt": "100" }, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "x-ulpfecuc", "kind": "video", "clockRate": 90000, "preferredPayloadType": 123, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false } ], "headerExtensions": [ { "kind": "video", "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", "preferredId": 1, "preferredEncrypt": false }, { "kind": "video", "uri": "http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2", "preferredId": 3, "preferredEncrypt": false } ], "fecMechanisms": [] } RTCRtpSender.getCapabilities(audio): { "codecs": [ { "name": "SILK", "kind": "audio", "clockRate": 16000, "preferredPayloadType": 104, "maxptime": 100, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "opus", "kind": "audio", "clockRate": 48000, "preferredPayloadType": 102, "maxptime": 60, "ptime": 20, "numChannels": 2, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "G722", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 9, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "PCMU", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 0, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "PCMA", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 8, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "SILK", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 103, "maxptime": 60, "ptime": 20, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:dsh recv:dsh" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "RED", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 97, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "CN", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 13, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "CN", "kind": "audio", "clockRate": 16000, "preferredPayloadType": 118, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "telephone-event", "kind": "audio", "clockRate": 8000, "preferredPayloadType": 101, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": { "events": "0-16" }, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false } ], "headerExtensions": [ { "kind": "audio", "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", "preferredId": 1, "preferredEncrypt": false }, { "kind": "audio", "uri": "http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2", "preferredId": 3, "preferredEncrypt": false } ], "fecMechanisms": [ "RED" ] } RTCRtpSender.getCapabilities(video): { "codecs": [ { "name": "X-H264UC", "kind": "video", "clockRate": 90000, "preferredPayloadType": 122, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "x-message", "parameter": "app send:src,x-pli recv:src,x-pli" } ], "parameters": { "packetization-mode": "1", "mst-mode": "NI-TC" }, "options": {}, "maxTemporalLayers": 3, "maxSpatialLayers": 0, "svcMultiStreamSupport": true }, { "name": "H264", "kind": "video", "clockRate": 90000, "preferredPayloadType": 107, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "nack", "parameter": "" }, { "type": "nack", "parameter": "pli" }, { "type": "goog-remb", "parameter": "" } ], "parameters": { "profile-level-id": "42C02A", "packetization-mode": "1" }, "options": {}, "maxTemporalLayers": 3, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "VP8", "kind": "video", "clockRate": 90000, "preferredPayloadType": 100, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [ { "type": "x-cinfo", "parameter": "" }, { "type": "x-bwe", "parameter": "" }, { "type": "nack", "parameter": "" }, { "type": "nack", "parameter": "pli" }, { "type": "goog-remb", "parameter": "" } ], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "rtx", "kind": "video", "clockRate": 90000, "preferredPayloadType": 99, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": { "apt": "107", "rtx-time": "3000" }, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "rtx", "kind": "video", "clockRate": 90000, "preferredPayloadType": 96, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": { "apt": "100", "rtx-time": "3000" }, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false }, { "name": "x-ulpfecuc", "kind": "video", "clockRate": 90000, "preferredPayloadType": 123, "maxptime": 0, "ptime": 0, "numChannels": 1, "rtcpFeedback": [], "parameters": {}, "options": {}, "maxTemporalLayers": 0, "maxSpatialLayers": 0, "svcMultiStreamSupport": false } ], "headerExtensions": [ { "kind": "video", "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time", "preferredId": 1, "preferredEncrypt": false }, { "kind": "video", "uri": "http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2", "preferredId": 3, "preferredEncrypt": false } ], "fecMechanisms": [] }
Received on Tuesday, 2 January 2018 19:05:54 UTC