From: Thiago Santos Date: Tue, 1 Dec 2009 16:22:57 +0000 (-0300) Subject: subparse: conditionally cleanup sami context X-Git-Tag: 1.19.3~511^2~8933 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c4b86b37fbc3de287ec40c696b13ba07d67eb9e0;p=platform%2Fupstream%2Fgstreamer.git subparse: conditionally cleanup sami context Only cleanup sami context if we are parsing sami subtitles, otherwise we might have crashes. --- diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c index a328b67..41a1c7e 100644 --- a/gst/subparse/gstsubparse.c +++ b/gst/subparse/gstsubparse.c @@ -163,7 +163,8 @@ gst_sub_parse_dispose (GObject * object) subparse->textbuf = NULL; } #ifndef GST_DISABLE_XML - sami_context_deinit (&subparse->state); + if (subparse->parser_type == GST_SUB_PARSE_FORMAT_SAMI) + sami_context_deinit (&subparse->state); #endif GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); @@ -1189,14 +1190,14 @@ parser_state_init (ParserState * state) } static void -parser_state_dispose (ParserState * state) +parser_state_dispose (GstSubParse * self, ParserState * state) { if (state->buf) { g_string_free (state->buf, TRUE); state->buf = NULL; } #ifndef GST_DISABLE_XML - if (state->user_data) { + if (state->user_data && self->parser_type == GST_SUB_PARSE_FORMAT_SAMI) { sami_context_reset (state); } #endif @@ -1670,7 +1671,7 @@ gst_sub_parse_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: - parser_state_dispose (&self->state); + parser_state_dispose (self, &self->state); self->parser_type = GST_SUB_PARSE_FORMAT_UNKNOWN; break; default: