eglglessink: Don't signal the GCond too often

This commit is contained in:
Sebastian Dröge 2012-10-16 17:35:18 +02:00
parent 82dc2a3544
commit 406630a294

View file

@ -1093,19 +1093,17 @@ render_thread_func (GstEglGlesSink * eglglessink)
} }
eglglessink->last_flow = gst_eglglessink_render_and_display (eglglessink, buf); eglglessink->last_flow = gst_eglglessink_render_and_display (eglglessink, buf);
g_mutex_lock (eglglessink->render_lock); if (buf) {
g_cond_broadcast (eglglessink->render_cond); g_mutex_lock (eglglessink->render_lock);
g_mutex_unlock (eglglessink->render_lock); g_cond_broadcast (eglglessink->render_cond);
g_mutex_unlock (eglglessink->render_lock);
}
item->destroy (item); item->destroy (item);
if (eglglessink->last_flow != GST_FLOW_OK) if (eglglessink->last_flow != GST_FLOW_OK)
break; break;
GST_DEBUG_OBJECT (eglglessink, "Successfully handled object"); 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) if (eglglessink->last_flow == GST_FLOW_OK)
eglglessink->last_flow = GST_FLOW_WRONG_STATE; eglglessink->last_flow = GST_FLOW_WRONG_STATE;