Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Unified Diff: webkit/renderer/media/webmediaplayer_impl.cc

Issue 15993018: Reland: Use a shared thread for media operations (round 3). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/renderer/media/webmediaplayer_impl.h ('k') | webkit/renderer/media/webmediaplayer_params.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/renderer/media/webmediaplayer_impl.cc
diff --git a/webkit/renderer/media/webmediaplayer_impl.cc b/webkit/renderer/media/webmediaplayer_impl.cc
index c70ed2794cf7f6f0814654ae3f374679c77aa87f..8be02d7361ded5e50d229ebb2f6de8555110e452 100644
--- a/webkit/renderer/media/webmediaplayer_impl.cc
+++ b/webkit/renderer/media/webmediaplayer_impl.cc
@@ -130,7 +130,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
network_state_(WebMediaPlayer::NetworkStateEmpty),
ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
main_loop_(base::MessageLoopProxy::current()),
- media_thread_("MediaPipeline"),
+ media_loop_(params.message_loop_proxy()),
paused_(true),
seeking_(false),
playback_rate_(0.0f),
@@ -153,9 +153,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
media_log_->AddEvent(
media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED));
- CHECK(media_thread_.Start());
- pipeline_.reset(new media::Pipeline(media_thread_.message_loop_proxy(),
- media_log_.get()));
+ pipeline_.reset(new media::Pipeline(media_loop_, media_log_));
// Let V8 know we started new thread if we did not do it yet.
// Made separate task to avoid deletion of player currently being created.
@@ -185,7 +183,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
audio_source_provider_ = new WebAudioSourceProviderImpl(
params.audio_renderer_sink().get()
? params.audio_renderer_sink()
- : new media::NullAudioSink(media_thread_.message_loop_proxy()));
+ : new media::NullAudioSink(media_loop_));
}
WebMediaPlayerImpl::~WebMediaPlayerImpl() {
@@ -1058,7 +1056,7 @@ void WebMediaPlayerImpl::StartPipeline(WebKit::WebMediaSource* media_source) {
DCHECK(data_source_);
demuxer_.reset(new media::FFmpegDemuxer(
- media_thread_.message_loop_proxy(), data_source_.get(),
+ media_loop_, data_source_.get(),
BIND_TO_RENDER_LOOP_2(&WebMediaPlayerImpl::OnNeedKey, "", "")));
} else {
DCHECK(!chunk_demuxer_);
@@ -1097,15 +1095,13 @@ void WebMediaPlayerImpl::StartPipeline(WebKit::WebMediaSource* media_source) {
// Create our audio decoders and renderer.
ScopedVector<media::AudioDecoder> audio_decoders;
- audio_decoders.push_back(new media::FFmpegAudioDecoder(
- media_thread_.message_loop_proxy()));
+ audio_decoders.push_back(new media::FFmpegAudioDecoder(media_loop_));
if (cmd_line->HasSwitch(switches::kEnableOpusPlayback)) {
- audio_decoders.push_back(new media::OpusAudioDecoder(
- media_thread_.message_loop_proxy()));
+ audio_decoders.push_back(new media::OpusAudioDecoder(media_loop_));
}
scoped_ptr<media::AudioRenderer> audio_renderer(
- new media::AudioRendererImpl(media_thread_.message_loop_proxy(),
+ new media::AudioRendererImpl(media_loop_,
audio_source_provider_.get(),
audio_decoders.Pass(),
set_decryptor_ready_cb,
@@ -1117,7 +1113,7 @@ void WebMediaPlayerImpl::StartPipeline(WebKit::WebMediaSource* media_source) {
if (gpu_factories_.get()) {
video_decoders.push_back(new media::GpuVideoDecoder(
- media_thread_.message_loop_proxy(), gpu_factories_));
+ media_loop_, gpu_factories_));
}
// TODO(phajdan.jr): Remove ifdefs when libvpx with vp9 support is released
@@ -1125,17 +1121,15 @@ void WebMediaPlayerImpl::StartPipeline(WebKit::WebMediaSource* media_source) {
#if !defined(MEDIA_DISABLE_LIBVPX)
if (cmd_line->HasSwitch(switches::kEnableVp9Playback) ||
cmd_line->HasSwitch(switches::kEnableVp8AlphaPlayback)) {
- video_decoders.push_back(new media::VpxVideoDecoder(
- media_thread_.message_loop_proxy()));
+ video_decoders.push_back(new media::VpxVideoDecoder(media_loop_));
}
#endif // !defined(MEDIA_DISABLE_LIBVPX)
- video_decoders.push_back(new media::FFmpegVideoDecoder(
- media_thread_.message_loop_proxy()));
+ video_decoders.push_back(new media::FFmpegVideoDecoder(media_loop_));
scoped_ptr<media::VideoRenderer> video_renderer(
new media::VideoRendererBase(
- media_thread_.message_loop_proxy(),
+ media_loop_,
video_decoders.Pass(),
set_decryptor_ready_cb,
base::Bind(&WebMediaPlayerImpl::FrameReady, base::Unretained(this)),
@@ -1205,8 +1199,6 @@ void WebMediaPlayerImpl::Destroy() {
incremented_externally_allocated_memory_ = false;
}
- media_thread_.Stop();
-
// Release any final references now that everything has stopped.
pipeline_.reset();
demuxer_.reset();
« no previous file with comments | « webkit/renderer/media/webmediaplayer_impl.h ('k') | webkit/renderer/media/webmediaplayer_params.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698