static gboolean gst_interleave_sink_query (GstCollectPads * pads, GstCollectData * data, GstQuery * query, gpointer user_data) { GstInterleave *self = GST_INTERLEAVE (user_data); gboolean ret = TRUE; GST_DEBUG ("Got %s query on pad %s:%s", GST_QUERY_TYPE_NAME (query), GST_DEBUG_PAD_NAME (data->pad)); switch (GST_QUERY_TYPE (query)) { case GST_QUERY_CAPS: { GstCaps *filter, *caps; gst_query_parse_caps (query, &filter); caps = gst_interleave_sink_getcaps (data->pad, self, filter); gst_query_set_caps_result (query, caps); gst_caps_unref (caps); ret = TRUE; break; } default: ret = gst_collect_pads_query_default (pads, data, query, FALSE); break; } return ret; }
static gboolean gst_adder_sink_query (GstCollectPads * pads, GstCollectData * pad, GstQuery * query, gpointer user_data) { gboolean res = FALSE; switch (GST_QUERY_TYPE (query)) { case GST_QUERY_CAPS: { GstCaps *filter, *caps; gst_query_parse_caps (query, &filter); caps = gst_adder_sink_getcaps (pad->pad, filter); gst_query_set_caps_result (query, caps); gst_caps_unref (caps); res = TRUE; break; } default: res = gst_collect_pads_query_default (pads, pad, query, FALSE); break; } return res; }
static gboolean gst_frei0r_mixer_sink_query (GstCollectPads * pads, GstCollectData * cdata, GstQuery * query, GstFrei0rMixer * self) { gboolean ret = TRUE; switch (GST_QUERY_TYPE (query)) { case GST_QUERY_CAPS: { GstCaps *filter, *caps; gst_query_parse_caps (query, &filter); caps = gst_frei0r_mixer_get_caps (self, cdata->pad, filter); gst_query_set_caps_result (query, caps); gst_caps_unref (caps); break; } default: ret = gst_collect_pads_query_default (pads, cdata, query, FALSE); break; } return ret; }