summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2020-08-13 20:19:21 +0900
committerSeungha Yang <seungha@centricular.com>2020-08-13 20:42:51 +0900
commit91f9490529a4de820c001469a096130de108bf56 (patch)
treebd1f125275b0a5141c833f14ff05606a640671bc
parent5ffd2c64a0cca7b55e280d61d225e45858bc4aa0 (diff)
downloadgstreamer-plugins-bad-91f9490529a4de820c001469a096130de108bf56.tar.gz
cccombiner: Correct sink_query chain up and fix caps leaks
Don't chain up to src_query() from sink_query() method, and returned caps by gst_static_pad_template_get_caps() needs to be cleared. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1513>
-rw-r--r--ext/closedcaption/gstcccombiner.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/closedcaption/gstcccombiner.c b/ext/closedcaption/gstcccombiner.c
index 20c558705..f1781c6cb 100644
--- a/ext/closedcaption/gstcccombiner.c
+++ b/ext/closedcaption/gstcccombiner.c
@@ -521,6 +521,7 @@ gst_cc_combiner_src_query (GstAggregator * aggregator, GstQuery * query)
gst_query_parse_accept_caps (query, &caps);
gst_query_set_accept_caps_result (query, gst_caps_is_subset (caps,
templ));
+ gst_caps_unref (templ);
ret = TRUE;
break;
}
@@ -553,7 +554,8 @@ gst_cc_combiner_sink_query (GstAggregator * aggregator,
ret = gst_pad_peer_query (srcpad, query);
} else {
ret =
- GST_AGGREGATOR_CLASS (parent_class)->src_query (aggregator, query);
+ GST_AGGREGATOR_CLASS (parent_class)->sink_query (aggregator,
+ aggpad, query);
}
break;
case GST_QUERY_CAPS:
@@ -587,11 +589,13 @@ gst_cc_combiner_sink_query (GstAggregator * aggregator,
gst_query_parse_accept_caps (query, &caps);
gst_query_set_accept_caps_result (query, gst_caps_is_subset (caps,
templ));
+ gst_caps_unref (templ);
ret = TRUE;
}
break;
default:
- ret = GST_AGGREGATOR_CLASS (parent_class)->src_query (aggregator, query);
+ ret = GST_AGGREGATOR_CLASS (parent_class)->sink_query (aggregator,
+ aggpad, query);
break;
}