summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2006-03-23 21:28:06 +0000
committerTim-Philipp Müller <tim@centricular.net>2006-03-23 21:28:06 +0000
commita876898f35bc60218afb368ebcf0b93a79e32617 (patch)
tree874bc3a08cb706052117a96076bc3e51d363497c
parent26aff02c8ae8b9bfafc6a9549eacb0f523aeb4d1 (diff)
More state change function fixes.
Original commit message from CVS: * ext/speex/gstspeexdec.c: (speex_dec_change_state): * gst/interleave/deinterleave.c: (deinterleave_change_state): * gst/interleave/interleave.c: (interleave_change_state): * gst/wavenc/gstwavenc.c: (gst_wavenc_change_state): More state change function fixes.
-rw-r--r--ChangeLog8
-rw-r--r--ext/speex/gstspeexdec.c13
-rw-r--r--gst/wavenc/gstwavenc.c11
3 files changed, 24 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index d6d07560..550784a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-03-23 Tim-Philipp Müller <tim at centricular dot net>
+
+ * ext/speex/gstspeexdec.c: (speex_dec_change_state):
+ * gst/interleave/deinterleave.c: (deinterleave_change_state):
+ * gst/interleave/interleave.c: (interleave_change_state):
+ * gst/wavenc/gstwavenc.c: (gst_wavenc_change_state):
+ More state change function fixes.
+
2006-03-23 Wim Taymans <wim@fluendo.com>
* ext/esd/esdsink.c: (gst_esdsink_class_init),
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c
index 035e8b77..da53dd98 100644
--- a/ext/speex/gstspeexdec.c
+++ b/ext/speex/gstspeexdec.c
@@ -574,15 +574,22 @@ gst_speexdec_set_property (GObject * object, guint prop_id,
static GstStateChangeReturn
speex_dec_change_state (GstElement * element, GstStateChange transition)
{
+ GstStateChangeReturn ret;
GstSpeexDec *vd = GST_SPEEXDEC (element);
switch (transition) {
case GST_STATE_CHANGE_NULL_TO_READY:
- break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
- break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+ default:
break;
+ }
+
+ ret = parent_class->change_state (element, transition);
+ if (ret != GST_STATE_CHANGE_SUCCESS)
+ return ret;
+
+ switch (transition) {
case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
@@ -595,5 +602,5 @@ speex_dec_change_state (GstElement * element, GstStateChange transition)
break;
}
- return parent_class->change_state (element, transition);
+ return ret;
}
diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c
index f392b6ee..6b2fb973 100644
--- a/gst/wavenc/gstwavenc.c
+++ b/gst/wavenc/gstwavenc.c
@@ -126,8 +126,13 @@ gst_wavenc_get_type (void)
static GstStateChangeReturn
gst_wavenc_change_state (GstElement * element, GstStateChange transition)
{
+ GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
GstWavEnc *wavenc = GST_WAVENC (element);
+ ret = parent_class->change_state (element, transition);
+ if (ret != GST_STATE_CHANGE_SUCCESS)
+ return ret;
+
switch (transition) {
case GST_STATE_CHANGE_PAUSED_TO_READY:
wavenc->setup = FALSE;
@@ -137,11 +142,7 @@ gst_wavenc_change_state (GstElement * element, GstStateChange transition)
break;
}
- if (parent_class->change_state) {
- return parent_class->change_state (element, transition);
- }
-
- return GST_STATE_CHANGE_SUCCESS;
+ return ret;
}
static void