mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-10 00:12:48 +00:00
eglglessink: Stop using deprecated GLib thread API
This commit is contained in:
parent
4dd39a3856
commit
ac420ff0de
2 changed files with 19 additions and 23 deletions
|
@ -609,9 +609,9 @@ render_thread_func (GstEglGlesSink * eglglessink)
|
||||||
if (caps != eglglessink->configured_caps) {
|
if (caps != eglglessink->configured_caps) {
|
||||||
if (!gst_eglglessink_configure_caps (eglglessink, caps)) {
|
if (!gst_eglglessink_configure_caps (eglglessink, caps)) {
|
||||||
eglglessink->last_flow = GST_FLOW_NOT_NEGOTIATED;
|
eglglessink->last_flow = GST_FLOW_NOT_NEGOTIATED;
|
||||||
g_mutex_lock (eglglessink->render_lock);
|
g_mutex_lock (&eglglessink->render_lock);
|
||||||
g_cond_broadcast (eglglessink->render_cond);
|
g_cond_broadcast (&eglglessink->render_cond);
|
||||||
g_mutex_unlock (eglglessink->render_lock);
|
g_mutex_unlock (&eglglessink->render_lock);
|
||||||
item->destroy (item);
|
item->destroy (item);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -627,9 +627,9 @@ render_thread_func (GstEglGlesSink * eglglessink)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buf) {
|
if (buf) {
|
||||||
g_mutex_lock (eglglessink->render_lock);
|
g_mutex_lock (&eglglessink->render_lock);
|
||||||
g_cond_broadcast (eglglessink->render_cond);
|
g_cond_broadcast (&eglglessink->render_cond);
|
||||||
g_mutex_unlock (eglglessink->render_lock);
|
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)
|
||||||
|
@ -778,9 +778,9 @@ gst_eglglessink_stop (GstEglGlesSink * eglglessink)
|
||||||
GST_DEBUG_OBJECT (eglglessink, "Stopping");
|
GST_DEBUG_OBJECT (eglglessink, "Stopping");
|
||||||
|
|
||||||
gst_data_queue_set_flushing (eglglessink->queue, TRUE);
|
gst_data_queue_set_flushing (eglglessink->queue, TRUE);
|
||||||
g_mutex_lock (eglglessink->render_lock);
|
g_mutex_lock (&eglglessink->render_lock);
|
||||||
g_cond_broadcast (eglglessink->render_cond);
|
g_cond_broadcast (&eglglessink->render_cond);
|
||||||
g_mutex_unlock (eglglessink->render_lock);
|
g_mutex_unlock (&eglglessink->render_lock);
|
||||||
|
|
||||||
if (eglglessink->thread) {
|
if (eglglessink->thread) {
|
||||||
g_thread_join (eglglessink->thread);
|
g_thread_join (eglglessink->thread);
|
||||||
|
@ -1697,19 +1697,19 @@ gst_eglglessink_queue_buffer (GstEglGlesSink * eglglessink, GstBuffer * buf)
|
||||||
GST_DEBUG_OBJECT (eglglessink, "Queueing buffer %" GST_PTR_FORMAT, buf);
|
GST_DEBUG_OBJECT (eglglessink, "Queueing buffer %" GST_PTR_FORMAT, buf);
|
||||||
|
|
||||||
if (buf)
|
if (buf)
|
||||||
g_mutex_lock (eglglessink->render_lock);
|
g_mutex_lock (&eglglessink->render_lock);
|
||||||
if (!gst_data_queue_push (eglglessink->queue, item)) {
|
if (!gst_data_queue_push (eglglessink->queue, item)) {
|
||||||
g_mutex_unlock (eglglessink->render_lock);
|
g_mutex_unlock (&eglglessink->render_lock);
|
||||||
GST_DEBUG_OBJECT (eglglessink, "Flushing");
|
GST_DEBUG_OBJECT (eglglessink, "Flushing");
|
||||||
return GST_FLOW_FLUSHING;
|
return GST_FLOW_FLUSHING;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buf) {
|
if (buf) {
|
||||||
GST_DEBUG_OBJECT (eglglessink, "Waiting for buffer to be rendered");
|
GST_DEBUG_OBJECT (eglglessink, "Waiting for buffer to be rendered");
|
||||||
g_cond_wait (eglglessink->render_cond, eglglessink->render_lock);
|
g_cond_wait (&eglglessink->render_cond, &eglglessink->render_lock);
|
||||||
GST_DEBUG_OBJECT (eglglessink, "Buffer rendered: %s",
|
GST_DEBUG_OBJECT (eglglessink, "Buffer rendered: %s",
|
||||||
gst_flow_get_name (eglglessink->last_flow));
|
gst_flow_get_name (eglglessink->last_flow));
|
||||||
g_mutex_unlock (eglglessink->render_lock);
|
g_mutex_unlock (&eglglessink->render_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (buf ? eglglessink->last_flow : GST_FLOW_OK);
|
return (buf ? eglglessink->last_flow : GST_FLOW_OK);
|
||||||
|
@ -2280,12 +2280,8 @@ gst_eglglessink_finalize (GObject * object)
|
||||||
g_object_unref (eglglessink->queue);
|
g_object_unref (eglglessink->queue);
|
||||||
eglglessink->queue = NULL;
|
eglglessink->queue = NULL;
|
||||||
|
|
||||||
if (eglglessink->render_cond)
|
g_cond_clear (&eglglessink->render_cond);
|
||||||
g_cond_free (eglglessink->render_cond);
|
g_mutex_clear (&eglglessink->render_lock);
|
||||||
eglglessink->render_cond = NULL;
|
|
||||||
if (eglglessink->render_lock);
|
|
||||||
g_mutex_free (eglglessink->render_lock);
|
|
||||||
eglglessink->render_lock = NULL;
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
@ -2413,8 +2409,8 @@ gst_eglglessink_init (GstEglGlesSink * eglglessink)
|
||||||
eglglessink->create_window = TRUE;
|
eglglessink->create_window = TRUE;
|
||||||
eglglessink->force_aspect_ratio = TRUE;
|
eglglessink->force_aspect_ratio = TRUE;
|
||||||
|
|
||||||
eglglessink->render_lock = g_mutex_new ();
|
g_mutex_init (&eglglessink->render_lock);
|
||||||
eglglessink->render_cond = g_cond_new ();
|
g_cond_init (&eglglessink->render_cond);
|
||||||
eglglessink->queue =
|
eglglessink->queue =
|
||||||
gst_data_queue_new (queue_check_full_func, NULL, NULL, NULL);
|
gst_data_queue_new (queue_check_full_func, NULL, NULL, NULL);
|
||||||
eglglessink->last_flow = GST_FLOW_FLUSHING;
|
eglglessink->last_flow = GST_FLOW_FLUSHING;
|
||||||
|
|
|
@ -207,8 +207,8 @@ struct _GstEglGlesSink
|
||||||
GThread *thread;
|
GThread *thread;
|
||||||
gboolean thread_running;
|
gboolean thread_running;
|
||||||
GstDataQueue *queue;
|
GstDataQueue *queue;
|
||||||
GCond *render_cond;
|
GCond render_cond;
|
||||||
GMutex *render_lock;
|
GMutex render_lock;
|
||||||
GstFlowReturn last_flow;
|
GstFlowReturn last_flow;
|
||||||
|
|
||||||
/* Properties */
|
/* Properties */
|
||||||
|
|
Loading…
Reference in a new issue