mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-03 04:52:28 +00:00
ext/gconf/: Fix state change functions here as well and set kid to NULL state before removing it.
Original commit message from CVS: * ext/gconf/gstgconfaudiosink.c: (do_toggle_element), (gst_gconf_audio_sink_change_state): * ext/gconf/gstgconfvideosink.c: (do_toggle_element), (gst_gconf_video_sink_change_state): Fix state change functions here as well and set kid to NULL state before removing it.
This commit is contained in:
parent
4ab30e5583
commit
98d290b864
3 changed files with 31 additions and 4 deletions
|
@ -1,3 +1,12 @@
|
|||
2005-11-02 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* ext/gconf/gstgconfaudiosink.c: (do_toggle_element),
|
||||
(gst_gconf_audio_sink_change_state):
|
||||
* ext/gconf/gstgconfvideosink.c: (do_toggle_element),
|
||||
(gst_gconf_video_sink_change_state):
|
||||
Fix state change functions here as well and set kid
|
||||
to NULL state before removing it.
|
||||
|
||||
2005-11-01 Edward Hervey <edward@fluendo.com>
|
||||
|
||||
* gst/wavenc/gstwavenc.c: (gst_wavenc_stop_file),
|
||||
|
|
|
@ -122,6 +122,7 @@ do_toggle_element (GstGConfAudioSink * sink)
|
|||
/* kill old element */
|
||||
if (sink->kid) {
|
||||
GST_DEBUG_OBJECT (sink, "Removing old kid");
|
||||
gst_element_set_state (sink->kid, GST_STATE_NULL);
|
||||
gst_bin_remove (GST_BIN (sink), sink->kid);
|
||||
sink->kid = NULL;
|
||||
}
|
||||
|
@ -156,6 +157,7 @@ static GstStateChangeReturn
|
|||
gst_gconf_audio_sink_change_state (GstElement * element,
|
||||
GstStateChange transition)
|
||||
{
|
||||
GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
|
||||
GstGConfAudioSink *sink = GST_GCONF_AUDIO_SINK (element);
|
||||
|
||||
switch (transition) {
|
||||
|
@ -163,6 +165,14 @@ gst_gconf_audio_sink_change_state (GstElement * element,
|
|||
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_gconf_audio_sink_reset (sink);
|
||||
break;
|
||||
|
@ -170,6 +180,5 @@ gst_gconf_audio_sink_change_state (GstElement * element,
|
|||
break;
|
||||
}
|
||||
|
||||
return GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state,
|
||||
(element, transition), GST_STATE_CHANGE_SUCCESS);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -122,6 +122,7 @@ do_toggle_element (GstGConfVideoSink * sink)
|
|||
/* kill old element */
|
||||
if (sink->kid) {
|
||||
GST_DEBUG_OBJECT (sink, "Removing old kid");
|
||||
gst_element_set_state (sink->kid, GST_STATE_NULL);
|
||||
gst_bin_remove (GST_BIN (sink), sink->kid);
|
||||
sink->kid = NULL;
|
||||
}
|
||||
|
@ -156,6 +157,7 @@ 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) {
|
||||
|
@ -163,6 +165,14 @@ gst_gconf_video_sink_change_state (GstElement * element,
|
|||
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_gconf_video_sink_reset (sink);
|
||||
break;
|
||||
|
@ -170,6 +180,5 @@ gst_gconf_video_sink_change_state (GstElement * element,
|
|||
break;
|
||||
}
|
||||
|
||||
return GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state,
|
||||
(element, transition), GST_STATE_CHANGE_SUCCESS);
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue