| Index: media/tools/player_x11/gl_video_renderer.cc
|
| diff --git a/media/tools/player_x11/gl_video_renderer.cc b/media/tools/player_x11/gl_video_renderer.cc
|
| index 035db82fa5df8768a3242fbb90821850c3f0824c..630fe9e2ddf51bdcf01157057b6a171286f754e6 100644
|
| --- a/media/tools/player_x11/gl_video_renderer.cc
|
| +++ b/media/tools/player_x11/gl_video_renderer.cc
|
| @@ -18,8 +18,8 @@ GlVideoRenderer* GlVideoRenderer::instance_ = NULL;
|
| GlVideoRenderer::GlVideoRenderer(Display* display, Window window)
|
| : display_(display),
|
| window_(window),
|
| - new_frame_(false),
|
| - gl_context_(NULL) {
|
| + gl_context_(NULL),
|
| + glx_thread_message_loop_(NULL) {
|
| }
|
|
|
| GlVideoRenderer::~GlVideoRenderer() {
|
| @@ -263,22 +263,13 @@ bool GlVideoRenderer::OnInitialize(media::VideoDecoder* decoder) {
|
| }
|
|
|
| void GlVideoRenderer::OnFrameAvailable() {
|
| - AutoLock auto_lock(lock_);
|
| - new_frame_ = true;
|
| + if (glx_thread_message_loop()) {
|
| + glx_thread_message_loop()->PostTask(FROM_HERE,
|
| + NewRunnableMethod(this, &GlVideoRenderer::Paint));
|
| + }
|
| }
|
|
|
| void GlVideoRenderer::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);
|
|
|
|
|