diff options
author | rtoy@google.com <rtoy@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-16 21:46:10 +0000 |
---|---|---|
committer | rtoy@google.com <rtoy@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-16 21:46:10 +0000 |
commit | 1113bfdfe5f7262ba4854f9fca9d4bc9055cdbdc (patch) | |
tree | 068fc6cbb873a062c1a404b249eaa2d375ed406b /webkit | |
parent | 501f9685a8bfcd5a819fd1022f229eb5a1922cc8 (diff) | |
download | chromium_src-1113bfdfe5f7262ba4854f9fca9d4bc9055cdbdc.zip chromium_src-1113bfdfe5f7262ba4854f9fca9d4bc9055cdbdc.tar.gz chromium_src-1113bfdfe5f7262ba4854f9fca9d4bc9055cdbdc.tar.bz2 |
WebMediaPlayerImpl needs to own the audio source provider.
WebMediaPlayerImpl needs to own the audio source provider to keep it from being destroyed too soon.
BUG=132890
TEST=See test in bug report.
Review URL: https://chromiumcodereview.appspot.com/10662030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146897 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/media/webmediaplayer_impl.cc | 2 | ||||
-rw-r--r-- | webkit/media/webmediaplayer_impl.h | 11 | ||||
-rw-r--r-- | webkit/support/webkit_support.cc | 1 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_webview_delegate.cc | 1 |
4 files changed, 15 insertions, 0 deletions
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc index 0281177..6924f8a 100644 --- a/webkit/media/webmediaplayer_impl.cc +++ b/webkit/media/webmediaplayer_impl.cc @@ -105,6 +105,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( base::WeakPtr<WebMediaPlayerDelegate> delegate, media::FilterCollection* collection, WebKit::WebAudioSourceProvider* audio_source_provider, + media::AudioRendererSink* audio_renderer_sink, media::MessageLoopFactory* message_loop_factory, MediaStreamClient* media_stream_client, media::MediaLog* media_log) @@ -128,6 +129,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( accelerated_compositing_reported_(false), incremented_externally_allocated_memory_(false), audio_source_provider_(audio_source_provider), + audio_renderer_sink_(audio_renderer_sink), is_local_source_(false), decryptor_(proxy_.get()) { media_log_->AddEvent( diff --git a/webkit/media/webmediaplayer_impl.h b/webkit/media/webmediaplayer_impl.h index 376c10f..9af7daa 100644 --- a/webkit/media/webmediaplayer_impl.h +++ b/webkit/media/webmediaplayer_impl.h @@ -75,6 +75,7 @@ class WebFrame; } namespace media { +class AudioRendererSink; class MediaLog; } @@ -104,11 +105,19 @@ class WebMediaPlayerImpl // filter if they wish to hear any sound coming out the speakers, otherwise // audio data is discarded and media plays back based on wall clock time. // + // When calling this, the |audio_source_provider| and + // |audio_renderer_sink| arguments should 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 + WebMediaPlayerImpl(WebKit::WebFrame* frame, WebKit::WebMediaPlayerClient* client, base::WeakPtr<WebMediaPlayerDelegate> delegate, media::FilterCollection* collection, WebKit::WebAudioSourceProvider* audio_source_provider, + media::AudioRendererSink* audio_renderer_sink, media::MessageLoopFactory* message_loop_factory, MediaStreamClient* media_stream_client, media::MediaLog* media_log); @@ -340,6 +349,8 @@ class WebMediaPlayerImpl WebKit::WebAudioSourceProvider* audio_source_provider_; + scoped_refptr<media::AudioRendererSink> audio_renderer_sink_; + bool is_local_source_; // The decryptor that manages decryption keys and decrypts encrypted frames. diff --git a/webkit/support/webkit_support.cc b/webkit/support/webkit_support.cc index 31c0088..5b1c8c5 100644 --- a/webkit/support/webkit_support.cc +++ b/webkit/support/webkit_support.cc @@ -405,6 +405,7 @@ WebKit::WebMediaPlayer* CreateMediaPlayer( base::WeakPtr<webkit_media::WebMediaPlayerDelegate>(), collection.release(), NULL, + NULL, message_loop_factory.release(), media_stream_client, new media::MediaLog()); diff --git a/webkit/tools/test_shell/test_webview_delegate.cc b/webkit/tools/test_shell/test_webview_delegate.cc index 19ae239..542fc51 100644 --- a/webkit/tools/test_shell/test_webview_delegate.cc +++ b/webkit/tools/test_shell/test_webview_delegate.cc @@ -649,6 +649,7 @@ WebMediaPlayer* TestWebViewDelegate::createMediaPlayer( base::WeakPtr<webkit_media::WebMediaPlayerDelegate>(), collection.release(), NULL, + NULL, message_loop_factory.release(), NULL, new media::MediaLog()); |