From 5c55d4fe861ad43be011a24b5f350b2aaee04bcd Mon Sep 17 00:00:00 2001 From: Eunhae Choi Date: Thu, 29 Jun 2017 20:38:46 +0900 Subject: [PATCH] dvdread,dvdsub: fix caps leak Change-Id: I76042ec6dbfd03e17042c7fcbc20ba45114ef83e --- ext/dvdread/dvdreadsrc.c | 5 +++-- gst/dvdsub/gstdvdsubparse.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ext/dvdread/dvdreadsrc.c b/ext/dvdread/dvdreadsrc.c index 5c2b66a7..4440f0b2 100644 --- a/ext/dvdread/dvdreadsrc.c +++ b/ext/dvdread/dvdreadsrc.c @@ -109,6 +109,7 @@ gst_dvd_read_src_finalize (GObject * object) static void gst_dvd_read_src_init (GstDvdReadSrc * src) { + GstCaps *src_caps = gst_static_pad_template_get_caps (&srctemplate); src->dvd = NULL; src->vts_file = NULL; src->vmg_file = NULL; @@ -127,8 +128,8 @@ gst_dvd_read_src_init (GstDvdReadSrc * src) src->pending_clut_event = NULL; gst_pad_use_fixed_caps (GST_BASE_SRC_PAD (src)); - gst_pad_set_caps (GST_BASE_SRC_PAD (src), - gst_static_pad_template_get_caps (&srctemplate)); + gst_pad_set_caps (GST_BASE_SRC_PAD (src), src_caps); + gst_caps_unref (src_caps); } static gboolean diff --git a/gst/dvdsub/gstdvdsubparse.c b/gst/dvdsub/gstdvdsubparse.c index ea49e53b..f68d0911 100644 --- a/gst/dvdsub/gstdvdsubparse.c +++ b/gst/dvdsub/gstdvdsubparse.c @@ -97,6 +97,7 @@ gst_dvd_sub_parse_finalize (GObject * object) static void gst_dvd_sub_parse_init (GstDvdSubParse * parse) { + GstCaps *src_caps = gst_static_pad_template_get_caps (&src_template); parse->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); gst_pad_set_chain_function (parse->sinkpad, GST_DEBUG_FUNCPTR (gst_dvd_sub_parse_chain)); @@ -106,13 +107,13 @@ gst_dvd_sub_parse_init (GstDvdSubParse * parse) parse->srcpad = gst_pad_new_from_static_template (&src_template, "src"); gst_pad_use_fixed_caps (parse->srcpad); - gst_pad_set_caps (parse->srcpad, - gst_static_pad_template_get_caps (&src_template)); + gst_pad_set_caps (parse->srcpad, src_caps); gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad); /* remainder */ parse->adapter = gst_adapter_new (); gst_dvd_sub_parse_reset (parse); + gst_caps_unref (src_caps); } static void -- 2.34.1