avmux: fix element leak
authorTim-Philipp Müller <tim@centricular.com>
Mon, 10 Apr 2023 17:06:17 +0000 (18:06 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 10 Apr 2023 19:05:35 +0000 (19:05 +0000)
Fixes #2473

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

subprojects/gst-libav/ext/libav/gstavmux.c

index 2b347a3..9f907e2 100644 (file)
@@ -103,7 +103,8 @@ static void gst_ffmpegmux_init (GstFFMpegMux * ffmpegmux,
     GstFFMpegMuxClass * g_class);
 static void gst_ffmpegmux_finalize (GObject * object);
 
-static gboolean gst_ffmpegmux_setcaps (GstPad * pad, GstCaps * caps);
+static gboolean gst_ffmpegmux_setcaps (GstPad * pad, GstObject * parent,
+    GstCaps * caps);
 static GstPad *gst_ffmpegmux_request_new_pad (GstElement * element,
     GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
 static GstFlowReturn gst_ffmpegmux_collected (GstCollectPads * pads,
@@ -460,19 +461,10 @@ gst_ffmpegmux_request_new_pad (GstElement * element,
   return pad;
 }
 
-/**
- * gst_ffmpegmux_setcaps
- * @pad: #GstPad
- * @caps: New caps.
- *
- * Set caps to pad.
- *
- * Returns: #TRUE on success.
- */
 static gboolean
-gst_ffmpegmux_setcaps (GstPad * pad, GstCaps * caps)
+gst_ffmpegmux_setcaps (GstPad * pad, GstObject * parent, GstCaps * caps)
 {
-  GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) (gst_pad_get_parent (pad));
+  GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) parent;
   GstFFMpegMuxPad *collect_pad;
   AVStream *st;
   AVCodecContext tmp;
@@ -526,7 +518,7 @@ gst_ffmpegmux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
     case GST_EVENT_CAPS:{
       GstCaps *caps;
       gst_event_parse_caps (event, &caps);
-      if (!(res = gst_ffmpegmux_setcaps (pad, caps)))
+      if (!(res = gst_ffmpegmux_setcaps (pad, parent, caps)))
         goto beach;
       break;
     }