From 406630a2942addf34ced679e1ecf4cd622f83253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 16 Oct 2012 17:35:18 +0200 Subject: [PATCH] eglglessink: Don't signal the GCond too often --- ext/eglgles/gsteglglessink.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ext/eglgles/gsteglglessink.c b/ext/eglgles/gsteglglessink.c index 426382ae1b..e713405701 100644 --- a/ext/eglgles/gsteglglessink.c +++ b/ext/eglgles/gsteglglessink.c @@ -1093,19 +1093,17 @@ render_thread_func (GstEglGlesSink * eglglessink) } eglglessink->last_flow = gst_eglglessink_render_and_display (eglglessink, buf); - g_mutex_lock (eglglessink->render_lock); - g_cond_broadcast (eglglessink->render_cond); - g_mutex_unlock (eglglessink->render_lock); + if (buf) { + g_mutex_lock (eglglessink->render_lock); + g_cond_broadcast (eglglessink->render_cond); + g_mutex_unlock (eglglessink->render_lock); + } item->destroy (item); if (eglglessink->last_flow != GST_FLOW_OK) break; GST_DEBUG_OBJECT (eglglessink, "Successfully handled object"); } - g_mutex_lock (eglglessink->render_lock); - g_cond_broadcast (eglglessink->render_cond); - g_mutex_unlock (eglglessink->render_lock); - if (eglglessink->last_flow == GST_FLOW_OK) eglglessink->last_flow = GST_FLOW_WRONG_STATE;