| Index: chrome/test/data/webrtc/munge_sdp.js
|
| diff --git a/chrome/test/data/webrtc/munge_sdp.js b/chrome/test/data/webrtc/munge_sdp.js
|
| index 9a8a37e6d78a754b5c195dc119360c131b5711e1..1c61d0ea72f8f4b0144e41da80bcbd97055c9612 100644
|
| --- a/chrome/test/data/webrtc/munge_sdp.js
|
| +++ b/chrome/test/data/webrtc/munge_sdp.js
|
| @@ -19,6 +19,68 @@ function setSdpDefaultVideoCodec(sdp, codec) {
|
| }
|
|
|
| /**
|
| + * Returns a modified version of |sdp| where the opus DTX flag has been
|
| + * enabled.
|
| + */
|
| +function setOpusDtxEnabled(sdp) {
|
| + var sdpLines = splitSdpLines(sdp);
|
| +
|
| + // Get default audio codec
|
| + var defaultCodec = getSdpDefaultAudioCodec(sdp);
|
| + if (defaultCodec !== 'opus') {
|
| + failure('setOpusDtxEnabled',
|
| + 'Default audio codec is not set to \'opus\'.');
|
| + }
|
| +
|
| + // Find codec ID for Opus, e.g. 111 if 'a=rtpmap:111 opus/48000/2'.
|
| + var codecId = findRtpmapId(sdpLines, 'opus');
|
| + if (codecId === null) {
|
| + failure('setOpusDtxEnabled', 'Unknown ID for |codec| = \'opus\'.');
|
| + }
|
| +
|
| + // Find 'a=fmtp:111' line, where 111 is the codecId
|
| + var fmtLineNo = findLine(sdpLines, 'a=fmtp:' + codecId);
|
| + if (fmtLineNo === null) {
|
| + failure('setOpusDtxEnabled',
|
| + '\'a=fmtp:' + codecId + '\' line missing from |sdp|.');
|
| + }
|
| +
|
| + // Modify the line to enable Opus Dtx.
|
| + sdpLines[fmtLineNo] += ';usedtx=1'
|
| + return mergeSdpLines(sdpLines);
|
| +}
|
| +
|
| +/**
|
| + * Check if the opus Dtx flag has been set in |sdp|.
|
| + */
|
| +function checkOpusDtxEnabled(sdp) {
|
| + var defaultAudioCodec = getSdpDefaultAudioCodec(sdp);
|
| + if (defaultAudioCodec !== 'opus') {
|
| + failure('verifyOpusDtxEnabled',
|
| + 'Default audio codec is not set to opus.');
|
| + }
|
| + var sdpLines = splitSdpLines(sdp);
|
| + // Find codec ID for Opus, e.g. 111 if 'a=rtpmap:111 opus/48000/2'.
|
| + var codecId = findRtpmapId(sdpLines, 'opus');
|
| + if (codecId === null) {
|
| + failure('verifyOpusDtxEnabled', 'Unknown ID for |codec| = \'opus\'.');
|
| + }
|
| +
|
| + // Find 'a=fmtp:111' line, where 111 is the codecId
|
| + var fmtLineNo = findLine(sdpLines, 'a=fmtp:' + codecId);
|
| + if (fmtLineNo === null) {
|
| + failure('verifyOpusDtxEnabled',
|
| + '\'a=fmtp:' + codecId + '\' line missing from |sdp|.');
|
| + }
|
| +
|
| + // Check that 'usedtx=1' appears on the line.
|
| + if (sdpLines[fmtLineNo].indexOf('usedtx=1') === -1) {
|
| + failure('verifyOpusDtxEnabled',
|
| + '\'usedtx=1\' is missing from \'a=fmtp:' + codecId + '\' line.');
|
| + }
|
| +}
|
| +
|
| +/**
|
| * Returns a modified version of |sdp| where the |codec| has been promoted to be
|
| * the default codec, i.e. the codec whose ID is first in the list of codecs on
|
| * the 'm=|type|' line, where |type| is 'audio' or 'video'.
|
|
|