summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorrtoy@google.com <rtoy@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-16 21:46:10 +0000
committerrtoy@google.com <rtoy@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-16 21:46:10 +0000
commit1113bfdfe5f7262ba4854f9fca9d4bc9055cdbdc (patch)
tree068fc6cbb873a062c1a404b249eaa2d375ed406b /webkit
parent501f9685a8bfcd5a819fd1022f229eb5a1922cc8 (diff)
downloadchromium_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.cc2
-rw-r--r--webkit/media/webmediaplayer_impl.h11
-rw-r--r--webkit/support/webkit_support.cc1
-rw-r--r--webkit/tools/test_shell/test_webview_delegate.cc1
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());