decodebin3: Don't lose a ref on EOS event
authorJan Schmidt <jan@centricular.com>
Fri, 30 Sep 2022 18:37:05 +0000 (04:37 +1000)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 3 Oct 2022 16:40:49 +0000 (16:40 +0000)
Make sure not to give away the ref on the final EOS
event for which the probe handler is returning GST_PAD_PROBE_REMOVE
when pushing the event manually.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107>

subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c

index 94d64cf..32e8ee4 100644 (file)
@@ -2070,10 +2070,8 @@ multiqueue_src_probe (GstPad * pad, GstPadProbeInfo * info,
               "last EOS for input, forwarding and removing slot");
           peer = gst_pad_get_peer (pad);
           if (peer) {
-            gst_pad_send_event (peer, ev);
+            gst_pad_send_event (peer, gst_event_ref (ev));
             gst_object_unref (peer);
-          } else {
-            gst_event_unref (ev);
           }
           SELECTION_LOCK (dbin);
           /* FIXME : Shouldn't we try to re-assign the output instead of just