Bug 1872519 pass planar reverse stream data to AudioProcessingTrack::NotifyOutputData...
commit24db8f79b37ac10ae9abd0ad924f63ca0822813d
authorKarl Tomlinson <karlt+@karlt.net>
Tue, 16 Jan 2024 00:09:30 +0000 (16 00:09 +0000)
committerKarl Tomlinson <karlt+@karlt.net>
Tue, 16 Jan 2024 00:09:30 +0000 (16 00:09 +0000)
treeda6b1f1adff172cd59978380d7c955c8986ea0ea
parent129ffddc2b6532cd34162670dc6001948c599f37
Bug 1872519 pass planar reverse stream data to AudioProcessingTrack::NotifyOutputData() r=chunmin

to remove unnecessary deinterleaving.
This will facilitating passing the output for a secondary output device,
without interleaving.

The AudioChunk is down-mixed directly into the AudioProcessing's input buffer,
rather than using an AudioPacketizer, to skip another one or two copies.

processedFrameCount accounting in TestAudioCallbackDriver.SlowStart is
adjusted to ignore frames processed while waiting for the fallback driver to
stop [1] and to continue counting frames while the driver shuts down.

[1]
https://searchfox.org/mozilla-central/rev/6856d0cab9e37dd9eb305f174ff71f0a95b31f82/dom/media/GraphDriver.cpp#873-882

Depends on D198236

Differential Revision: https://phabricator.services.mozilla.com/D198237
dom/media/GraphDriver.cpp
dom/media/GraphDriver.h
dom/media/MediaTrackGraph.cpp
dom/media/MediaTrackGraphImpl.h
dom/media/gtest/TestAudioCallbackDriver.cpp
dom/media/webrtc/MediaEngineWebRTCAudio.cpp
dom/media/webrtc/MediaEngineWebRTCAudio.h