48 lines
2.0 KiB
Diff
48 lines
2.0 KiB
Diff
|
Copied from: https://hg.mozilla.org/releases/mozilla-esr38/rev/6d43ff33bd55
|
||
|
Security advisory: https://www.mozilla.org/en-US/security/advisories/mfsa2016-01/
|
||
|
Mozilla Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1223670
|
||
|
|
||
|
# HG changeset patch
|
||
|
# User Karl Tomlinson <karlt+@karlt.net>
|
||
|
# Date 1451362442 -46800
|
||
|
# Node ID 6d43ff33bd552b8f7a34e4105cf5bcc0a8c8ea8c
|
||
|
# Parent f746c38d160ea29088c15cacae44f3662befaec5
|
||
|
bug 1223670 throw not supported when creating a node from a stream with different channel r=baku a=abillings
|
||
|
|
||
|
diff --git a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp b/dom/media/webaudio/MediaStreamAudioSourceNode.cpp
|
||
|
--- a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp
|
||
|
+++ b/dom/media/webaudio/MediaStreamAudioSourceNode.cpp
|
||
|
@@ -51,21 +51,29 @@ MediaStreamAudioSourceNode::Create(Audio
|
||
|
}
|
||
|
|
||
|
return node.forget();
|
||
|
}
|
||
|
|
||
|
void
|
||
|
MediaStreamAudioSourceNode::Init(DOMMediaStream* aMediaStream, ErrorResult& aRv)
|
||
|
{
|
||
|
+ MOZ_ASSERT(aMediaStream);
|
||
|
+ MediaStream* inputStream = aMediaStream->GetStream();
|
||
|
+ MediaStreamGraph* graph = Context()->Graph();
|
||
|
+ if (NS_WARN_IF(graph != inputStream->Graph())) {
|
||
|
+ aRv.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
|
||
|
+ return;
|
||
|
+ }
|
||
|
+
|
||
|
mInputStream = aMediaStream;
|
||
|
AudioNodeEngine* engine = new MediaStreamAudioSourceNodeEngine(this);
|
||
|
- mStream = Context()->Graph()->CreateAudioNodeExternalInputStream(engine);
|
||
|
+ mStream = graph->CreateAudioNodeExternalInputStream(engine);
|
||
|
ProcessedMediaStream* outputStream = static_cast<ProcessedMediaStream*>(mStream.get());
|
||
|
- mInputPort = outputStream->AllocateInputPort(aMediaStream->GetStream(),
|
||
|
+ mInputPort = outputStream->AllocateInputPort(inputStream,
|
||
|
MediaInputPort::FLAG_BLOCK_INPUT);
|
||
|
mInputStream->AddConsumerToKeepAlive(static_cast<nsIDOMEventTarget*>(this));
|
||
|
|
||
|
PrincipalChanged(mInputStream); // trigger enabling/disabling of the connector
|
||
|
mInputStream->AddPrincipalChangeObserver(this);
|
||
|
}
|
||
|
|
||
|
MediaStreamAudioSourceNode::~MediaStreamAudioSourceNode()
|
||
|
|