Chromium Code Reviews| Index: webkit/media/webmediaplayer_impl.cc |
| =================================================================== |
| --- webkit/media/webmediaplayer_impl.cc (revision 114311) |
| +++ webkit/media/webmediaplayer_impl.cc (working copy) |
| @@ -11,6 +11,8 @@ |
| #include "base/callback.h" |
| #include "base/command_line.h" |
| #include "base/metrics/histogram.h" |
| +#include "content/renderer/media/audio_renderer_impl.h" |
| +#include "content/renderer/render_audiosourceprovider.h" |
| #include "media/base/composite_data_source_factory.h" |
| #include "media/base/filter_collection.h" |
| #include "media/base/limits.h" |
| @@ -24,6 +26,8 @@ |
| #include "media/filters/ffmpeg_demuxer_factory.h" |
| #include "media/filters/ffmpeg_video_decoder.h" |
| #include "media/filters/null_audio_renderer.h" |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProvider.h" |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProviderClient.h" |
|
acolwell GONE FROM CHROMIUM
2011/12/21 22:53:56
Are these third_party includes needed? content/ren
Chris Rogers
2011/12/22 00:54:33
Done.
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebVideoFrame.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h" |
| @@ -102,6 +106,7 @@ |
| WebKit::WebMediaPlayerClient* client, |
| base::WeakPtr<WebMediaPlayerDelegate> delegate, |
| media::FilterCollection* collection, |
| + bool disable_audio, |
| media::MessageLoopFactory* message_loop_factory, |
| MediaStreamClient* media_stream_client, |
| media::MediaLog* media_log) |
| @@ -122,6 +127,18 @@ |
| media_log_(media_log), |
| is_accelerated_compositing_active_(false), |
| incremented_externally_allocated_memory_(false) { |
| + if (!disable_audio) { |
| + // audio_source_provider_ is a "provider" to WebKit, and a sink |
| + // from the perspective of the audio renderer. |
| + audio_source_provider_ = new RenderAudioSourceProvider(); |
| + // Add the chrome specific audio renderer, using audio_source_provider_ |
| + // as the sink. |
| + AudioRendererImpl* audio_renderer = |
| + new AudioRendererImpl(audio_source_provider_.get()); |
| + collection->AddAudioRenderer(audio_renderer); |
| + audio_source_provider_->SetRenderer(audio_renderer); |
| + } |
| + |
| // Saves the current message loop. |
| DCHECK(!main_loop_); |
| main_loop_ = MessageLoop::current(); |
| @@ -919,6 +936,10 @@ |
| return client_; |
| } |
| +WebKit::WebAudioSourceProvider* WebMediaPlayerImpl::audioSourceProvider() { |
| + return audio_source_provider_; |
| +} |
| + |
| void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() { |
| DCHECK_EQ(main_loop_, MessageLoop::current()); |
| incremented_externally_allocated_memory_ = true; |