diff --git a/dom/locales/en-US/chrome/dom/dom.properties b/dom/locales/en-US/chrome/dom/dom.properties index 5e97c6670308..982aa35828bc 100644 --- a/dom/locales/en-US/chrome/dom/dom.properties +++ b/dom/locales/en-US/chrome/dom/dom.properties @@ -230,3 +230,4 @@ PushMessageDecryptionFailure=The ServiceWorker for scope ‘%1$S’ encountered PreventDefaultFromPassiveListenerWarning=Ignoring ‘preventDefault()’ call on event of type ‘%1$S’ from a listener registered as ‘passive’. FileLastModifiedDateWarning=File.lastModifiedDate is deprecated. Use File.lastModified instead. IIRFilterChannelCountChangeWarning=IIRFilterNode channel count changes may produce audio glitches. +BiquadFilterChannelCountChangeWarning=BiquadFilterNode channel count changes may produce audio glitches. diff --git a/dom/media/webaudio/BiquadFilterNode.cpp b/dom/media/webaudio/BiquadFilterNode.cpp index a7928172c877..2ea0120e25ba 100644 --- a/dom/media/webaudio/BiquadFilterNode.cpp +++ b/dom/media/webaudio/BiquadFilterNode.cpp @@ -77,7 +77,9 @@ SetParamsOnBiquad(WebCore::Biquad& aBiquad, class BiquadFilterNodeEngine final : public AudioNodeEngine { public: - BiquadFilterNodeEngine(AudioNode* aNode, AudioDestinationNode* aDestination) + BiquadFilterNodeEngine(AudioNode* aNode, + AudioDestinationNode* aDestination, + uint64_t aWindowID) : AudioNodeEngine(aNode) , mDestination(aDestination->Stream()) // Keep the default values in sync with the default values in @@ -87,6 +89,7 @@ public: , mDetune(0.f) , mQ(1.f) , mGain(0.f) + , mWindowID(aWindowID) { } @@ -173,7 +176,8 @@ public: aStream->Graph()-> DispatchToMainThreadAfterStreamStateUpdate(refchanged.forget()); } else { // Help people diagnose bug 924718 - NS_WARNING("BiquadFilterNode channel count changes may produce audio glitches"); + WebAudioUtils::LogToDeveloperConsole(mWindowID, + "BiquadFilterChannelCountChangeWarning"); } // Adjust the number of biquads based on the number of channels @@ -237,6 +241,7 @@ private: AudioParamTimeline mQ; AudioParamTimeline mGain; nsTArray mBiquads; + uint64_t mWindowID; }; BiquadFilterNode::BiquadFilterNode(AudioContext* aContext) @@ -251,7 +256,8 @@ BiquadFilterNode::BiquadFilterNode(AudioContext* aContext) , mQ(new AudioParam(this, BiquadFilterNodeEngine::Q, 1.f, "Q")) , mGain(new AudioParam(this, BiquadFilterNodeEngine::GAIN, 0.f, "gain")) { - BiquadFilterNodeEngine* engine = new BiquadFilterNodeEngine(this, aContext->Destination()); + uint64_t windowID = aContext->GetParentObject()->WindowID(); + BiquadFilterNodeEngine* engine = new BiquadFilterNodeEngine(this, aContext->Destination(), windowID); mStream = AudioNodeStream::Create(aContext, engine, AudioNodeStream::NO_STREAM_FLAGS); }