From: Olivier CrĂȘte Date: Sun, 29 Jan 2012 18:01:05 +0000 (+0000) Subject: rtpmux: Unref non-forwarded events X-Git-Tag: 1.19.3~509^2~6185 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=af4e999c592bf8d016d01c8725e1140297375c58;p=platform%2Fupstream%2Fgstreamer.git rtpmux: Unref non-forwarded events Also, don't unref forwarded ones --- diff --git a/gst/rtpmanager/gstrtpmux.c b/gst/rtpmanager/gstrtpmux.c index 49964d5..253f463 100644 --- a/gst/rtpmanager/gstrtpmux.c +++ b/gst/rtpmanager/gstrtpmux.c @@ -754,6 +754,7 @@ gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) { GstRTPMux *mux = GST_RTP_MUX (parent); gboolean is_pad; + gboolean ret; switch (GST_EVENT_TYPE (event)) { case GST_EVENT_CAPS: @@ -761,7 +762,9 @@ gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) GstCaps *caps; gst_event_parse_caps (event, &caps); - return gst_rtp_mux_setcaps (pad, mux, caps); + ret = gst_rtp_mux_setcaps (pad, mux, caps); + gst_event_unref (event); + return ret; } case GST_EVENT_FLUSH_STOP: { @@ -781,7 +784,6 @@ gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) gst_event_copy_segment (event, &padpriv->segment); } GST_OBJECT_UNLOCK (mux); - gst_event_unref (event); break; } default: @@ -792,10 +794,12 @@ gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) is_pad = (pad == mux->last_pad); GST_OBJECT_UNLOCK (mux); - if (is_pad) + if (is_pad) { return gst_pad_push_event (mux->srcpad, event); - else + } else { + gst_event_unref (event); return TRUE; + } } static void