Bug 1296531 - Don't use direct audio listener with full duplex in MediaRecorder. r?jesup draft
authorAndreas Pehrson <pehrsons@gmail.com>
Tue, 22 Nov 2016 09:54:47 +0100
changeset 670316 2dab8ac6d00b9c2a1dcc0d7af76e650ddefdedf4
parent 670315 df8ef53c3587c4a4dbcc47692b823dd218187f64
child 670317 22becebfe7ad0f75daa52fce4acf8ad77709517b
push id81598
push userbmo:apehrson@mozilla.com
push dateTue, 26 Sep 2017 09:13:19 +0000
reviewersjesup
bugs1296531
milestone58.0a1
Bug 1296531 - Don't use direct audio listener with full duplex in MediaRecorder. r?jesup MozReview-Commit-ID: LS6eF6n7t7M
dom/media/encoder/MediaEncoder.cpp
--- a/dom/media/encoder/MediaEncoder.cpp
+++ b/dom/media/encoder/MediaEncoder.cpp
@@ -534,17 +534,23 @@ MediaEncoder::ConnectMediaStreamTrack(Me
       return;
     }
     if (!mAudioListener) {
       MOZ_ASSERT(false, "No audio listener for this audio track");
       return;
     }
 
     mAudioTrack = audio;
-    audio->AddDirectListener(mAudioListener);
+    // With full duplex we don't risk having audio come in late to the MSG
+    // so we won't need a direct listener.
+    const bool enableDirectListener =
+      !Preferences::GetBool("media.navigator.audio.full_duplex", false);
+    if (enableDirectListener) {
+      audio->AddDirectListener(mAudioListener);
+    }
     audio->AddListener(mAudioListener);
   } else if (VideoStreamTrack* video = aTrack->AsVideoStreamTrack()) {
     if(!mVideoEncoder) {
       MOZ_ASSERT(false, "No video encoder for this video track");
       return;
     }
     if (mVideoTrack) {
       MOZ_ASSERT(false, "Only one video track supported.");