diff options
-rw-r--r-- | content/content_renderer.gypi | 2 | ||||
-rw-r--r-- | content/renderer/media/render_audiosourceprovider.cc | 172 | ||||
-rw-r--r-- | content/renderer/render_view_impl.cc | 37 | ||||
-rw-r--r-- | webkit/media/webaudiosourceprovider_impl.cc | 136 | ||||
-rw-r--r-- | webkit/media/webaudiosourceprovider_impl.h (renamed from content/renderer/media/render_audiosourceprovider.h) | 72 | ||||
-rw-r--r-- | webkit/media/webkit_media.gypi | 2 | ||||
-rw-r--r-- | webkit/media/webmediaplayer_impl.cc | 13 | ||||
-rw-r--r-- | webkit/media/webmediaplayer_impl.h | 10 | ||||
-rw-r--r-- | webkit/media/webmediaplayer_params.cc | 4 | ||||
-rw-r--r-- | webkit/media/webmediaplayer_params.h | 17 | ||||
-rw-r--r-- | webkit/support/webkit_support.cc | 2 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_webview_delegate.cc | 2 |
12 files changed, 208 insertions, 261 deletions
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi index 8b95dcd..02a765f 100644 --- a/content/content_renderer.gypi +++ b/content/content_renderer.gypi @@ -130,8 +130,6 @@ 'renderer/media/media_stream_impl.h', 'renderer/media/pepper_platform_video_decoder_impl.cc', 'renderer/media/pepper_platform_video_decoder_impl.h', - 'renderer/media/render_audiosourceprovider.cc', - 'renderer/media/render_audiosourceprovider.h', 'renderer/media/render_media_log.cc', 'renderer/media/render_media_log.h', 'renderer/media/renderer_audio_output_device.cc', diff --git a/content/renderer/media/render_audiosourceprovider.cc b/content/renderer/media/render_audiosourceprovider.cc deleted file mode 100644 index b2a0bec..0000000 --- a/content/renderer/media/render_audiosourceprovider.cc +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/media/render_audiosourceprovider.h" - -#include <vector> - -#include "base/basictypes.h" -#include "base/command_line.h" -#include "base/logging.h" -#include "content/renderer/media/audio_device_factory.h" -#include "content/renderer/media/audio_renderer_mixer_manager.h" -#include "content/renderer/media/renderer_audio_output_device.h" -#include "content/renderer/render_thread_impl.h" -#include "media/base/audio_renderer_mixer_input.h" -#include "media/base/media_switches.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProviderClient.h" - -using std::vector; -using WebKit::WebVector; - -namespace content { - -RenderAudioSourceProvider::RenderAudioSourceProvider(int source_render_view_id) - : is_initialized_(false), - channels_(0), - sample_rate_(0), - is_running_(false), - renderer_(NULL), - client_(NULL) { - // We create an AudioRendererSink here, but we don't yet know the audio format - // (sample-rate, etc.) at this point. Later, when Initialize() is called, we - // have the audio format information and call AudioRendererSink::Initialize() - // to fully initialize it. - const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); -#if defined(OS_WIN) || defined(OS_MACOSX) - const bool use_mixing = - !cmd_line->HasSwitch(switches::kDisableRendererSideMixing); -#else - const bool use_mixing = - cmd_line->HasSwitch(switches::kEnableRendererSideMixing); -#endif - - if (use_mixing) { - default_sink_ = RenderThreadImpl::current()-> - GetAudioRendererMixerManager()->CreateInput(source_render_view_id); - DVLOG(1) << "Using AudioRendererMixerManager-provided sink: " - << default_sink_.get(); - } else { - scoped_refptr<RendererAudioOutputDevice> device = - AudioDeviceFactory::NewOutputDevice(); - // The RenderView creating RenderAudioSourceProvider will be the source of - // the audio (WebMediaPlayer is always associated with a document in a frame - // at the time RenderAudioSourceProvider is instantiated). - device->SetSourceRenderView(source_render_view_id); - default_sink_ = device; - DVLOG(1) << "Using AudioDeviceFactory-provided sink: " - << default_sink_.get(); - } -} - -void RenderAudioSourceProvider::setClient( - WebKit::WebAudioSourceProviderClient* client) { - // Synchronize with other uses of client_ and default_sink_. - base::AutoLock auto_lock(sink_lock_); - - if (client && client != client_) { - // Detach the audio renderer from normal playback. - default_sink_->Stop(); - - // The client will now take control by calling provideInput() periodically. - client_ = client; - - if (is_initialized_) { - // The client needs to be notified of the audio format, if available. - // If the format is not yet available, we'll be notified later - // when Initialize() is called. - - // Inform WebKit about the audio stream format. - client->setFormat(channels_, sample_rate_); - } - } else if (!client && client_) { - // Restore normal playback. - client_ = NULL; - // TODO(crogers): We should call default_sink_->Play() if we're - // in the playing state. - } -} - -void RenderAudioSourceProvider::provideInput( - const WebVector<float*>& audio_data, size_t number_of_frames) { - DCHECK(client_); - - if (renderer_ && is_initialized_ && is_running_) { - // Wrap WebVector as std::vector. - vector<float*> v(audio_data.size()); - for (size_t i = 0; i < audio_data.size(); ++i) - v[i] = audio_data[i]; - - scoped_ptr<media::AudioBus> audio_bus = media::AudioBus::WrapVector( - number_of_frames, v); - - // TODO(crogers): figure out if we should volume scale here or in common - // WebAudio code. In any case we need to take care of volume. - renderer_->Render(audio_bus.get(), 0); - } else { - // Provide silence if the source is not running. - for (size_t i = 0; i < audio_data.size(); ++i) - memset(audio_data[i], 0, sizeof(*audio_data[0]) * number_of_frames); - } -} - -void RenderAudioSourceProvider::Start() { - base::AutoLock auto_lock(sink_lock_); - if (!client_) - default_sink_->Start(); - is_running_ = true; -} - -void RenderAudioSourceProvider::Stop() { - base::AutoLock auto_lock(sink_lock_); - if (!client_) - default_sink_->Stop(); - is_running_ = false; -} - -void RenderAudioSourceProvider::Play() { - base::AutoLock auto_lock(sink_lock_); - if (!client_) - default_sink_->Play(); - is_running_ = true; -} - -void RenderAudioSourceProvider::Pause(bool flush) { - base::AutoLock auto_lock(sink_lock_); - if (!client_) - default_sink_->Pause(flush); - is_running_ = false; -} - -bool RenderAudioSourceProvider::SetVolume(double volume) { - base::AutoLock auto_lock(sink_lock_); - if (!client_) - default_sink_->SetVolume(volume); - return true; -} - -void RenderAudioSourceProvider::Initialize( - const media::AudioParameters& params, - RenderCallback* renderer) { - base::AutoLock auto_lock(sink_lock_); - CHECK(!is_initialized_); - renderer_ = renderer; - - default_sink_->Initialize(params, renderer); - - // Keep track of the format in case the client hasn't yet been set. - channels_ = params.channels(); - sample_rate_ = params.sample_rate(); - - if (client_) { - // Inform WebKit about the audio stream format. - client_->setFormat(channels_, sample_rate_); - } - - is_initialized_ = true; -} - -RenderAudioSourceProvider::~RenderAudioSourceProvider() {} - -} // namespace content diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index e0ba3d9..6894e66 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -83,11 +83,13 @@ #include "content/renderer/input_tag_speech_dispatcher.h" #include "content/renderer/java/java_bridge_dispatcher.h" #include "content/renderer/load_progress_tracker.h" +#include "content/renderer/media/audio_device_factory.h" +#include "content/renderer/media/audio_renderer_mixer_manager.h" #include "content/renderer/media/media_stream_dependency_factory.h" #include "content/renderer/media/media_stream_dispatcher.h" #include "content/renderer/media/media_stream_impl.h" -#include "content/renderer/media/render_audiosourceprovider.h" #include "content/renderer/media/render_media_log.h" +#include "content/renderer/media/renderer_audio_output_device.h" #include "content/renderer/media/renderer_gpu_video_decoder_factories.h" #include "content/renderer/media/rtc_peer_connection_handler.h" #include "content/renderer/mhtml_generator.h" @@ -113,6 +115,7 @@ #include "content/renderer/web_ui_extension_data.h" #include "content/renderer/webplugin_delegate_proxy.h" #include "content/renderer/websharedworker_proxy.h" +#include "media/base/audio_renderer_mixer_input.h" #include "media/base/filter_collection.h" #include "media/base/media_switches.h" #include "media/filters/audio_renderer_impl.h" @@ -2648,14 +2651,29 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer( resource_context, gpu_channel_host, routing_id_)); #endif - RenderMediaLog* render_media_log = new RenderMediaLog(); - - RenderAudioSourceProvider* audio_source_provider = NULL; - - // |audio_source_provider| "provides" audio to WebKit and is a sink from the - // perspective of the audio renderer. + scoped_refptr<media::AudioRendererSink> sink; if (!cmd_line->HasSwitch(switches::kDisableAudio)) { - audio_source_provider = new RenderAudioSourceProvider(routing_id_); +#if defined(OS_WIN) || defined(OS_MACOSX) + const bool use_mixing = + !cmd_line->HasSwitch(switches::kDisableRendererSideMixing); +#else + const bool use_mixing = + cmd_line->HasSwitch(switches::kEnableRendererSideMixing); +#endif + if (use_mixing) { + sink = RenderThreadImpl::current()->GetAudioRendererMixerManager()-> + CreateInput(routing_id_); + DVLOG(1) << "Using AudioRendererMixerManager-provided sink: " << sink; + } else { + scoped_refptr<RendererAudioOutputDevice> device = + AudioDeviceFactory::NewOutputDevice(); + // The RenderView creating AudioRendererSink will be the source of + // the audio (WebMediaPlayer is always associated with a document in a + // frame at the time RenderAudioSourceProvider is instantiated). + device->SetSourceRenderView(routing_id_); + sink = device; + DVLOG(1) << "Using AudioDeviceFactory-provided sink: " << sink; + } } scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories; @@ -2676,8 +2694,7 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer( } webkit_media::WebMediaPlayerParams params( - audio_source_provider, audio_source_provider, gpu_factories, - media_stream_impl_, render_media_log); + sink, gpu_factories, media_stream_impl_, new RenderMediaLog()); WebMediaPlayer* media_player = GetContentClient()->renderer()->OverrideCreateWebMediaPlayer( this, frame, client, AsWeakPtr(), params); diff --git a/webkit/media/webaudiosourceprovider_impl.cc b/webkit/media/webaudiosourceprovider_impl.cc new file mode 100644 index 0000000..3d2bfb1 --- /dev/null +++ b/webkit/media/webaudiosourceprovider_impl.cc @@ -0,0 +1,136 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "webkit/media/webaudiosourceprovider_impl.h" + +#include <vector> + +#include "base/logging.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProviderClient.h" + +using WebKit::WebVector; + +namespace webkit_media { + +WebAudioSourceProviderImpl::WebAudioSourceProviderImpl( + const scoped_refptr<media::AudioRendererSink>& sink) + : is_initialized_(false), + channels_(0), + sample_rate_(0), + is_running_(false), + renderer_(NULL), + client_(NULL), + sink_(sink) { +} + +WebAudioSourceProviderImpl::~WebAudioSourceProviderImpl() {} + +void WebAudioSourceProviderImpl::setClient( + WebKit::WebAudioSourceProviderClient* client) { + base::AutoLock auto_lock(sink_lock_); + + if (client && client != client_) { + // Detach the audio renderer from normal playback. + sink_->Stop(); + + // The client will now take control by calling provideInput() periodically. + client_ = client; + + if (is_initialized_) { + // The client needs to be notified of the audio format, if available. + // If the format is not yet available, we'll be notified later + // when Initialize() is called. + + // Inform WebKit about the audio stream format. + client->setFormat(channels_, sample_rate_); + } + } else if (!client && client_) { + // Restore normal playback. + client_ = NULL; + // TODO(crogers): We should call sink_->Play() if we're + // in the playing state. + } +} + +void WebAudioSourceProviderImpl::provideInput( + const WebVector<float*>& audio_data, size_t number_of_frames) { + DCHECK(client_); + + if (renderer_ && is_initialized_ && is_running_) { + // Wrap WebVector as std::vector. + std::vector<float*> v(audio_data.size()); + for (size_t i = 0; i < audio_data.size(); ++i) + v[i] = audio_data[i]; + + scoped_ptr<media::AudioBus> audio_bus = media::AudioBus::WrapVector( + number_of_frames, v); + + // TODO(crogers): figure out if we should volume scale here or in common + // WebAudio code. In any case we need to take care of volume. + renderer_->Render(audio_bus.get(), 0); + return; + } + + // Provide silence if the source is not running. + for (size_t i = 0; i < audio_data.size(); ++i) + memset(audio_data[i], 0, sizeof(*audio_data[0]) * number_of_frames); +} + +void WebAudioSourceProviderImpl::Start() { + base::AutoLock auto_lock(sink_lock_); + if (!client_) + sink_->Start(); + is_running_ = true; +} + +void WebAudioSourceProviderImpl::Stop() { + base::AutoLock auto_lock(sink_lock_); + if (!client_) + sink_->Stop(); + is_running_ = false; +} + +void WebAudioSourceProviderImpl::Play() { + base::AutoLock auto_lock(sink_lock_); + if (!client_) + sink_->Play(); + is_running_ = true; +} + +void WebAudioSourceProviderImpl::Pause(bool flush) { + base::AutoLock auto_lock(sink_lock_); + if (!client_) + sink_->Pause(flush); + is_running_ = false; +} + +bool WebAudioSourceProviderImpl::SetVolume(double volume) { + base::AutoLock auto_lock(sink_lock_); + if (!client_) + sink_->SetVolume(volume); + return true; +} + +void WebAudioSourceProviderImpl::Initialize( + const media::AudioParameters& params, + RenderCallback* renderer) { + base::AutoLock auto_lock(sink_lock_); + CHECK(!is_initialized_); + renderer_ = renderer; + + sink_->Initialize(params, renderer); + + // Keep track of the format in case the client hasn't yet been set. + channels_ = params.channels(); + sample_rate_ = params.sample_rate(); + + if (client_) { + // Inform WebKit about the audio stream format. + client_->setFormat(channels_, sample_rate_); + } + + is_initialized_ = true; +} + +} // namespace webkit_media diff --git a/content/renderer/media/render_audiosourceprovider.h b/webkit/media/webaudiosourceprovider_impl.h index 148b11f..888d67f 100644 --- a/content/renderer/media/render_audiosourceprovider.h +++ b/webkit/media/webaudiosourceprovider_impl.h @@ -1,57 +1,46 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// -// RenderAudioSourceProvider provides a bridge between classes: -// WebKit::WebAudioSourceProvider <---> media::AudioRendererSink -// -// RenderAudioSourceProvider is a "sink" of audio, and uses a default -// AudioOutputDevice if a client has not explicitly been set. -// -// WebKit optionally sets a client, and then periodically calls provideInput() -// to render a certain number of audio sample-frames. provideInput() -// uses the renderer to get this data, and then massages it into the form -// required by provideInput(). In this case, the default AudioOutputDevice -// is no longer used. -// -// THREAD SAFETY: -// It is assumed that the callers to setClient() and provideInput() -// implement appropriate locking for thread safety when making -// these calls. This happens in WebKit. -#ifndef CONTENT_RENDERER_MEDIA_RENDER_AUDIOSOURCEPROVIDER_H_ -#define CONTENT_RENDERER_MEDIA_RENDER_AUDIOSOURCEPROVIDER_H_ +#ifndef WEBKIT_MEDIA_WEBAUDIOSOURCEPROVIDER_IMPL_H_ +#define WEBKIT_MEDIA_WEBAUDIOSOURCEPROVIDER_IMPL_H_ #include "base/synchronization/lock.h" #include "media/base/audio_renderer_sink.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProvider.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebVector.h" namespace WebKit { class WebAudioSourceProviderClient; } -namespace content { +namespace webkit_media { -class RenderAudioSourceProvider +// WebAudioSourceProviderImpl provides a bridge between classes: +// WebKit::WebAudioSourceProvider <---> media::AudioRendererSink +// +// WebAudioSourceProviderImpl wraps an existing audio sink that is used unless +// WebKit has set a client via setClient(). While a client is set WebKit will +// periodically call provideInput() to render a certain number of audio +// sample-frames using the sink's RenderCallback to get the data. +// +// THREAD SAFETY: +// It is assumed that the callers to setClient() and provideInput() +// implement appropriate locking for thread safety when making +// these calls. This happens in WebKit. +class WebAudioSourceProviderImpl : public WebKit::WebAudioSourceProvider, public media::AudioRendererSink { public: - explicit RenderAudioSourceProvider(int source_render_view_id); + explicit WebAudioSourceProviderImpl( + const scoped_refptr<media::AudioRendererSink>& sink); // WebKit::WebAudioSourceProvider implementation. - - // WebKit calls setClient() if it desires to take control of the rendered - // audio stream. We call client's setFormat() when the audio stream format - // is known. virtual void setClient(WebKit::WebAudioSourceProviderClient* client); - - // If setClient() has been called, then WebKit calls provideInput() - // periodically to get the rendered audio stream. virtual void provideInput(const WebKit::WebVector<float*>& audio_data, size_t number_of_frames); - // AudioRendererSink implementation. + // media::AudioRendererSink implementation. virtual void Start() OVERRIDE; virtual void Stop() OVERRIDE; virtual void Play() OVERRIDE; @@ -61,7 +50,7 @@ class RenderAudioSourceProvider RenderCallback* renderer) OVERRIDE; protected: - virtual ~RenderAudioSourceProvider(); + virtual ~WebAudioSourceProviderImpl(); private: // Set to true when Initialize() is called. @@ -69,19 +58,22 @@ class RenderAudioSourceProvider int channels_; int sample_rate_; + // Tracks if |sink_| has been instructed to consume audio. bool is_running_; + + // Where audio comes from. media::AudioRendererSink::RenderCallback* renderer_; + + // When set via setClient() it overrides |sink_| for consuming audio. WebKit::WebAudioSourceProviderClient* client_; - // Protects access to sink_ + // Where audio ends up unless overridden by |client_|. base::Lock sink_lock_; + scoped_refptr<media::AudioRendererSink> sink_; - // default_sink_ is the default sink. - scoped_refptr<media::AudioRendererSink> default_sink_; - - DISALLOW_IMPLICIT_CONSTRUCTORS(RenderAudioSourceProvider); + DISALLOW_IMPLICIT_CONSTRUCTORS(WebAudioSourceProviderImpl); }; -} // namespace content +} // namespace webkit_media -#endif // CONTENT_RENDERER_MEDIA_RENDER_AUDIOSOURCEPROVIDER_H_ +#endif // WEBKIT_MEDIA_WEBAUDIOSOURCEPROVIDER_IMPL_H_ diff --git a/webkit/media/webkit_media.gypi b/webkit/media/webkit_media.gypi index 52cf375..ade49ea 100644 --- a/webkit/media/webkit_media.gypi +++ b/webkit/media/webkit_media.gypi @@ -81,6 +81,8 @@ 'simple_video_frame_provider.h', 'video_frame_provider.cc', 'video_frame_provider.h', + 'webaudiosourceprovider_impl.cc', + 'webaudiosourceprovider_impl.h', 'webmediaplayer_delegate.h', 'webmediaplayer_impl.cc', 'webmediaplayer_impl.h', diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc index 4b27e48..fee9545 100644 --- a/webkit/media/webmediaplayer_impl.cc +++ b/webkit/media/webmediaplayer_impl.cc @@ -33,6 +33,7 @@ #include "v8/include/v8.h" #include "webkit/media/buffered_data_source.h" #include "webkit/media/filter_helpers.h" +#include "webkit/media/webaudiosourceprovider_impl.h" #include "webkit/media/webmediaplayer_delegate.h" #include "webkit/media/webmediaplayer_params.h" #include "webkit/media/webmediaplayer_proxy.h" @@ -139,8 +140,6 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( media_log_(params.media_log()), accelerated_compositing_reported_(false), incremented_externally_allocated_memory_(false), - audio_source_provider_(params.audio_source_provider()), - audio_renderer_sink_(params.audio_renderer_sink()), is_local_source_(false), supports_save_(true), starting_(false) { @@ -198,13 +197,11 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( proxy_->set_frame_provider(video_renderer); // Create default audio renderer using the null sink if no sink was provided. - scoped_refptr<media::AudioRendererSink> audio_renderer_sink = - params.audio_renderer_sink(); - if (!audio_renderer_sink) - audio_renderer_sink = new media::NullAudioSink(); - + audio_source_provider_ = new WebAudioSourceProviderImpl( + params.audio_renderer_sink() ? params.audio_renderer_sink() : + new media::NullAudioSink()); filter_collection_->AddAudioRenderer(new media::AudioRendererImpl( - audio_renderer_sink, set_decryptor_ready_cb)); + audio_source_provider_, set_decryptor_ready_cb)); } WebMediaPlayerImpl::~WebMediaPlayerImpl() { diff --git a/webkit/media/webmediaplayer_impl.h b/webkit/media/webmediaplayer_impl.h index e9f8cd5..053fcf1 100644 --- a/webkit/media/webmediaplayer_impl.h +++ b/webkit/media/webmediaplayer_impl.h @@ -80,6 +80,7 @@ class MediaLog; namespace webkit_media { class MediaStreamClient; +class WebAudioSourceProviderImpl; class WebMediaPlayerDelegate; class WebMediaPlayerParams; class WebMediaPlayerProxy; @@ -325,13 +326,8 @@ class WebMediaPlayerImpl bool incremented_externally_allocated_memory_; - // TODO(scherkus): Sadly these two objects are the same and we're also forced - // to maintain an additional reference to |audio_renderer_sink_| otherwise - // |audio_source_provider_| will go bad after |pipeline_| shuts down. - // - // See http://crbug.com/136442 for details. - WebKit::WebAudioSourceProvider* audio_source_provider_; - scoped_refptr<media::AudioRendererSink> audio_renderer_sink_; + // Routes audio playback to either AudioRendererSink or WebAudio. + scoped_refptr<WebAudioSourceProviderImpl> audio_source_provider_; bool is_local_source_; bool supports_save_; diff --git a/webkit/media/webmediaplayer_params.cc b/webkit/media/webmediaplayer_params.cc index b860531..1f24625 100644 --- a/webkit/media/webmediaplayer_params.cc +++ b/webkit/media/webmediaplayer_params.cc @@ -10,13 +10,11 @@ namespace webkit_media { WebMediaPlayerParams::WebMediaPlayerParams( - WebKit::WebAudioSourceProvider* audio_source_provider, const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink, const scoped_refptr<media::GpuVideoDecoder::Factories>& gpu_factories, MediaStreamClient* media_stream_client, const scoped_refptr<media::MediaLog>& media_log) - : audio_source_provider_(audio_source_provider), - audio_renderer_sink_(audio_renderer_sink), + : audio_renderer_sink_(audio_renderer_sink), gpu_factories_(gpu_factories), media_stream_client_(media_stream_client), media_log_(media_log) { diff --git a/webkit/media/webmediaplayer_params.h b/webkit/media/webmediaplayer_params.h index d78f78f..577d04c 100644 --- a/webkit/media/webmediaplayer_params.h +++ b/webkit/media/webmediaplayer_params.h @@ -13,10 +13,6 @@ class AudioRendererSink; class MediaLog; } -namespace WebKit { -class WebAudioSourceProvider; -} - namespace webkit_media { class MediaStreamClient; @@ -26,25 +22,13 @@ class MediaStreamClient; class WebMediaPlayerParams { public: // |media_log| is the only required parameter; all others may be null. - // - // If provided, |audio_source_provider| and |audio_renderer_sink| arguments - // must be the same object. - // - // TODO(scherkus): Remove WebAudioSourceProvider parameter once we - // refactor RenderAudioSourceProvider to live under webkit/media/ - // instead of content/renderer/, see http://crbug.com/136442 WebMediaPlayerParams( - WebKit::WebAudioSourceProvider* audio_source_provider, const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink, const scoped_refptr<media::GpuVideoDecoder::Factories>& gpu_factories, MediaStreamClient* media_stream_client, const scoped_refptr<media::MediaLog>& media_log); ~WebMediaPlayerParams(); - WebKit::WebAudioSourceProvider* audio_source_provider() const { - return audio_source_provider_; - } - const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink() const { return audio_renderer_sink_; } @@ -63,7 +47,6 @@ class WebMediaPlayerParams { } private: - WebKit::WebAudioSourceProvider* audio_source_provider_; scoped_refptr<media::AudioRendererSink> audio_renderer_sink_; scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories_; MediaStreamClient* media_stream_client_; diff --git a/webkit/support/webkit_support.cc b/webkit/support/webkit_support.cc index 71c6801..b2a3d55 100644 --- a/webkit/support/webkit_support.cc +++ b/webkit/support/webkit_support.cc @@ -421,7 +421,7 @@ WebKit::WebMediaPlayer* CreateMediaPlayer( true); #else webkit_media::WebMediaPlayerParams params( - NULL, NULL, NULL, NULL, new media::MediaLog()); + NULL, NULL, NULL, new media::MediaLog()); return new webkit_media::WebMediaPlayerImpl( frame, client, diff --git a/webkit/tools/test_shell/test_webview_delegate.cc b/webkit/tools/test_shell/test_webview_delegate.cc index 913e05e..f13da4e 100644 --- a/webkit/tools/test_shell/test_webview_delegate.cc +++ b/webkit/tools/test_shell/test_webview_delegate.cc @@ -532,7 +532,7 @@ WebPlugin* TestWebViewDelegate::createPlugin(WebFrame* frame, WebMediaPlayer* TestWebViewDelegate::createMediaPlayer( WebFrame* frame, const WebKit::WebURL& url, WebMediaPlayerClient* client) { webkit_media::WebMediaPlayerParams params( - NULL, NULL, NULL, NULL, new media::MediaLog()); + NULL, NULL, NULL, new media::MediaLog()); return new webkit_media::WebMediaPlayerImpl( frame, client, |