From 74d03523270f25453c7ba853de04e02c745c2712 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 19 Sep 2005 14:55:26 +0000 Subject: [PATCH] gst/base/gstbasesrc.c: Handle state change failure more correctly. Original commit message from CVS: * gst/base/gstbasesrc.c: (gst_base_src_change_state): Handle state change failure more correctly. --- ChangeLog | 5 +++++ gst/base/gstbasesrc.c | 13 +++++++++---- libs/gst/base/gstbasesrc.c | 13 +++++++++---- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 378f764..1510cc9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-09-19 Wim Taymans + + * gst/base/gstbasesrc.c: (gst_base_src_change_state): + Handle state change failure more correctly. + 2005-09-19 Thomas Vander Stichele * check/Makefile.am: diff --git a/gst/base/gstbasesrc.c b/gst/base/gstbasesrc.c index 12f2917..15018e95 100644 --- a/gst/base/gstbasesrc.c +++ b/gst/base/gstbasesrc.c @@ -1077,10 +1077,8 @@ gst_base_src_change_state (GstElement * element, GstStateChange transition) if ((presult = GST_ELEMENT_CLASS (parent_class)->change_state (element, - transition)) != GST_STATE_CHANGE_SUCCESS) { - gst_base_src_stop (basesrc); - return presult; - } + transition)) == GST_STATE_CHANGE_FAILURE) + goto failure; switch (transition) { case GST_STATE_CHANGE_PLAYING_TO_PAUSED: @@ -1102,4 +1100,11 @@ gst_base_src_change_state (GstElement * element, GstStateChange transition) } return result; + + /* ERRORS */ +failure: + { + gst_base_src_stop (basesrc); + return presult; + } } diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index 12f2917..15018e95 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -1077,10 +1077,8 @@ gst_base_src_change_state (GstElement * element, GstStateChange transition) if ((presult = GST_ELEMENT_CLASS (parent_class)->change_state (element, - transition)) != GST_STATE_CHANGE_SUCCESS) { - gst_base_src_stop (basesrc); - return presult; - } + transition)) == GST_STATE_CHANGE_FAILURE) + goto failure; switch (transition) { case GST_STATE_CHANGE_PLAYING_TO_PAUSED: @@ -1102,4 +1100,11 @@ gst_base_src_change_state (GstElement * element, GstStateChange transition) } return result; + + /* ERRORS */ +failure: + { + gst_base_src_stop (basesrc); + return presult; + } } -- 2.7.4