diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-11-01 13:51:09 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-11-01 13:52:48 +0100 |
commit | b70b637238f29b14d8f38c3a572280adf592c58c (patch) | |
tree | 4d21a5d4482c35652e3b91e976c666818ec20843 | |
parent | a63f9b6900331938499356abdd38425b0172dc95 (diff) |
eglglessink: Post stream-status messages for our render thread
-rw-r--r-- | ext/eglgles/gsteglglessink.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/ext/eglgles/gsteglglessink.c b/ext/eglgles/gsteglglessink.c index cad89f7a9..82b4fdbd5 100644 --- a/ext/eglgles/gsteglglessink.c +++ b/ext/eglgles/gsteglglessink.c @@ -581,8 +581,19 @@ HANDLE_ERROR: static gpointer render_thread_func (GstEglGlesSink * eglglessink) { + GstMessage *message; + GValue val = { 0 }; GstDataQueueItem *item = NULL; + g_value_init (&val, G_TYPE_POINTER); + g_value_set_pointer (&val, g_thread_self ()); + message = gst_message_new_stream_status (GST_OBJECT_CAST (eglglessink), + GST_STREAM_STATUS_TYPE_ENTER, GST_ELEMENT_CAST (eglglessink)); + gst_message_set_stream_status_object (message, &val); + GST_DEBUG_OBJECT (eglglessink, "posting ENTER stream status"); + gst_element_post_message (GST_ELEMENT_CAST (eglglessink), message); + g_value_unset (&val); + while (gst_data_queue_pop (eglglessink->queue, &item)) { GstBuffer *buf = NULL; @@ -638,6 +649,15 @@ render_thread_func (GstEglGlesSink * eglglessink) eglglessink->configured_caps = NULL; } + g_value_init (&val, G_TYPE_POINTER); + g_value_set_pointer (&val, g_thread_self ()); + message = gst_message_new_stream_status (GST_OBJECT_CAST (eglglessink), + GST_STREAM_STATUS_TYPE_LEAVE, GST_ELEMENT_CAST (eglglessink)); + gst_message_set_stream_status_object (message, &val); + GST_DEBUG_OBJECT (eglglessink, "posting LEAVE stream status"); + gst_element_post_message (GST_ELEMENT_CAST (eglglessink), message); + g_value_unset (&val); + return NULL; } |