Bug 1592140 - p2: disable HW H.264 support for certain tests. r=pehrsons
☠☠ backed out by 08ad786aea86 ☠ ☠
authorJohn Lin <jolin@mozilla.com>
Tue, 19 Nov 2019 18:12:49 +0000
changeset 502698 998ab0bd0e35beee827d02f3fde27948c83c243f
parent 502697 382a205bcb3e3d41be3e73fe02a1831ea8d7a057
child 502699 3556245dd362345576c6180db34e4aa73e52f117
push id100989
push userjolin@mozilla.com
push dateTue, 19 Nov 2019 22:32:28 +0000
treeherderautoland@998ab0bd0e35 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerspehrsons
bugs1592140
milestone72.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1592140 - p2: disable HW H.264 support for certain tests. r=pehrsons 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,23 @@ 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
@@ -803,17 +803,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", [