diff --git a/dom/media/encoder/MediaEncoder.cpp b/dom/media/encoder/MediaEncoder.cpp index a4ce70d62e8e..e9468072877a 100644 --- a/dom/media/encoder/MediaEncoder.cpp +++ b/dom/media/encoder/MediaEncoder.cpp @@ -539,7 +539,13 @@ MediaEncoder::ConnectMediaStreamTrack(MediaStreamTrack* aTrack) } 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) {