Bug 1265408 - Log biquad channel change warning to console; r=padenot

MozReview-Commit-ID: G16wgfKr4I6

--HG--
extra : rebase_source : 7c80e41af24a801f80ca9fb0ac389836e455e8c4
This commit is contained in:
Dan Minor 2016-06-03 14:17:41 -04:00
Родитель 86406e1e13
Коммит e72edaf704
2 изменённых файлов: 10 добавлений и 3 удалений

Просмотреть файл

@ -231,3 +231,4 @@ PreventDefaultFromPassiveListenerWarning=Ignoring preventDefault() call on
NavigatorBatteryWarning=navigator.battery is deprecated. Use navigator.getBattery() instead.
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.

Просмотреть файл

@ -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<WebCore::Biquad> 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);
}