multihandlesink: Warn if trying to change the state from the streaming thread

Instead of silently returning GST_STATE_CHANGE_FAILURE.
This commit is contained in:
Sebastian Dröge 2016-05-05 13:16:57 +03:00
parent fe4e9bb02c
commit 46e808a300

View file

@ -2221,9 +2221,16 @@ gst_multi_handle_sink_change_state (GstElement * element,
sink = GST_MULTI_HANDLE_SINK (element); sink = GST_MULTI_HANDLE_SINK (element);
/* we disallow changing the state from the streaming thread */ /* we disallow changing the state from the streaming thread */
if (g_thread_self () == sink->thread) if (g_thread_self () == sink->thread) {
return GST_STATE_CHANGE_FAILURE; 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) { switch (transition) {
case GST_STATE_CHANGE_NULL_TO_READY: case GST_STATE_CHANGE_NULL_TO_READY: