| 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 d71cd1a876d901fdc47257fed69afccfb829f7ba..a6e5718210360851a83dcbaea16006a349e1ced7 100644
|
| --- a/media/tools/player_x11/player_x11.cc
|
| +++ b/media/tools/player_x11/player_x11.cc
|
| @@ -17,6 +17,7 @@
|
| #include "media/audio/audio_manager.h"
|
| #include "media/audio/null_audio_sink.h"
|
| #include "media/base/audio_hardware_config.h"
|
| +#include "media/base/bind_to_current_loop.h"
|
| #include "media/base/decryptor.h"
|
| #include "media/base/filter_collection.h"
|
| #include "media/base/media.h"
|
| @@ -79,18 +80,6 @@ bool InitX11() {
|
| return true;
|
| }
|
|
|
| -typedef base::Callback<void(media::VideoFrame*)> PaintCB;
|
| -void Paint(base::MessageLoop* message_loop, const PaintCB& paint_cb,
|
| - const scoped_refptr<media::VideoFrame>& video_frame) {
|
| - if (message_loop != base::MessageLoop::current()) {
|
| - message_loop->PostTask(FROM_HERE, base::Bind(
|
| - &Paint, message_loop, paint_cb, video_frame));
|
| - return;
|
| - }
|
| -
|
| - paint_cb.Run(video_frame.get());
|
| -}
|
| -
|
| static void DoNothing() {}
|
|
|
| static void OnStatus(media::PipelineStatus status) {}
|
| @@ -114,9 +103,8 @@ void InitPipeline(
|
| media::Pipeline* pipeline,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| media::Demuxer* demuxer,
|
| - const PaintCB& paint_cb,
|
| - bool /* enable_audio */,
|
| - base::MessageLoop* paint_message_loop) {
|
| + const media::VideoRendererImpl::PaintCB& paint_cb,
|
| + bool /* enable_audio */) {
|
| // Create our filter factories.
|
| scoped_ptr<media::FilterCollection> collection(
|
| new media::FilterCollection());
|
| @@ -128,7 +116,7 @@ void InitPipeline(
|
| task_runner,
|
| video_decoders.Pass(),
|
| media::SetDecryptorReadyCB(),
|
| - base::Bind(&Paint, paint_message_loop, paint_cb),
|
| + paint_cb,
|
| true));
|
| collection->SetVideoRenderer(video_renderer.Pass());
|
|
|
| @@ -277,13 +265,13 @@ int main(int argc, char** argv) {
|
| base::Thread media_thread("MediaThread");
|
| media_thread.Start();
|
|
|
| - PaintCB paint_cb;
|
| + media::VideoRendererImpl::PaintCB paint_cb;
|
| if (command_line->HasSwitch("use-gl")) {
|
| - paint_cb = base::Bind(
|
| - &GlVideoRenderer::Paint, new GlVideoRenderer(g_display, g_window));
|
| + paint_cb = media::BindToCurrentLoop(base::Bind(
|
| + &GlVideoRenderer::Paint, new GlVideoRenderer(g_display, g_window)));
|
| } else {
|
| - paint_cb = base::Bind(
|
| - &X11VideoRenderer::Paint, new X11VideoRenderer(g_display, g_window));
|
| + paint_cb = media::BindToCurrentLoop(base::Bind(
|
| + &X11VideoRenderer::Paint, new X11VideoRenderer(g_display, g_window)));
|
| }
|
|
|
| scoped_ptr<media::DataSource> data_source(new DataSourceLogger(
|
| @@ -295,7 +283,7 @@ int main(int argc, char** argv) {
|
| 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);
|
| + paint_cb, command_line->HasSwitch("audio"));
|
|
|
| // Main loop of the application.
|
| g_running = true;
|
|
|