baseparse: Return template caps instead of other side's peer caps if get_sink_caps vfunc is not implemented

Using gst_pad_proxy_get_caps() breaks backwards compatibility with old
parsers because it will propagate the other side's fields like "parsed"
and "framed" and also breaks parser/converters.

Fixes bug #664221.
This commit is contained in:
Sebastian Dröge 2011-11-23 13:42:56 +01:00
parent c0d5857cd9
commit aa9ba2dd4e

View file

@ -3994,13 +3994,12 @@ gst_base_parse_sink_getcaps (GstPad * pad)
if (klass->get_sink_caps)
caps = klass->get_sink_caps (parse);
else
caps = gst_pad_proxy_getcaps (pad);
caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
gst_object_unref (parse);
GST_LOG_OBJECT (parse, "sink getcaps returning caps %" GST_PTR_FORMAT, caps);
return caps;
}
static void