return result;
}
+static gboolean
+gst_video_convert_filter_meta (GstBaseTransform * trans, GstQuery * query,
+ GType api)
+{
+ /* propose all metadata upstream */
+ return TRUE;
+}
+
/* The caps can be transformed into any other caps with format info removed.
* However, we should prefer passthrough, so if passthrough is possible,
* put it first in the list. */
return result;
}
+static gboolean
+gst_video_convert_transform_meta (GstBaseTransform * trans, GstBuffer * outbuf,
+ GstMeta * meta, GstBuffer * inbuf)
+{
+ const GstMetaInfo *info = meta->info;
+ gboolean ret;
+
+ if (gst_meta_api_type_has_tag (info->api, _colorspace_quark)) {
+ /* don't copy colorspace specific metadata, FIXME, we need a MetaTransform
+ * for the colorspace metadata. */
+ ret = FALSE;
+ } else {
+ /* copy other metadata */
+ ret = TRUE;
+ }
+ return ret;
+}
+
static gboolean
gst_video_convert_set_info (GstVideoFilter * filter,
GstCaps * incaps, GstVideoInfo * in_info, GstCaps * outcaps,
GST_DEBUG_FUNCPTR (gst_video_convert_transform_caps);
gstbasetransform_class->fixate_caps =
GST_DEBUG_FUNCPTR (gst_video_convert_fixate_caps);
+ gstbasetransform_class->filter_meta =
+ GST_DEBUG_FUNCPTR (gst_video_convert_filter_meta);
+ gstbasetransform_class->transform_meta =
+ GST_DEBUG_FUNCPTR (gst_video_convert_transform_meta);
gstbasetransform_class->passthrough_on_same_caps = TRUE;