From 46e808a300235ce6738e46b8891abd05bb77973c Mon Sep 17 00:00:00 2001 From: Sebastian Dröge Date: Thu, 5 May 2016 13:16:57 +0300 Subject: multihandlesink: Warn if trying to change the state from the streaming thread Instead of silently returning GST_STATE_CHANGE_FAILURE. --- gst/tcp/gstmultihandlesink.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'gst') diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c index d17cd4333..f060f0eaf 100644 --- a/gst/tcp/gstmultihandlesink.c +++ b/gst/tcp/gstmultihandlesink.c @@ -2221,9 +2221,16 @@ gst_multi_handle_sink_change_state (GstElement * element, sink = GST_MULTI_HANDLE_SINK (element); /* we disallow changing the state from the streaming thread */ - if (g_thread_self () == sink->thread) - return GST_STATE_CHANGE_FAILURE; + if (g_thread_self () == sink->thread) { + g_warning + ("\nTrying to change %s's state from its streaming thread would deadlock.\n" + "You cannot change the state of an element from its streaming\n" + "thread. Use g_idle_add() or post a GstMessage on the bus to\n" + "schedule the state change from the main thread.\n", + GST_ELEMENT_NAME (sink)); + return GST_STATE_CHANGE_FAILURE; + } switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: -- cgit v1.2.3