bayer2rgb: take into account filter in transform_caps function

Fixes criticals when filter caps are passed.

Also fix wrong GST_DEBUG_OBJECT use.

https://bugzilla.gnome.org/show_bug.cgi?id=741863
This commit is contained in:
Tim-Philipp Müller 2014-12-22 16:45:05 +00:00
parent 5dd1dfdadc
commit 68d4616ac8

View file

@ -286,7 +286,7 @@ gst_bayer2rgb_transform_caps (GstBaseTransform * base,
GstCaps *newcaps;
GstStructure *newstruct;
GST_DEBUG_OBJECT (caps, "transforming caps (from)");
GST_DEBUG_OBJECT (base, "transforming caps from %" GST_PTR_FORMAT, caps);
structure = gst_caps_get_structure (caps, 0);
@ -305,7 +305,17 @@ gst_bayer2rgb_transform_caps (GstBaseTransform * base,
gst_structure_set_value (newstruct, "framerate",
gst_structure_get_value (structure, "framerate"));
GST_DEBUG_OBJECT (newcaps, "transforming caps (into)");
if (filter != NULL) {
GstCaps *icaps;
GST_DEBUG_OBJECT (base, " filter %" GST_PTR_FORMAT, filter);
icaps = gst_caps_intersect_full (filter, newcaps, GST_CAPS_INTERSECT_FIRST);
gst_caps_unref (newcaps);
newcaps = icaps;
}
GST_DEBUG_OBJECT (base, " into %" GST_PTR_FORMAT, newcaps);
return newcaps;
}