| Index: media/tools/player_x11/player_x11.cc
|
| diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc
|
| index b6ff88e05e8d170ae79fe2dc3187effe83bd9d44..711bf5c498beff3d1fe70e13a66536295bed3927 100644
|
| --- a/media/tools/player_x11/player_x11.cc
|
| +++ b/media/tools/player_x11/player_x11.cc
|
| @@ -108,11 +108,11 @@ static void SaveStatusAndSignal(base::WaitableEvent* event,
|
| }
|
|
|
| // TODO(vrk): Re-enabled audio. (crbug.com/112159)
|
| -void InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| +void InitPipeline(media::Pipeline* pipeline,
|
| + const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| media::Demuxer* demuxer,
|
| const PaintCB& paint_cb,
|
| bool /* enable_audio */,
|
| - scoped_refptr<media::Pipeline>* pipeline,
|
| base::MessageLoop* paint_message_loop) {
|
| // Create our filter factories.
|
| scoped_ptr<media::FilterCollection> collection(
|
| @@ -139,12 +139,10 @@ void InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| media::SetDecryptorReadyCB()));
|
| collection->SetAudioRenderer(audio_renderer.Pass());
|
|
|
| - // Create the pipeline and start it.
|
| base::WaitableEvent event(true, false);
|
| media::PipelineStatus status;
|
|
|
| - *pipeline = new media::Pipeline(message_loop, new media::MediaLog());
|
| - (*pipeline)->Start(
|
| + pipeline->Start(
|
| collection.Pass(), base::Closure(), media::PipelineStatusCB(),
|
| base::Bind(&SaveStatusAndSignal, &event, &status),
|
| base::Bind(&OnBufferingState), base::Closure());
|
| @@ -154,7 +152,7 @@ void InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| CHECK_EQ(status, media::PIPELINE_OK) << "Pipeline initialization failed";
|
|
|
| // And start the playback.
|
| - (*pipeline)->SetPlaybackRate(1.0f);
|
| + pipeline->SetPlaybackRate(1.0f);
|
| }
|
|
|
| void TerminateHandler(int signal) {
|
| @@ -219,7 +217,7 @@ void PeriodicalUpdate(
|
| message_loop->PostDelayedTask(
|
| FROM_HERE,
|
| base::Bind(&PeriodicalUpdate,
|
| - make_scoped_refptr(pipeline),
|
| + base::Unretained(pipeline),
|
| message_loop,
|
| audio_only),
|
| base::TimeDelta::FromMilliseconds(10));
|
| @@ -269,7 +267,6 @@ int main(int argc, char** argv) {
|
| base::MessageLoop message_loop;
|
| base::Thread media_thread("MediaThread");
|
| media_thread.Start();
|
| - scoped_refptr<media::Pipeline> pipeline;
|
|
|
| PaintCB paint_cb;
|
| if (command_line->HasSwitch("use-gl")) {
|
| @@ -286,15 +283,17 @@ int main(int argc, char** argv) {
|
| media_thread.message_loop_proxy(), data_source.get(),
|
| base::Bind(&NeedKey)));
|
|
|
| - InitPipeline(media_thread.message_loop_proxy(), demuxer.get(),
|
| - paint_cb, command_line->HasSwitch("audio"), &pipeline,
|
| - &message_loop);
|
| + media::Pipeline pipeline(media_thread.message_loop_proxy(),
|
| + new media::MediaLog());
|
| + InitPipeline(&pipeline, media_thread.message_loop_proxy(), demuxer.get(),
|
| + paint_cb, command_line->HasSwitch("audio"), &message_loop);
|
|
|
| // Main loop of the application.
|
| g_running = true;
|
|
|
| message_loop.PostTask(FROM_HERE, base::Bind(
|
| - &PeriodicalUpdate, pipeline, &message_loop, !pipeline->HasVideo()));
|
| + &PeriodicalUpdate, base::Unretained(&pipeline), &message_loop,
|
| + !pipeline.HasVideo()));
|
| message_loop.Run();
|
|
|
| // Cleanup tasks.
|
|
|