avdeinterlace: fix element leak

Fixes #2473

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4384>
This commit is contained in:
Tim-Philipp Müller 2023-04-10 17:59:21 +01:00
parent bb5c151336
commit c723d9a1e0

View file

@ -196,10 +196,10 @@ gst_ffmpegdeinterlace_update_passthrough (GstFFMpegDeinterlace * deinterlace)
} }
static gboolean static gboolean
gst_ffmpegdeinterlace_sink_setcaps (GstPad * pad, GstCaps * caps) gst_ffmpegdeinterlace_sink_setcaps (GstPad * pad, GstObject * parent,
GstCaps * caps)
{ {
GstFFMpegDeinterlace *deinterlace = GstFFMpegDeinterlace *deinterlace = GST_FFMPEGDEINTERLACE (parent);
GST_FFMPEGDEINTERLACE (gst_pad_get_parent (pad));
GstStructure *structure = gst_caps_get_structure (caps, 0); GstStructure *structure = gst_caps_get_structure (caps, 0);
const gchar *imode; const gchar *imode;
AVCodecContext *ctx; AVCodecContext *ctx;
@ -260,7 +260,7 @@ gst_ffmpegdeinterlace_sink_event (GstPad * pad, GstObject * parent,
GstCaps *caps; GstCaps *caps;
gst_event_parse_caps (event, &caps); gst_event_parse_caps (event, &caps);
ret = gst_ffmpegdeinterlace_sink_setcaps (pad, caps); ret = gst_ffmpegdeinterlace_sink_setcaps (pad, parent, caps);
gst_event_unref (event); gst_event_unref (event);
break; break;
} }
@ -414,7 +414,7 @@ gst_ffmpegdeinterlace_chain (GstPad * pad, GstObject * parent,
deinterlace->reconfigure = FALSE; deinterlace->reconfigure = FALSE;
GST_OBJECT_UNLOCK (deinterlace); GST_OBJECT_UNLOCK (deinterlace);
if ((caps = gst_pad_get_current_caps (deinterlace->srcpad))) { if ((caps = gst_pad_get_current_caps (deinterlace->srcpad))) {
gst_ffmpegdeinterlace_sink_setcaps (deinterlace->sinkpad, caps); gst_ffmpegdeinterlace_sink_setcaps (deinterlace->sinkpad, parent, caps);
gst_caps_unref (caps); gst_caps_unref (caps);
} }
} else { } else {