From 5b7d9e1954e58abd64d7d133d94fb67aef94d507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 15 Jan 2015 10:51:37 +0100 Subject: [PATCH] audio: Keep caps features when building the downstream filter Based on 5fd4e3e0b6cc4f30d7b1489a105db946b43f1a9f for video by Alessandro Decina. --- gst-libs/gst/audio/gstaudioutilsprivate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/audio/gstaudioutilsprivate.c b/gst-libs/gst/audio/gstaudioutilsprivate.c index 5d0676b852..870bcd6b37 100644 --- a/gst-libs/gst/audio/gstaudioutilsprivate.c +++ b/gst-libs/gst/audio/gstaudioutilsprivate.c @@ -41,11 +41,13 @@ __gst_audio_element_proxy_caps (GstElement * element, GstCaps * templ_caps, for (i = 0; i < templ_caps_size; i++) { GQuark q_name = gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i)); + GstCapsFeatures *features = gst_caps_get_features (templ_caps, i); for (j = 0; j < caps_size; j++) { const GstStructure *caps_s = gst_caps_get_structure (caps, j); const GValue *val; GstStructure *s; + GstCaps *tmp = gst_caps_new_empty (); s = gst_structure_new_id_empty (q_name); if ((val = gst_structure_get_value (caps_s, "rate"))) @@ -55,7 +57,9 @@ __gst_audio_element_proxy_caps (GstElement * element, GstCaps * templ_caps, if ((val = gst_structure_get_value (caps_s, "channels-mask"))) gst_structure_set_value (s, "channels-mask", val); - result = gst_caps_merge_structure (result, s); + gst_caps_append_structure_full (tmp, s, + gst_caps_features_copy (features)); + result = gst_caps_merge (result, tmp); } }