From: David Schleef Date: Fri, 12 Apr 2013 21:07:31 +0000 (-0700) Subject: element-templates: Add helper code to transform_caps X-Git-Tag: 1.19.3~507^2~13829 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12a4ff1100db8e8e27a7890b0791e930c05684bb;p=platform%2Fupstream%2Fgstreamer.git element-templates: Add helper code to transform_caps --- diff --git a/tools/element-templates/basetransform b/tools/element-templates/basetransform index 24217964d8..0be449ca22 100644 --- a/tools/element-templates/basetransform +++ b/tools/element-templates/basetransform @@ -79,10 +79,32 @@ gst_replace_transform_caps (GstBaseTransform * trans, GstPadDirection direction, GstCaps * caps, GstCaps * filter) { GstReplace *replace = GST_REPLACE (trans); + GstCaps *othercaps; GST_DEBUG_OBJECT (replace, "transform_caps"); - return NULL; + othercaps = gst_caps_copy (caps); + + /* Copy other caps and modify as appropriate */ + /* This works for the simplest cases, where the transform modifies one + * or more fields in the caps structure. It does not work correctly + * if passthrough caps are preferred. */ + if (direction == GST_PAD_SRC) { + /* transform caps going upstream */ + } else { + /* transform caps going downstream */ + } + + if (filter) { + GstCaps *intersect; + + intersect = gst_caps_intersect (othercaps, filter); + gst_caps_unref (othercaps); + + return intersect; + } else { + return othercaps; + } } static GstCaps *