diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2005-11-16 17:00:32 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2005-11-16 17:00:32 +0000 |
commit | d94e691beeba2ab03645a4cda2316954ddfe1809 (patch) | |
tree | c2939a295ea84b51d80d75bf1d3dba3b8efe4441 /gst/flx | |
parent | 14e816674053a610aaf5d51831b70138c6d159bd (diff) |
gst/flx/gstflxdec.c: Fix state change.
Original commit message from CVS:
* gst/flx/gstflxdec.c: (gst_flxdec_change_state):
Fix state change.
Diffstat (limited to 'gst/flx')
-rw-r--r-- | gst/flx/gstflxdec.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c index 1d50a9c7..e3e4bcc8 100644 --- a/gst/flx/gstflxdec.c +++ b/gst/flx/gstflxdec.c @@ -598,6 +598,7 @@ static GstStateChangeReturn gst_flxdec_change_state (GstElement * element, GstStateChange transition) { GstFlxDec *flxdec; + GstStateChangeReturn ret; flxdec = GST_FLXDEC (element); @@ -610,21 +611,31 @@ gst_flxdec_change_state (GstElement * element, GstStateChange transition) break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: break; + default: + break; + } + + ret = parent_class->change_state (element, transition); + + switch (transition) { case GST_STATE_CHANGE_PLAYING_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_buffer_unref (flxdec->frame); - flxdec->frame = NULL; - gst_buffer_unref (flxdec->delta); - flxdec->delta = NULL; + if (flxdec->frame) { + gst_buffer_unref (flxdec->frame); + flxdec->frame = NULL; + } + if (flxdec->delta) { + gst_buffer_unref (flxdec->delta); + flxdec->delta = NULL; + } break; case GST_STATE_CHANGE_READY_TO_NULL: break; + default: + break; } - - return parent_class->change_state (element, transition); - - //return GST_STATE_CHANGE_SUCCESS; + return ret; } static void |