diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-28 07:57:30 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-28 07:57:30 +0000 |
commit | 4b06d9be24dfb85ee872fa588b7e7772ab651478 (patch) | |
tree | 8df83c6e350c4b130b55a4c5d9b86288609e4546 | |
parent | c53b9b3ae493fb8ada415cb36ba5e045ac09b821 (diff) | |
download | chromium_src-4b06d9be24dfb85ee872fa588b7e7772ab651478.zip chromium_src-4b06d9be24dfb85ee872fa588b7e7772ab651478.tar.gz chromium_src-4b06d9be24dfb85ee872fa588b7e7772ab651478.tar.bz2 |
Clean up paint callbacks in player_x11 to use media::BindToCurrentLoop().
Review URL: https://codereview.chromium.org/252703006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266480 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | media/tools/player_x11/gl_video_renderer.cc | 3 | ||||
-rw-r--r-- | media/tools/player_x11/gl_video_renderer.h | 2 | ||||
-rw-r--r-- | media/tools/player_x11/player_x11.cc | 32 | ||||
-rw-r--r-- | media/tools/player_x11/x11_video_renderer.cc | 3 | ||||
-rw-r--r-- | media/tools/player_x11/x11_video_renderer.h | 2 |
5 files changed, 16 insertions, 26 deletions
diff --git a/media/tools/player_x11/gl_video_renderer.cc b/media/tools/player_x11/gl_video_renderer.cc index 460bca6..5f233c4 100644 --- a/media/tools/player_x11/gl_video_renderer.cc +++ b/media/tools/player_x11/gl_video_renderer.cc @@ -111,7 +111,8 @@ GlVideoRenderer::~GlVideoRenderer() { glXDestroyContext(display_, gl_context_); } -void GlVideoRenderer::Paint(media::VideoFrame* video_frame) { +void GlVideoRenderer::Paint( + const scoped_refptr<media::VideoFrame>& video_frame) { if (!gl_context_) Initialize(video_frame->coded_size(), video_frame->visible_rect()); diff --git a/media/tools/player_x11/gl_video_renderer.h b/media/tools/player_x11/gl_video_renderer.h index 986a51c..c9f68ef 100644 --- a/media/tools/player_x11/gl_video_renderer.h +++ b/media/tools/player_x11/gl_video_renderer.h @@ -19,7 +19,7 @@ class GlVideoRenderer : public base::RefCountedThreadSafe<GlVideoRenderer> { public: GlVideoRenderer(Display* display, Window window); - void Paint(media::VideoFrame* video_frame); + void Paint(const scoped_refptr<media::VideoFrame>& video_frame); private: friend class base::RefCountedThreadSafe<GlVideoRenderer>; diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc index d71cd1a..a6e5718 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; diff --git a/media/tools/player_x11/x11_video_renderer.cc b/media/tools/player_x11/x11_video_renderer.cc index 5c886e7..2ae8e3b 100644 --- a/media/tools/player_x11/x11_video_renderer.cc +++ b/media/tools/player_x11/x11_video_renderer.cc @@ -83,7 +83,8 @@ X11VideoRenderer::~X11VideoRenderer() { XRenderFreePicture(display_, picture_); } -void X11VideoRenderer::Paint(media::VideoFrame* video_frame) { +void X11VideoRenderer::Paint( + const scoped_refptr<media::VideoFrame>& video_frame) { if (!image_) Initialize(video_frame->coded_size(), video_frame->visible_rect()); diff --git a/media/tools/player_x11/x11_video_renderer.h b/media/tools/player_x11/x11_video_renderer.h index 3e4b41d..d6c0938 100644 --- a/media/tools/player_x11/x11_video_renderer.h +++ b/media/tools/player_x11/x11_video_renderer.h @@ -20,7 +20,7 @@ class X11VideoRenderer : public base::RefCountedThreadSafe<X11VideoRenderer> { public: X11VideoRenderer(Display* display, Window window); - void Paint(media::VideoFrame* video_frame); + void Paint(const scoped_refptr<media::VideoFrame>& video_frame); private: friend class base::RefCountedThreadSafe<X11VideoRenderer>; |