-
tommyw@google.com authored
https://bugs.webkit.org/show_bug.cgi?id=101815 Reviewed by Chris Rogers. Source/Platform: Adds the consumer interface and related functionality to WebMediaStreamSource. * chromium/public/WebAudioDestinationConsumer.h: Added. (WebKit): (WebAudioDestinationConsumer): (WebKit::WebAudioDestinationConsumer::~WebAudioDestinationConsumer): * chromium/public/WebMediaStreamSource.h: (WebKit): (WebMediaStreamSource): Source/WebCore: Implements an audio destination node which has a MediaStream. This can be added to a PeerConnection with peerConnection.addStream(). Please see use case (3): https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html Test: webaudio/mediastreamaudiodestinationnode.html * Modules/webaudio/AudioContext.cpp: (WebCore): (WebCore::AudioContext::createMediaStreamDestination): * Modules/webaudio/AudioContext.h: (WebCore): (AudioContext): * Modules/webaudio/AudioContext.idl: * Modules/webaudio/AudioNode.h: * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: Added. (WebCore): (WebCore::MediaStreamAudioDestinationNode::create): (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): (WebCore::MediaStreamAudioDestinationNode::mediaStreamSource): (WebCore::MediaStreamAudioDestinationNode::~MediaStreamAudioDestinationNode): (WebCore::MediaStreamAudioDestinationNode::process): (WebCore::MediaStreamAudioDestinationNode::reset): * Modules/webaudio/MediaStreamAudioDestinationNode.h: Added. (WebCore): (MediaStreamAudioDestinationNode): (WebCore::MediaStreamAudioDestinationNode::stream): * Modules/webaudio/MediaStreamAudioDestinationNode.idl: Added. * WebCore.gypi: * platform/audio/AudioDestinationConsumer.h: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.cpp. (WebCore): (AudioDestinationConsumer): (WebCore::AudioDestinationConsumer::~AudioDestinationConsumer): * platform/chromium/support/WebMediaStreamSource.cpp: (WebKit::WebMediaStreamSource::extraData): (WebKit::WebMediaStreamSource::setExtraData): (WebKit::WebMediaStreamSource::requiresAudioConsumer): (WebKit): (ConsumerWrapper): (WebKit::ConsumerWrapper::create): (WebKit::ConsumerWrapper::consumer): (WebKit::ConsumerWrapper::ConsumerWrapper): (WebKit::ConsumerWrapper::consumeAudio): (WebKit::WebMediaStreamSource::addAudioConsumer): (WebKit::WebMediaStreamSource::removeAudioConsumer): * platform/mediastream/MediaStreamSource.cpp: (WebCore::MediaStreamSource::create): (WebCore::MediaStreamSource::MediaStreamSource): (WebCore::MediaStreamSource::addAudioConsumer): (WebCore): (WebCore::MediaStreamSource::removeAudioConsumer): (WebCore::MediaStreamSource::consumeAudio): * platform/mediastream/MediaStreamSource.h: (WebCore): (MediaStreamSource): (WebCore::MediaStreamSource::requiresAudioConsumer): (WebCore::MediaStreamSource::audioConsumers): Tools: Adds a bit of code that exercises the WebKit API. * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: (MockWebMediaStreamSourceConsumer): (MockWebMediaStreamSourceConsumer::~MockWebMediaStreamSourceConsumer): (MockWebMediaStreamCenter::didCreateMediaStream): LayoutTests: * webaudio/mediastreamaudiodestinationnode-expected.txt: Added. * webaudio/mediastreamaudiodestinationnode.html: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
19d9a7cd