static GstStateChangeReturn gst_gconf_video_sink_change_state (GstElement * element, GstStateChange transition) { GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; GstGConfVideoSink *sink = GST_GCONF_VIDEO_SINK (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: if (!do_toggle_element (sink)) return GST_STATE_CHANGE_FAILURE; break; default: break; } ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, (element, transition), GST_STATE_CHANGE_SUCCESS); switch (transition) { case GST_STATE_CHANGE_READY_TO_NULL: if (!gst_gconf_video_sink_reset (sink)) ret = GST_STATE_CHANGE_FAILURE; break; default: break; } return ret; }
static GstStateChangeReturn gst_hal_audio_sink_change_state (GstElement * element, GstStateChange transition) { GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; GstHalAudioSink *sink = GST_HAL_AUDIO_SINK (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: if (!do_toggle_element (sink)) return GST_STATE_CHANGE_FAILURE; break; default: break; } ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, (element, transition), GST_STATE_CHANGE_SUCCESS); switch (transition) { case GST_STATE_CHANGE_READY_TO_NULL: gst_hal_audio_sink_reset (sink); break; default: break; } return ret; }
static void cb_toggle_element (GConfClient * client, guint connection_id, GConfEntry * entry, gpointer data) { do_toggle_element (GST_GCONF_VIDEO_SINK (data)); }