summaryrefslogtreecommitdiff
path: root/Source/WebCore/Modules/webaudio/AudioContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/Modules/webaudio/AudioContext.cpp')
-rw-r--r--Source/WebCore/Modules/webaudio/AudioContext.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/Source/WebCore/Modules/webaudio/AudioContext.cpp b/Source/WebCore/Modules/webaudio/AudioContext.cpp
index ab8e17228..599c8b61a 100644
--- a/Source/WebCore/Modules/webaudio/AudioContext.cpp
+++ b/Source/WebCore/Modules/webaudio/AudioContext.cpp
@@ -401,8 +401,19 @@ PassRefPtr<MediaStreamAudioSourceNode> AudioContext::createMediaStreamSource(Med
ASSERT(isMainThread());
lazyInitialize();
- // FIXME: For now we don't give it an AudioSourceProvider, so it will output silence.
- RefPtr<MediaStreamAudioSourceNode> node = MediaStreamAudioSourceNode::create(this, mediaStream, 0);
+ AudioSourceProvider* provider = 0;
+
+ if (mediaStream->isLocal() && mediaStream->audioTracks()->length())
+ provider = destination()->localAudioInputProvider();
+ else {
+ // FIXME: get a provider for non-local MediaStreams (like from a remote peer).
+ provider = 0;
+ }
+
+ RefPtr<MediaStreamAudioSourceNode> node = MediaStreamAudioSourceNode::create(this, mediaStream, provider);
+
+ // FIXME: Only stereo streams are supported right now. We should be able to accept multi-channel streams.
+ node->setFormat(2, sampleRate());
refNode(node.get()); // context keeps reference until node is disconnected
return node;