From b30b397c46196cfcd9cb76133ad34265ddfd0cea Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 10 Feb 2012 11:24:28 +0100 Subject: [PATCH] basesink: implement faster ACCEPT_CAPS query --- libs/gst/base/gstbasesink.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index 2b6b38e677..87c76accc4 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -4536,6 +4536,19 @@ gst_base_sink_default_query (GstBaseSink * basesink, GstQuery * query) res = TRUE; break; } + case GST_QUERY_ACCEPT_CAPS: + { + GstCaps *caps, *allowed; + gboolean subset; + + /* slightly faster than the default implementation */ + gst_query_parse_accept_caps (query, &caps); + allowed = gst_base_sink_query_caps (basesink, basesink->sinkpad, NULL); + subset = gst_caps_is_subset (caps, allowed); + gst_query_set_accept_caps_result (query, subset); + res = TRUE; + break; + } default: res = gst_pad_query_default (basesink->sinkpad, GST_OBJECT_CAST (basesink),