/* static */ already_AddRefed<AudioNodeStream> AudioNodeStream::Create(AudioContext* aCtx, AudioNodeEngine* aEngine, Flags aFlags, MediaStreamGraph* aGraph) { MOZ_ASSERT(NS_IsMainThread()); // MediaRecorders use an AudioNodeStream, but no AudioNode AudioNode* node = aEngine->NodeMainThread(); MediaStreamGraph* graph = aGraph ? aGraph : aCtx->Graph(); RefPtr<AudioNodeStream> stream = new AudioNodeStream(aEngine, aFlags, graph->GraphRate()); stream->mSuspendedCount += aCtx->ShouldSuspendNewStream(); if (node) { stream->SetChannelMixingParametersImpl(node->ChannelCount(), node->ChannelCountModeValue(), node->ChannelInterpretationValue()); } graph->AddStream(stream); return stream.forget(); }