Bug 1400889 - Keep constant output channels in MediaStreamGraph. r?padenot
MozReview-Commit-ID: JlQdxU0aNOf
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -3471,16 +3471,17 @@ MediaStreamGraphImpl::MediaStreamGraphIm
, mNonRealtimeProcessing(false)
, mStreamOrderDirty(false)
, mLatencyLog(AsyncLatencyLogger::Get())
, mAbstractMainThread(aMainThread)
#ifdef MOZ_WEBRTC
, mFarendObserverRef(nullptr)
#endif
, mSelfRef(this)
+ , mOutputChannels(std::min<uint32_t>(8, CubebUtils::MaxNumberOfChannels()))
#ifdef DEBUG
, mCanRunMessagesSynchronously(false)
#endif
{
if (mRealtime) {
if (aDriverRequested == AUDIO_THREAD_DRIVER) {
AudioCallbackDriver* driver = new AudioCallbackDriver(this);
mDriver = driver;
--- a/dom/media/MediaStreamGraphImpl.h
+++ b/dom/media/MediaStreamGraphImpl.h
@@ -417,17 +417,17 @@ public:
*/
void SetStreamOrderDirty()
{
mStreamOrderDirty = true;
}
uint32_t AudioChannelCount() const
{
- return std::min<uint32_t>(8, CubebUtils::MaxNumberOfChannels());
+ return mOutputChannels;
}
double MediaTimeToSeconds(GraphTime aTime) const
{
NS_ASSERTION(aTime > -STREAM_TIME_MAX && aTime <= STREAM_TIME_MAX,
"Bad time");
return static_cast<double>(aTime)/GraphRate();
}
@@ -810,16 +810,21 @@ private:
uint64_t mWindowId;
RefPtr<ProcessedMediaStream> mCaptureStreamSink;
};
/**
* Stream for window audio capture.
*/
nsTArray<WindowAndStream> mWindowCaptureStreams;
+ /**
+ * Number of channels on output.
+ */
+ const uint32_t mOutputChannels;
+
#ifdef DEBUG
/**
* Used to assert when AppendMessage() runs ControlMessages synchronously.
*/
bool mCanRunMessagesSynchronously;
#endif
};