| 'use strict' |
| |
| // Test is based on the following editor draft: |
| // https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html |
| |
| // This file depends on dictionary-helper.js which should |
| // be loaded from the main HTML file. |
| |
| /* |
| 5.2. RTCRtpSender Interface |
| dictionary RTCRtpCapabilities { |
| sequence<RTCRtpCodecCapability> codecs; |
| sequence<RTCRtpHeaderExtensionCapability> headerExtensions; |
| }; |
| |
| dictionary RTCRtpCodecCapability { |
| DOMString mimeType; |
| unsigned long clockRate; |
| unsigned short channels; |
| DOMString sdpFmtpLine; |
| }; |
| |
| dictionary RTCRtpHeaderExtensionCapability { |
| DOMString uri; |
| }; |
| */ |
| |
| function validateRtpCapabilities(capabilities) { |
| assert_array_field(capabilities, 'codecs'); |
| for(const codec of capabilities.codecs) { |
| validateCodecCapability(codec); |
| } |
| |
| assert_greater_than(capabilities.codecs.length, 0, |
| 'Expect at least one codec capability available'); |
| |
| assert_array_field(capabilities, 'headerExtensions'); |
| for(const headerExt of capabilities.headerExtensions) { |
| validateHeaderExtensionCapability(headerExt); |
| } |
| } |
| |
| function validateCodecCapability(codec) { |
| assert_optional_string_field(codec, 'mimeType'); |
| assert_optional_unsigned_int_field(codec, 'clockRate'); |
| assert_optional_unsigned_int_field(codec, 'channels'); |
| assert_optional_string_field(codec, 'sdpFmtpLine'); |
| } |
| |
| function validateHeaderExtensionCapability(headerExt) { |
| assert_optional_string_field(headerExt, 'uri'); |
| } |