| 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 de45880dc9ef5d8ede2fd06a2498b4b5dedb9e0e..9b6faa55f3fb7fff9656f4e21bbf9aadc0153f20 100644
|
| --- a/media/tools/player_x11/player_x11.cc
|
| +++ b/media/tools/player_x11/player_x11.cc
|
| @@ -101,11 +101,11 @@ static void NeedKey(const std::string& type, scoped_ptr<uint8[]> init_data,
|
| }
|
|
|
| // TODO(vrk): Re-enabled audio. (crbug.com/112159)
|
| -bool 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(
|
| @@ -133,23 +133,18 @@ bool InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
|
| collection->SetAudioRenderer(audio_renderer.Pass());
|
|
|
| // Create the pipeline and start it.
|
| - *pipeline = new media::Pipeline(message_loop, new media::MediaLog());
|
| media::PipelineStatusNotification note;
|
| - (*pipeline)->Start(
|
| + pipeline->Start(
|
| collection.Pass(), base::Closure(), media::PipelineStatusCB(),
|
| note.Callback(), base::Bind(&OnBufferingState), base::Closure());
|
|
|
| // Wait until the pipeline is fully initialized.
|
| note.Wait();
|
| - if (note.status() != media::PIPELINE_OK) {
|
| - std::cout << "InitPipeline: " << note.status() << std::endl;
|
| - (*pipeline)->Stop(base::Closure());
|
| - return false;
|
| - }
|
| + CHECK_EQ(note.status(), media::PIPELINE_OK)
|
| + << "Pipeline initialization failed";
|
|
|
| // And start the playback.
|
| - (*pipeline)->SetPlaybackRate(1.0f);
|
| - return true;
|
| + pipeline->SetPlaybackRate(1.0f);
|
| }
|
|
|
| void TerminateHandler(int signal) {
|
| @@ -214,7 +209,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));
|
| @@ -264,7 +259,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")) {
|
| @@ -281,18 +275,17 @@ int main(int argc, char** argv) {
|
| scoped_ptr<media::Demuxer> demuxer(new media::FFmpegDemuxer(
|
| media_thread.message_loop_proxy(), data_source, base::Bind(&NeedKey)));
|
|
|
| - if (InitPipeline(media_thread.message_loop_proxy(), demuxer.get(),
|
| - paint_cb, command_line->HasSwitch("audio"),
|
| - &pipeline, &message_loop)) {
|
| - // Main loop of the application.
|
| - g_running = true;
|
| -
|
| - message_loop.PostTask(FROM_HERE, base::Bind(
|
| - &PeriodicalUpdate, pipeline, &message_loop, !pipeline->HasVideo()));
|
| - message_loop.Run();
|
| - } else {
|
| - std::cout << "Pipeline initialization failed..." << std::endl;
|
| - }
|
| + 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, base::Unretained(&pipeline), &message_loop,
|
| + !pipeline.HasVideo()));
|
| + message_loop.Run();
|
|
|
| // Cleanup tasks.
|
| media_thread.Stop();
|
|
|