Bug 1395593 - Don't query the maximum channel count in ::PlayAudio using cubeb. r?achronop
MozReview-Commit-ID: 97ri5vhzsRF
--- a/dom/media/GraphDriver.h
+++ b/dom/media/GraphDriver.h
@@ -440,16 +440,22 @@ public:
MOZ_ASSERT(OnThread());
mAudioInput = nullptr;
}
AudioCallbackDriver* AsAudioCallbackDriver() override {
return this;
}
+ uint32_t OutputChannelCount()
+ {
+ MOZ_ASSERT(mOuputChannels != 0 && mOuputChannels <= 8);
+ return mOuputChannels;
+ }
+
/* Enqueue a promise that is going to be resolved when a specific operation
* occurs on the cubeb stream. */
void EnqueueStreamAndPromiseForOperation(MediaStream* aStream,
void* aPromise,
dom::AudioContextOperation aOperation);
/**
* Whether the audio callback is processing. This is for asserting only.
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -943,17 +943,18 @@ MediaStreamGraphImpl::PlayAudio(MediaStr
output.ApplyVolume(volume);
}
t = end;
}
audioOutput.mLastTickWritten = offset;
// Need unique id for stream & track - and we want it to match the inserter
output.WriteTo(LATENCY_STREAM_ID(aStream, track->GetID()),
- mMixer, AudioChannelCount(),
+ mMixer,
+ CurrentDriver()->AsAudioCallbackDriver()->OutputChannelCount(),
mSampleRate);
}
return ticksWritten;
}
void
MediaStreamGraphImpl::OpenAudioInputImpl(int aID,
AudioDataListener *aListener)