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: