Index: chrome/test/data/webrtc/peerconnection.js |
diff --git a/chrome/test/data/webrtc/peerconnection.js b/chrome/test/data/webrtc/peerconnection.js |
index 639e0f41a8ff34624bc5be8ea6fed1aeb640b757..ff5980c1a43741ab78ad61cc9afd08c9f2ce3f40 100644 |
--- a/chrome/test/data/webrtc/peerconnection.js |
+++ b/chrome/test/data/webrtc/peerconnection.js |
@@ -77,8 +77,12 @@ function preparePeerConnectionWithCertificate(certificate) { |
* the default video codec, e.g. the first one in the list on the 'm=video' |
* SDP offer line. |videoCodec| is the case-sensitive codec name, e.g. |
* 'VP8' or 'H264'. |
+ * @param {boolean} enableOpusDtx If true, enable Opus Dtx, e.g. append |
+ * 'usedtx=1' to the appropriate 'a=fmtp' line. |
*/ |
-function createLocalOffer(constraints, videoCodec = null) { |
+function createLocalOffer(constraints, |
+ videoCodec = null, |
+ enableOpusDtx = false) { |
peerConnection_().createOffer( |
function(localOffer) { |
success('createOffer'); |
@@ -86,6 +90,8 @@ function createLocalOffer(constraints, videoCodec = null) { |
setLocalDescription(peerConnection, localOffer); |
if (videoCodec !== null) |
localOffer.sdp = setSdpDefaultVideoCodec(localOffer.sdp, videoCodec); |
+ if (enableOpusDtx) |
+ localOffer.sdp = setOpusDtxEnabled(localOffer.sdp); |
returnToTest('ok-' + JSON.stringify(localOffer)); |
}, |
@@ -101,8 +107,12 @@ function createLocalOffer(constraints, videoCodec = null) { |
* @param {!string} sessionDescJson A JSON-encoded session description of type |
* 'offer'. |
* @param {!Object} constraints Any createAnswer constraints. |
+ * @param {boolean} enableOpusDtx If true, enable Opus Dtx, e.g. append |
+ * 'usedtx=1' to the appropriate 'a=fmtp' line. |
*/ |
-function receiveOfferFromPeer(sessionDescJson, constraints) { |
+function receiveOfferFromPeer(sessionDescJson, |
+ constraints, |
+ enableOpusDtx = false) { |
offer = parseJson_(sessionDescJson); |
if (!offer.type) |
failTest('Got invalid session description from peer: ' + sessionDescJson); |
@@ -119,6 +129,8 @@ function receiveOfferFromPeer(sessionDescJson, constraints) { |
function(answer) { |
success('createAnswer'); |
setLocalDescription(peerConnection, answer); |
+ if (enableOpusDtx) |
+ answer.sdp = setOpusDtxEnabled(answer.sdp); |
returnToTest('ok-' + JSON.stringify(answer)); |
}, |
function(error) { failure('createAnswer', error); }, |
@@ -154,6 +166,22 @@ function verifyDefaultVideoCodec(sessionDescJson, expectedVideoCodec) { |
} |
/** |
+ * Verifies that Opus Dtx is enabled, e.g. 'usedtx=1' can be found in the |
+ * appropriate 'a=fmtp' line. If this is not the case, |failure| occurs. |
+ * |
+ * @param {!string} sessionDescJson A JSON-encoded session description. |
+ */ |
+function verifyOpusDtxEnabled(sessionDescJson) { |
+ var sessionDesc = parseJson_(sessionDescJson); |
+ if (!sessionDesc.type) { |
+ failure('verifyOpusDtxEnabled', |
+ 'Invalid session description: ' + sessionDescJson); |
+ } |
+ checkOpusDtxEnabled(sessionDesc.sdp); |
+ returnToTest('ok-verified'); |
+} |
+ |
+/** |
* Asks this page to accept an answer generated by the peer in response to a |
* previous offer by this page |
* |