diff options
author | Seungha Yang <seungha@centricular.com> | 2020-08-13 20:19:21 +0900 |
---|---|---|
committer | Seungha Yang <seungha@centricular.com> | 2020-08-13 20:42:51 +0900 |
commit | 91f9490529a4de820c001469a096130de108bf56 (patch) | |
tree | bd1f125275b0a5141c833f14ff05606a640671bc | |
parent | 5ffd2c64a0cca7b55e280d61d225e45858bc4aa0 (diff) | |
download | gstreamer-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.c | 8 |
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; } |