playsinkconvertbin: only intersect with the filter at the end

Otherwise we might change some capsfeatures from ANY to the specific
value from the filter and do not filter those out in case the
sink doesn't support them

https://bugzilla.gnome.org/show_bug.cgi?id=734822
This commit is contained in:
Thiago Santos 2014-08-14 16:57:01 -03:00
parent dcf8c3e8b0
commit 98ed3ddc8f

View file

@ -420,8 +420,6 @@ gst_play_sink_convert_bin_getcaps (GstPad * pad, GstCaps * filter)
GstStructure *s;
guint i, n;
GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, converter_caps);
ret = gst_caps_make_writable (peer_caps);
/* Filter out ANY capsfeatures from the converter caps. We can't
@ -443,12 +441,12 @@ gst_play_sink_convert_bin_getcaps (GstPad * pad, GstCaps * filter)
gst_caps_unref (converter_caps);
} else {
ret = peer_caps;
GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, ret);
}
} else {
ret = gst_caps_ref (self->converter_caps);
GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, ret);
}
GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, ret);
} else {
ret = filter ? gst_caps_ref (filter) : gst_caps_new_any ();
}