Bug 1592140 - p2: disable HW H.264 support for certain tests. r=pehrsons, a=RyanVM
authorJohn Lin <jolin@mozilla.com>
Wed, 20 Nov 2019 04:25:32 +0000
changeset 571060 f2cdf0194fb1b7100561d4057b4a70576dc94ea9
parent 571059 df501ed38e3bd349996580b8688667ac4bcc2945
child 571061 4ec2c9a971e1a9a49b5f24a59343fba245470a91
push id12508
push userryanvm@gmail.com
push dateTue, 07 Jan 2020 21:04:53 +0000
treeherdermozilla-beta@f2cdf0194fb1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerspehrsons, RyanVM
bugs1592140
milestone73.0
Bug 1592140 - p2: disable HW H.264 support for certain tests. r=pehrsons, a=RyanVM Differential Revision: https://phabricator.services.mozilla.com/D53298
dom/media/tests/mochitest/head.js
dom/media/tests/mochitest/test_peerConnection_addSecondVideoStream.html
dom/media/tests/mochitest/test_peerConnection_addSecondVideoStreamNoBundle.html
dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_2d.html
dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_2d_noSSRC.html
dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_webgl.html
dom/media/tests/mochitest/test_peerConnection_disabledVideoPreNegotiation.html
dom/media/tests/mochitest/test_peerConnection_maxFsConstraint.html
dom/media/tests/mochitest/test_peerConnection_multiple_captureStream_canvas_2d.html
dom/media/tests/mochitest/test_peerConnection_recordReceiveTrack.html
dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrack.html
dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html
dom/media/tests/mochitest/test_peerConnection_removeVideoTrack.html
dom/media/tests/mochitest/test_peerConnection_renderAfterRenegotiation.html
dom/media/tests/mochitest/test_peerConnection_replaceVideoThenRenegotiate.html
dom/media/tests/mochitest/test_peerConnection_setParameters_scaleResolutionDownBy.html
dom/media/tests/mochitest/test_peerConnection_stats.html
dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html
dom/media/tests/mochitest/test_peerConnection_verifyVideoAfterRenegotiation.html
dom/media/tests/mochitest/test_peerConnection_videoRenegotiationInactiveAnswer.html
--- a/dom/media/tests/mochitest/head.js
+++ b/dom/media/tests/mochitest/head.js
@@ -421,19 +421,16 @@ function pushPrefs(...p) {
 function setupEnvironment() {
   if (!window.SimpleTest) {
     // Running under Steeplechase
     return;
   }
 
   var defaultMochitestPrefs = {
     set: [
-      // We can't use the Fake H.264 GMP encoder with a real decoder until
-      // bug 1509012 is done. So force using the Fake H.264 GMP decoder for now.
-      ["media.navigator.mediadatadecoder_h264_enabled", false],
       ["media.peerconnection.enabled", true],
       ["media.peerconnection.identity.enabled", true],
       ["media.peerconnection.identity.timeout", 120000],
       ["media.peerconnection.ice.stun_client_maximum_transmits", 14],
       ["media.peerconnection.ice.trickle_grace_period", 30000],
       ["media.peerconnection.rtpsourcesapi.enabled", true],
       ["media.navigator.permission.disabled", true],
       // If either fake audio or video is desired we enable fake streams.
@@ -450,16 +447,24 @@ function setupEnvironment() {
 
   if (isAndroid) {
     defaultMochitestPrefs.set.push(
       ["media.navigator.video.default_width", 320],
       ["media.navigator.video.default_height", 240],
       ["media.navigator.video.max_fr", 10],
       ["media.autoplay.default", Ci.nsIAutoplay.ALLOWED]
     );
+  } else {
+    // For platforms other than Android, the tests use Fake H.264 GMP encoder.
+    // We can't use that with a real decoder until bug 1509012 is done.
+    // So force using the Fake H.264 GMP decoder for now.
+    defaultMochitestPrefs.set.push([
+      "media.navigator.mediadatadecoder_h264_enabled",
+      false,
+    ]);
   }
 
   // Running as a Mochitest.
   SimpleTest.requestFlakyTimeout("WebRTC inherently depends on timeouts");
   window.finish = () => SimpleTest.finish();
   SpecialPowers.pushPrefEnv(defaultMochitestPrefs, setTestOptions);
 
   // We don't care about waiting for this to complete, we just want to ensure
--- a/dom/media/tests/mochitest/test_peerConnection_addSecondVideoStream.html
+++ b/dom/media/tests/mochitest/test_peerConnection_addSecondVideoStream.html
@@ -15,17 +15,18 @@
   runNetworkTest(async function (options) {
     // Use fake video here since the native fake device on linux doesn't
     // change color as needed by checkVideoPlaying() below.
     await pushPrefs(
       ['media.video_loopback_dev', ''],
       ['media.navigator.streams.fake', true]);
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     const test = new PeerConnectionTest(options);
     addRenegotiation(test.chain,
       [
         function PC_LOCAL_ADD_SECOND_STREAM(test) {
           test.setMediaConstraints([{video: true}, {video: true}],
                                    [{video: true}]);
--- a/dom/media/tests/mochitest/test_peerConnection_addSecondVideoStreamNoBundle.html
+++ b/dom/media/tests/mochitest/test_peerConnection_addSecondVideoStreamNoBundle.html
@@ -15,17 +15,18 @@
   runNetworkTest(async function (options = {}) {
     // Use fake video here since the native fake device on linux doesn't
     // change color as needed by checkVideoPlaying() below.
     await pushPrefs(
       ['media.video_loopback_dev', ''],
       ['media.navigator.streams.fake', true]);
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     options.bundle = false;
     const test = new PeerConnectionTest(options);
     addRenegotiation(test.chain,
       [
         function PC_LOCAL_ADD_SECOND_STREAM(test) {
           test.setMediaConstraints([{video: true}, {video: true}],
--- a/dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_2d.html
+++ b/dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_2d.html
@@ -11,17 +11,18 @@ createHTML({
   bug: "1032848",
   title: "Canvas(2D)::CaptureStream as video-only input to peerconnection",
   visible: true
 });
 
 runNetworkTest(async () => {
   // [TODO] re-enable HW decoder after bug 1526207 is fixed.
   if (navigator.userAgent.includes("Android")) {
-    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                    ["media.webrtc.hw.h264.enabled", false]);
   }
 
   var test = new PeerConnectionTest();
   var mediaElement;
   var h = new CaptureStreamTestHelper2D();
   var canvas = document.createElement('canvas');
   var stream;
   canvas.id = 'source_canvas';
--- a/dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_2d_noSSRC.html
+++ b/dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_2d_noSSRC.html
@@ -11,17 +11,18 @@ createHTML({
   title: "Canvas(2D)::CaptureStream as video-only input to peerconnection with no a=ssrc",
   visible: true
 });
 
 var test;
 runNetworkTest(async (options) => {
   // [TODO] re-enable HW decoder after bug 1526207 is fixed.
   if (navigator.userAgent.includes("Android")) {
-    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                    ["media.webrtc.hw.h264.enabled", false]);
   }
 
   options = options || { };
   options.ssrc = false;
   test = new PeerConnectionTest(options);
   var mediaElement;
   var h = new CaptureStreamTestHelper2D();
   var canvas = document.createElement('canvas');
--- a/dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_webgl.html
+++ b/dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_webgl.html
@@ -22,17 +22,18 @@
 createHTML({
   bug: "1032848",
   title: "Canvas(WebGL)::CaptureStream as video-only input to peerconnection"
 });
 
 runNetworkTest(async () => {
   // [TODO] re-enable HW decoder after bug 1526207 is fixed.
   if (navigator.userAgent.includes("Android")) {
-    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                    ["media.webrtc.hw.h264.enabled", false]);
   }
 
   var test = new PeerConnectionTest();
   var vremote;
   var h = new CaptureStreamTestHelperWebGL();
   var canvas = document.createElement('canvas');
   canvas.id = 'source_canvas';
   canvas.width = canvas.height = 10;
--- a/dom/media/tests/mochitest/test_peerConnection_disabledVideoPreNegotiation.html
+++ b/dom/media/tests/mochitest/test_peerConnection_disabledVideoPreNegotiation.html
@@ -12,17 +12,18 @@
     title: "Sending an initially disabled video track should be playable remotely",
     visible: true,
   });
 
   var test;
   runNetworkTest(async (options) => {
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     test = new PeerConnectionTest(options);
     test.setMediaConstraints([{video: true}], []);
     test.chain.insertAfter("PC_LOCAL_GUM", function PC_LOCAL_DISABLE_VIDEO() {
       for (const {track} of test.pcLocal._pc.getSenders()) {
         if (track.kind == "video") {
           track.enabled = false;
--- a/dom/media/tests/mochitest/test_peerConnection_maxFsConstraint.html
+++ b/dom/media/tests/mochitest/test_peerConnection_maxFsConstraint.html
@@ -76,19 +76,21 @@
       .then(() => {
         stream.getTracks().forEach(track => track.stop());
         v1.srcObject = v2.srcObject = null;
       }).catch(generateErrorCallback());
   }
 
   runNetworkTest(async () => {
     await pushPrefs(['media.peerconnection.video.lock_scaling', true]);
+    await testScale("H264");
+    // H.264 is prefered on Android for there is HW codec. Disable that to test
+    // VP8.
+    if (navigator.appVersion.includes("Android")) {
+      await pushPrefs(["media.webrtc.hw.h264.enabled", false]);
+    }
     await testScale("VP8");
-    if (!navigator.appVersion.includes("Android")) {
-      // No support for H.264 on Android in automation, see Bug 1355786
-      await testScale("H264");
-    }
     networkTestFinished();
   });
 </script>
 </pre>
 </body>
 </html>
--- a/dom/media/tests/mochitest/test_peerConnection_multiple_captureStream_canvas_2d.html
+++ b/dom/media/tests/mochitest/test_peerConnection_multiple_captureStream_canvas_2d.html
@@ -15,16 +15,17 @@ createHTML({
 
 /**
  * Test to verify using multiple capture streams concurrently.
  */
 runNetworkTest(async () => {
   // [TODO] re-enable HW decoder after bug 1526207 is fixed.
   if (navigator.userAgent.includes("Android")) {
     await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+    await pushPrefs(["media.webrtc.hw.h264.enabled", false]);
   }
 
   var test = new PeerConnectionTest();
   var h = new CaptureStreamTestHelper2D(50, 50);
 
   var vremote1;
   var stream1;
   var canvas1 = h.createAndAppendElement('canvas', 'source_canvas1');
--- a/dom/media/tests/mochitest/test_peerConnection_recordReceiveTrack.html
+++ b/dom/media/tests/mochitest/test_peerConnection_recordReceiveTrack.html
@@ -63,17 +63,18 @@ async function testTrackAccessible(track
   } finally {
     URL.revokeObjectURL(data);
   }
 }
 
 runNetworkTest(async options => {
   // [TODO] re-enable HW decoder after bug 1526207 is fixed.
   if (navigator.userAgent.includes("Android")) {
-    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                    ["media.webrtc.hw.h264.enabled", false]);
   }
   const test = new PeerConnectionTest(options);
   test.setMediaConstraints([{video: true}], [{audio: true}]);
   test.setOfferOptions({offerToReceiveAudio: true});
   const freshVideoTrackIsAccessible = new Promise(
       r => test.pcRemote._pc.addEventListener("track", r, {once: true})
     ).then(({track}) => testTrackAccessible(track));
   const freshAudioTrackIsAccessible = new Promise(
--- a/dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrack.html
+++ b/dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrack.html
@@ -15,17 +15,18 @@
   runNetworkTest(async function (options) {
     // Use fake video here since the native fake device on linux doesn't
     // change color as needed by checkVideoPlaying() below.
     await pushPrefs(
       ['media.video_loopback_dev', ''],
       ['media.navigator.streams.fake', true]);
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     const test = new PeerConnectionTest(options);
     const helper = new VideoStreamHelper();
     var originalTrack;
     let haveMuteEvent = new Promise(() => {});
     let haveUnmuteEvent = new Promise(() => {});
     addRenegotiation(test.chain,
--- a/dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html
+++ b/dom/media/tests/mochitest/test_peerConnection_removeThenAddVideoTrackNoBundle.html
@@ -15,17 +15,18 @@
   runNetworkTest(async function (options) {
     // Use fake video here since the native fake device on linux doesn't
     // change color as needed by checkVideoPlaying() below.
     await pushPrefs(
       ['media.video_loopback_dev', ''],
       ['media.navigator.streams.fake', true]);
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     options = options || { };
     options.bundle = false;
     const test = new PeerConnectionTest(options);
     const helper = new VideoStreamHelper();
     var originalTrack;
     addRenegotiation(test.chain,
--- a/dom/media/tests/mochitest/test_peerConnection_removeVideoTrack.html
+++ b/dom/media/tests/mochitest/test_peerConnection_removeVideoTrack.html
@@ -10,17 +10,18 @@
   createHTML({
     bug: "1017888",
     title: "Renegotiation: remove video track"
   });
 
   runNetworkTest(async (options) => {
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     const test = new PeerConnectionTest(options);
     let receivedTrack, element;
     addRenegotiation(test.chain,
       [
         function PC_REMOTE_SETUP_HELPER(test) {
           is(test.pcRemote._pc.getReceivers().length, 1,
--- a/dom/media/tests/mochitest/test_peerConnection_renderAfterRenegotiation.html
+++ b/dom/media/tests/mochitest/test_peerConnection_renderAfterRenegotiation.html
@@ -34,16 +34,17 @@
       resolve();
     }
   });
 
   runNetworkTest(async () => {
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
       await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.webrtc.hw.h264.enabled", false]);
     }
 
     v2 = createMediaElement('video', 'v2');
     is(v2.currentTime, 0, "v2.currentTime is zero at outset");
 
     const emitter = new VideoFrameEmitter(CaptureStreamTestHelper.prototype.blue,
                                           CaptureStreamTestHelper.prototype.green,
                                           10, 10);
--- a/dom/media/tests/mochitest/test_peerConnection_replaceVideoThenRenegotiate.html
+++ b/dom/media/tests/mochitest/test_peerConnection_replaceVideoThenRenegotiate.html
@@ -11,17 +11,18 @@
     bug: "1017888",
     title: "Renegotiation: replaceTrack followed by adding a second video stream"
   });
 
   runNetworkTest(async (options) => {
     await pushPrefs(['media.peerconnection.video.min_bitrate_estimate', 180*1000]);
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     const test = new PeerConnectionTest(options);
     test.setMediaConstraints([{video:true}], [{video:true}]);
     const helper = new VideoStreamHelper();
     const emitter1 = new VideoFrameEmitter(CaptureStreamTestHelper.prototype.red,
                                            CaptureStreamTestHelper.prototype.green);
     const emitter2 = new VideoFrameEmitter(CaptureStreamTestHelper.prototype.blue,
--- a/dom/media/tests/mochitest/test_peerConnection_setParameters_scaleResolutionDownBy.html
+++ b/dom/media/tests/mochitest/test_peerConnection_setParameters_scaleResolutionDownBy.html
@@ -29,17 +29,18 @@ async function checkScaleDownBy(scale) {
   is(remoteElem.videoHeight, expectedWidth / originalAspectRatio,
     `Height should have scaled down by ${scale}`);
 }
 
 runNetworkTest(async function (options) {
   await pushPrefs(['media.peerconnection.video.lock_scaling', true]);
   // [TODO] re-enable HW decoder after bug 1526207 is fixed.
   if (navigator.userAgent.includes("Android")) {
-    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                    ["media.webrtc.hw.h264.enabled", false]);
   }
 
   let test = new PeerConnectionTest(options);
   test.setMediaConstraints([{video: true}], []);
   test.chain.append([
     function CHECK_PRECONDITIONS() {
       is(test.pcLocal._pc.getSenders().length, 1,
           "Should have 1 local sender");
--- a/dom/media/tests/mochitest/test_peerConnection_stats.html
+++ b/dom/media/tests/mochitest/test_peerConnection_stats.html
@@ -807,17 +807,23 @@ var PC_LOCAL_TEST_LOCAL_STATS = test => 
 
 var PC_REMOTE_TEST_REMOTE_STATS = test => {
   return test.pcRemote.waitForSyncedRtcp().then(stats => {
     checkExpectedFields(stats);
     pedanticChecks(stats);
   });
 }
 
-runNetworkTest(function (options) {
+runNetworkTest(async function (options) {
+  // We don't know how to get QP value when using Android system codecs.
+  if (navigator.userAgent.includes("Android")) {
+    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                    ["media.webrtc.hw.h264.enabled", false]);
+  }
+
   const test = new PeerConnectionTest(options);
 
   test.chain.insertAfter("PC_LOCAL_WAIT_FOR_MEDIA_FLOW",
     [PC_LOCAL_TEST_LOCAL_STATS]);
 
   test.chain.insertAfter("PC_REMOTE_WAIT_FOR_MEDIA_FLOW",
     [PC_REMOTE_TEST_REMOTE_STATS]);
 
--- a/dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html
+++ b/dom/media/tests/mochitest/test_peerConnection_trackDisabling_clones.html
@@ -21,17 +21,18 @@ runNetworkTest(async () => {
     ["media.getusermedia.microphone.stop_on_disable.enabled", true],
     ["media.getusermedia.microphone.stop_on_disable.delay_ms", 0],
     // Always use fake tracks since we depend on audio to have a large 1000Hz
     // component.
     ['media.audio_loopback_dev', ''],
     ['media.navigator.streams.fake', true]);
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
   var originalStream;
   var localVideoOriginal;
 
   test.setMediaConstraints([{audio: true, video: true}], []);
   test.chain.replace("PC_LOCAL_GUM", [
     function PC_LOCAL_GUM_CLONE() {
--- a/dom/media/tests/mochitest/test_peerConnection_verifyVideoAfterRenegotiation.html
+++ b/dom/media/tests/mochitest/test_peerConnection_verifyVideoAfterRenegotiation.html
@@ -10,17 +10,18 @@
   createHTML({
     bug: "1166832",
     title: "Renegotiation: verify video after renegotiation"
   });
 
 runNetworkTest(async () => {
   // [TODO] re-enable HW decoder after bug 1526207 is fixed.
   if (navigator.userAgent.includes("Android")) {
-    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+    await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                    ["media.webrtc.hw.h264.enabled", false]);
   }
 
   var test = new PeerConnectionTest();
 
   var h1 = new CaptureStreamTestHelper2D(50, 50);
   var canvas1 = h1.createAndAppendElement('canvas', 'source_canvas1');
   var stream1;
   var vremote1;
--- a/dom/media/tests/mochitest/test_peerConnection_videoRenegotiationInactiveAnswer.html
+++ b/dom/media/tests/mochitest/test_peerConnection_videoRenegotiationInactiveAnswer.html
@@ -12,17 +12,18 @@
     bug: "1213773",
     title: "Renegotiation: answerer uses a=inactive for video"
   });
 
   var test;
   runNetworkTest(async (options) => {
     // [TODO] re-enable HW decoder after bug 1526207 is fixed.
     if (navigator.userAgent.includes("Android")) {
-      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false]);
+      await pushPrefs(["media.navigator.mediadatadecoder_vpx_enabled", false],
+                      ["media.webrtc.hw.h264.enabled", false]);
     }
 
     const emitter = new VideoFrameEmitter();
     const helper = new VideoStreamHelper();
 
     test = new PeerConnectionTest(options);
 
     test.chain.replace("PC_LOCAL_GUM", [