Chromium Code Reviews| Index: webkit/glue/webmediaplayer_impl.cc |
| diff --git a/webkit/glue/webmediaplayer_impl.cc b/webkit/glue/webmediaplayer_impl.cc |
| index bbf6172ff394afe82449e7a1641fe2667f072646..38c679f4dc70663a88f1406c2c0cb864e121c8f3 100644 |
| --- a/webkit/glue/webmediaplayer_impl.cc |
| +++ b/webkit/glue/webmediaplayer_impl.cc |
| @@ -225,28 +225,33 @@ void WebMediaPlayerImpl::Proxy::PutCurrentFrame( |
| WebMediaPlayerImpl::WebMediaPlayerImpl( |
| WebKit::WebMediaPlayerClient* client, |
| - media::MediaFilterCollection* collection, |
| - MediaResourceLoaderBridgeFactory* bridge_factory_simple, |
| - MediaResourceLoaderBridgeFactory* bridge_factory_buffered, |
| - bool use_simple_data_source, |
| - scoped_refptr<WebVideoRenderer> web_video_renderer) |
| + media::MediaFilterCollection* collection) |
| : network_state_(WebKit::WebMediaPlayer::Empty), |
| ready_state_(WebKit::WebMediaPlayer::HaveNothing), |
| main_loop_(NULL), |
| filter_collection_(collection), |
| + pipeline_(NULL), |
| pipeline_thread_("PipelineThread"), |
| paused_(true), |
| playback_rate_(0.0f), |
| client_(client), |
| + proxy_(NULL), |
| pipeline_stopped_(false, false) { |
| // Saves the current message loop. |
| DCHECK(!main_loop_); |
| main_loop_ = MessageLoop::current(); |
| +} |
| +bool WebMediaPlayerImpl::initialize( |
| + MediaResourceLoaderBridgeFactory* bridge_factory_simple, |
| + MediaResourceLoaderBridgeFactory* bridge_factory_buffered, |
| + bool use_simple_data_source, |
| + scoped_refptr<WebVideoRenderer> web_video_renderer) { |
| // Create the pipeline and its thread. |
| if (!pipeline_thread_.Start()) { |
| +fprintf(stderr, "returning early\n"); |
|
scherkus (not reviewing)
2010/12/01 06:37:55
looks like leftover debugging code
Nico
2010/12/01 06:46:04
Done.
|
| NOTREACHED() << "Could not start PipelineThread"; |
| - return; |
| + return false; |
| } |
| pipeline_ = new media::PipelineImpl(pipeline_thread_.message_loop()); |
| @@ -290,6 +295,8 @@ WebMediaPlayerImpl::WebMediaPlayerImpl( |
| filter_collection_->AddAudioDecoder(new media::FFmpegAudioDecoder()); |
| filter_collection_->AddVideoDecoder(new media::FFmpegVideoDecoder(NULL)); |
| filter_collection_->AddAudioRenderer(new media::NullAudioRenderer()); |
| + |
| + return true; |
| } |
| WebMediaPlayerImpl::~WebMediaPlayerImpl() { |
| @@ -776,10 +783,12 @@ void WebMediaPlayerImpl::Destroy() { |
| // Make sure to kill the pipeline so there's no more media threads running. |
| // Note: stopping the pipeline might block for a long time. |
| - pipeline_->Stop(NewCallback(this, |
| - &WebMediaPlayerImpl::PipelineStoppedCallback)); |
| - pipeline_stopped_.Wait(); |
| - pipeline_thread_.Stop(); |
| + if (pipeline_) { |
| + pipeline_->Stop(NewCallback(this, |
| + &WebMediaPlayerImpl::PipelineStoppedCallback)); |
| + pipeline_stopped_.Wait(); |
| + pipeline_thread_.Stop(); |
| + } |
| // And then detach the proxy, it may live on the render thread for a little |
| // longer until all the tasks are finished. |