summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-11-01 13:51:09 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-11-01 13:52:48 +0100
commitb70b637238f29b14d8f38c3a572280adf592c58c (patch)
tree4d21a5d4482c35652e3b91e976c666818ec20843
parenta63f9b6900331938499356abdd38425b0172dc95 (diff)
eglglessink: Post stream-status messages for our render thread
-rw-r--r--ext/eglgles/gsteglglessink.c20
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;
}