From 561bfe045733931b0a75e936108dd1a312387a08 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Tue, 13 Nov 2007 06:55:28 +0000 Subject: [PATCH] gst/: Return the result in _activate_pull(). Don't ref element there. Original commit message from CVS: * gst/avi/gstavidemux.c: * gst/wavparse/gstwavparse.c: Return the result in _activate_pull(). Don't ref element there. --- ChangeLog | 6 ++++++ gst/avi/gstavidemux.c | 11 +++++------ gst/wavparse/gstwavparse.c | 17 ++++++++--------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 193971df81..2d8fde13cb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-11-13 Stefan Kost + + * gst/avi/gstavidemux.c: + * gst/wavparse/gstwavparse.c: + Return the result in _activate_pull(). Don't ref element there. + 2007-11-13 Stefan Kost * gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers), diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 06cf2140c3..e6eb49ee11 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -3834,6 +3834,7 @@ static gboolean gst_avi_demux_sink_activate (GstPad * sinkpad) { if (gst_pad_check_pull_range (sinkpad)) { + GST_DEBUG ("going to pull mode"); return gst_pad_activate_pull (sinkpad, TRUE); } else { GST_DEBUG ("going to push (streaming) mode"); @@ -3844,18 +3845,16 @@ gst_avi_demux_sink_activate (GstPad * sinkpad) static gboolean gst_avi_demux_sink_activate_pull (GstPad * sinkpad, gboolean active) { - GstAviDemux *avi = GST_AVI_DEMUX (gst_pad_get_parent (sinkpad)); + GstAviDemux *avi = GST_AVI_DEMUX (GST_OBJECT_PARENT (sinkpad)); if (active) { avi->segment_running = TRUE; - gst_pad_start_task (sinkpad, (GstTaskFunction) gst_avi_demux_loop, sinkpad); + return gst_pad_start_task (sinkpad, (GstTaskFunction) gst_avi_demux_loop, + sinkpad); } else { - gst_pad_stop_task (sinkpad); avi->segment_running = FALSE; + return gst_pad_stop_task (sinkpad); } - gst_object_unref (avi); - - return TRUE; } static gboolean diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 8512ed521b..783944265d 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -1974,8 +1974,10 @@ gst_wavparse_pad_query (GstPad * pad, GstQuery * query) GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (pad)); /* only if we know */ - if (wav->state != GST_WAVPARSE_DATA) + if (wav->state != GST_WAVPARSE_DATA) { + gst_object_unref (wav); return FALSE; + } switch (GST_QUERY_TYPE (query)) { case GST_QUERY_POSITION: @@ -2117,20 +2119,17 @@ gst_wavparse_sink_activate (GstPad * sinkpad) static gboolean gst_wavparse_sink_activate_pull (GstPad * sinkpad, gboolean active) { - GstWavParse *wav = GST_WAVPARSE (gst_pad_get_parent (sinkpad)); - - GST_DEBUG_OBJECT (wav, "activating pull"); + GstWavParse *wav = GST_WAVPARSE (GST_OBJECT_PARENT (sinkpad)); if (active) { /* if we have a scheduler we can start the task */ wav->segment_running = TRUE; - gst_pad_start_task (sinkpad, (GstTaskFunction) gst_wavparse_loop, sinkpad); + return gst_pad_start_task (sinkpad, (GstTaskFunction) gst_wavparse_loop, + sinkpad); } else { - gst_pad_stop_task (sinkpad); + wav->segment_running = FALSE; + return gst_pad_stop_task (sinkpad); } - gst_object_unref (wav); - - return TRUE; }; static GstStateChangeReturn