Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1249)

Unified Diff: media/tools/player_x11/x11_video_renderer.cc

Issue 2724005: player_x11 : change X/GL thread to message loop for injecting task (Closed)
Patch Set: fixing nits Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/tools/player_x11/x11_video_renderer.cc
diff --git a/media/tools/player_x11/x11_video_renderer.cc b/media/tools/player_x11/x11_video_renderer.cc
index 50f8b5f4030210fb6bfe132bfdeb1e11fee2a604..a803dd8b834f75c160379e4eccbfda43919bb874 100644
--- a/media/tools/player_x11/x11_video_renderer.cc
+++ b/media/tools/player_x11/x11_video_renderer.cc
@@ -57,9 +57,9 @@ X11VideoRenderer::X11VideoRenderer(Display* display, Window window)
: display_(display),
window_(window),
image_(NULL),
- new_frame_(false),
picture_(0),
- use_render_(false) {
+ use_render_(false),
+ glx_thread_message_loop_(NULL) {
}
X11VideoRenderer::~X11VideoRenderer() {
@@ -132,22 +132,13 @@ bool X11VideoRenderer::OnInitialize(media::VideoDecoder* decoder) {
}
void X11VideoRenderer::OnFrameAvailable() {
- AutoLock auto_lock(lock_);
- new_frame_ = true;
+ if (glx_thread_message_loop()) {
+ glx_thread_message_loop()->PostTask(FROM_HERE,
+ NewRunnableMethod(this, &X11VideoRenderer::Paint));
+ }
}
void X11VideoRenderer::Paint() {
- // Use |new_frame_| to prevent overdraw since Paint() is called more
- // often than needed. It is OK to lock only this flag and we don't
- // want to lock the whole function because this method takes a long
- // time to complete.
- {
- AutoLock auto_lock(lock_);
- if (!new_frame_)
- return;
- new_frame_ = false;
- }
-
scoped_refptr<media::VideoFrame> video_frame;
GetCurrentFrame(&video_frame);
« media/tools/player_x11/gles_video_renderer.h ('K') | « media/tools/player_x11/x11_video_renderer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698