Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: chrome/test/data/webrtc/munge_sdp.js

Issue 2195293002: Revert of Adds a WebRTC browser_test with opus dtx enabled. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * Copyright 2016 The Chromium Authors. All rights reserved. 2 * Copyright 2016 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 /** 7 /**
8 * See |setSdpDefaultCodec|. 8 * See |setSdpDefaultCodec|.
9 */ 9 */
10 function setSdpDefaultAudioCodec(sdp, codec) { 10 function setSdpDefaultAudioCodec(sdp, codec) {
11 return setSdpDefaultCodec(sdp, 'audio', codec); 11 return setSdpDefaultCodec(sdp, 'audio', codec);
12 } 12 }
13 13
14 /** 14 /**
15 * See |setSdpDefaultCodec|. 15 * See |setSdpDefaultCodec|.
16 */ 16 */
17 function setSdpDefaultVideoCodec(sdp, codec) { 17 function setSdpDefaultVideoCodec(sdp, codec) {
18 return setSdpDefaultCodec(sdp, 'video', codec); 18 return setSdpDefaultCodec(sdp, 'video', codec);
19 } 19 }
20 20
21 /** 21 /**
22 * Returns a modified version of |sdp| where the opus DTX flag has been
23 * enabled.
24 */
25 function setOpusDtxEnabled(sdp) {
26 var sdpLines = splitSdpLines(sdp);
27
28 // Get default audio codec
29 var defaultCodec = getSdpDefaultAudioCodec(sdp);
30 if (defaultCodec !== 'opus') {
31 failure('setOpusDtxEnabled',
32 'Default audio codec is not set to \'opus\'.');
33 }
34
35 // Find codec ID for Opus, e.g. 111 if 'a=rtpmap:111 opus/48000/2'.
36 var codecId = findRtpmapId(sdpLines, 'opus');
37 if (codecId === null) {
38 failure('setOpusDtxEnabled', 'Unknown ID for |codec| = \'opus\'.');
39 }
40
41 // Find 'a=fmtp:111' line, where 111 is the codecId
42 var fmtLineNo = findFmtpLine(sdpLines, codecId);
43 if (fmtLineNo === null) {
44 // Add the line to the SDP.
45 newLine = 'a=fmtp:' + codecId + ' usedtx=1'
46 rtpMapLine = findRtpmapLine(sdpLines, codecId);
47 sdpLines.splice(rtpMapLine + 1, 0, newLine);
48 } else {
49 // Modify the line to enable Opus Dtx.
50 sdpLines[fmtLineNo] += ';usedtx=1'
51 }
52 return mergeSdpLines(sdpLines);
53 }
54
55 /**
56 * Returns a modified version of |sdp| where the |codec| has been promoted to be 22 * Returns a modified version of |sdp| where the |codec| has been promoted to be
57 * the default codec, i.e. the codec whose ID is first in the list of codecs on 23 * the default codec, i.e. the codec whose ID is first in the list of codecs on
58 * the 'm=|type|' line, where |type| is 'audio' or 'video'. 24 * the 'm=|type|' line, where |type| is 'audio' or 'video'.
59 * @private 25 * @private
60 */ 26 */
61 function setSdpDefaultCodec(sdp, type, codec) { 27 function setSdpDefaultCodec(sdp, type, codec) {
62 var sdpLines = splitSdpLines(sdp); 28 var sdpLines = splitSdpLines(sdp);
63 29
64 // Find codec ID, e.g. 100 for 'VP8' if 'a=rtpmap:100 VP8/9000'. 30 // Find codec ID, e.g. 100 for 'VP8' if 'a=rtpmap:100 VP8/9000'.
65 var codecId = findRtpmapId(sdpLines, codec); 31 var codecId = findRtpmapId(sdpLines, codec);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 if (!sdpLines[i].match(pattern)) 143 if (!sdpLines[i].match(pattern))
178 failure('findRtpmapLine', 'Unexpected "a=rtpmap:" pattern.'); 144 failure('findRtpmapLine', 'Unexpected "a=rtpmap:" pattern.');
179 // Return line index. 145 // Return line index.
180 return i; 146 return i;
181 } 147 }
182 } 148 }
183 return null; 149 return null;
184 } 150 }
185 151
186 /** 152 /**
187 * Finds the fmtp line in |sdpLines| for the given |codecId|, and returns its
188 * line number. The line starts with 'a=fmtp:<codecId>'.
189 * @private
190 */
191 function findFmtpLine(sdpLines, codecId) {
192 return findLine(sdpLines, 'a=fmtp:' + codecId);
193
194 }
195
196 /**
197 * Returns a modified version of |mLine| that has |codecId| first in the list of 153 * Returns a modified version of |mLine| that has |codecId| first in the list of
198 * codec IDs. For example, setMLineDefaultCodec( 154 * codec IDs. For example, setMLineDefaultCodec(
199 * 'm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96', 107) 155 * 'm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96', 107)
200 * Returns: 156 * Returns:
201 * 'm=video 9 UDP/TLS/RTP/SAVPF 107 100 101 116 117 96' 157 * 'm=video 9 UDP/TLS/RTP/SAVPF 107 100 101 116 117 96'
202 * @private 158 * @private
203 */ 159 */
204 function setMLineDefaultCodec(mLine, codecId) { 160 function setMLineDefaultCodec(mLine, codecId) {
205 var elements = mLine.split(' '); 161 var elements = mLine.split(' ');
206 162
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 } 200 }
245 201
246 /** @private */ 202 /** @private */
247 function findLine(lines, startsWith) { 203 function findLine(lines, startsWith) {
248 for (var i = 0; i < lines.length; i++) { 204 for (var i = 0; i < lines.length; i++) {
249 if (lines[i].startsWith(startsWith)) 205 if (lines[i].startsWith(startsWith))
250 return i; 206 return i;
251 } 207 }
252 return null; 208 return null;
253 } 209 }
OLDNEW
« no previous file with comments | « chrome/browser/media/webrtc_video_quality_browsertest.cc ('k') | chrome/test/data/webrtc/peerconnection.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698