diff options
author | crogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-07 00:06:21 +0000 |
---|---|---|
committer | crogers@google.com <crogers@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-07 00:06:21 +0000 |
commit | 9e2269da3e7cd37c98422d4bd7f79c1048a4bd40 (patch) | |
tree | 6662278ff746f0ca9d9c25d58f4bcad6cedb5cd1 /webkit/media | |
parent | c7551b72248653f7a49e92f3bf54db36ea121f41 (diff) | |
download | chromium_src-9e2269da3e7cd37c98422d4bd7f79c1048a4bd40.zip chromium_src-9e2269da3e7cd37c98422d4bd7f79c1048a4bd40.tar.gz chromium_src-9e2269da3e7cd37c98422d4bd7f79c1048a4bd40.tar.bz2 |
Integrate HTMLMediaElement with Web Audio API's MediaElementAudioSourceNode (take 2)
RenderAudioSourceProvider implements WebKit::WebAudioSourceProvider using AudioRendererImpl
BUG=none
TEST=none
(tested locally)
Original Code Review: http://codereview.chromium.org/8980008/
Review URL: http://codereview.chromium.org/9122009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116778 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/media')
-rw-r--r-- | webkit/media/webmediaplayer_impl.cc | 8 | ||||
-rw-r--r-- | webkit/media/webmediaplayer_impl.h | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc index fac7996..d2ec3be 100644 --- a/webkit/media/webmediaplayer_impl.cc +++ b/webkit/media/webmediaplayer_impl.cc @@ -102,6 +102,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( WebKit::WebMediaPlayerClient* client, base::WeakPtr<WebMediaPlayerDelegate> delegate, media::FilterCollection* collection, + WebKit::WebAudioSourceProvider* audio_source_provider, media::MessageLoopFactory* message_loop_factory, MediaStreamClient* media_stream_client, media::MediaLog* media_log) @@ -122,7 +123,8 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( media_stream_client_(media_stream_client), media_log_(media_log), is_accelerated_compositing_active_(false), - incremented_externally_allocated_memory_(false) { + incremented_externally_allocated_memory_(false), + audio_source_provider_(audio_source_provider) { // Saves the current message loop. DCHECK(!main_loop_); main_loop_ = MessageLoop::current(); @@ -936,6 +938,10 @@ WebKit::WebMediaPlayerClient* WebMediaPlayerImpl::GetClient() { return client_; } +WebKit::WebAudioSourceProvider* WebMediaPlayerImpl::audioSourceProvider() { + return audio_source_provider_; +} + void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() { DCHECK_EQ(main_loop_, MessageLoop::current()); incremented_externally_allocated_memory_ = true; diff --git a/webkit/media/webmediaplayer_impl.h b/webkit/media/webmediaplayer_impl.h index 7b5cd60..b9600ec 100644 --- a/webkit/media/webmediaplayer_impl.h +++ b/webkit/media/webmediaplayer_impl.h @@ -52,14 +52,19 @@ #include "base/memory/scoped_ptr.h" #include "base/memory/weak_ptr.h" #include "base/message_loop.h" +#include "media/base/audio_renderer_sink.h" #include "media/base/filters.h" #include "media/base/message_loop_factory.h" #include "media/base/pipeline.h" #include "skia/ext/platform_canvas.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProvider.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayer.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerClient.h" +class RenderAudioSourceProvider; + namespace WebKit { +class WebAudioSourceProvider; class WebFrame; } @@ -98,11 +103,13 @@ class WebMediaPlayerImpl // audio renderer is a fake audio device that plays silence. Provider of the // |collection| can override the default filters by adding extra filters to // |collection| before calling this method. + // This object takes ownership of the |audio_source_provider|. // // Callers must call |Initialize()| before they can use the object. WebMediaPlayerImpl(WebKit::WebMediaPlayerClient* client, base::WeakPtr<WebMediaPlayerDelegate> delegate, media::FilterCollection* collection, + WebKit::WebAudioSourceProvider* audio_source_provider, media::MessageLoopFactory* message_loop_factory, MediaStreamClient* media_stream_client, media::MediaLog* media_log); @@ -172,6 +179,8 @@ class WebMediaPlayerImpl virtual WebKit::WebVideoFrame* getCurrentFrame(); virtual void putCurrentFrame(WebKit::WebVideoFrame* web_video_frame); + virtual WebKit::WebAudioSourceProvider* audioSourceProvider(); + virtual bool sourceAppend(const unsigned char* data, unsigned length); virtual void sourceEndOfStream(EndOfStreamStatus status); @@ -265,6 +274,8 @@ class WebMediaPlayerImpl bool incremented_externally_allocated_memory_; + WebKit::WebAudioSourceProvider* audio_source_provider_; + DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); }; |