summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-28 07:57:30 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-28 07:57:30 +0000
commit4b06d9be24dfb85ee872fa588b7e7772ab651478 (patch)
tree8df83c6e350c4b130b55a4c5d9b86288609e4546
parentc53b9b3ae493fb8ada415cb36ba5e045ac09b821 (diff)
downloadchromium_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.cc3
-rw-r--r--media/tools/player_x11/gl_video_renderer.h2
-rw-r--r--media/tools/player_x11/player_x11.cc32
-rw-r--r--media/tools/player_x11/x11_video_renderer.cc3
-rw-r--r--media/tools/player_x11/x11_video_renderer.h2
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>;