GstBuffer * inbuf, GstBuffer ** outbuf);
static gboolean default_copy_metadata (GstBaseTransform * trans,
GstBuffer * inbuf, GstBuffer * outbuf);
+static gboolean
+gst_base_transform_default_transform_meta (GstBaseTransform * trans,
+ GstBuffer * inbuf, GstMeta * meta, GstBuffer * outbuf);
/* static guint gst_base_transform_signals[LAST_SIGNAL] = { 0 }; */
GST_DEBUG_FUNCPTR (gst_base_transform_default_propose_allocation);
klass->transform_size =
GST_DEBUG_FUNCPTR (gst_base_transform_default_transform_size);
+ klass->transform_meta =
+ GST_DEBUG_FUNCPTR (gst_base_transform_default_transform_meta);
klass->sink_event = GST_DEBUG_FUNCPTR (gst_base_transform_sink_eventfunc);
klass->src_event = GST_DEBUG_FUNCPTR (gst_base_transform_src_eventfunc);
}
static gboolean
+gst_base_transform_default_transform_meta (GstBaseTransform * trans,
+ GstBuffer * inbuf, GstMeta * meta, GstBuffer * outbuf)
+{
+ const GstMetaInfo *info = meta->info;
+ const gchar *const *tags;
+
+ tags = gst_meta_api_type_get_tags (info->api);
+
+ if (!tags)
+ return TRUE;
+
+ return FALSE;
+}
+
+static gboolean
gst_base_transform_default_transform_size (GstBaseTransform * trans,
GstPadDirection direction, GstCaps * caps, gsize size,
GstCaps * othercaps, gsize * othersize)
GstBaseTransformClass *klass;
const GstMetaInfo *info = (*meta)->info;
GstBuffer *outbuf = data->outbuf;
- gboolean do_copy;
+ gboolean do_copy = FALSE;
klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
do_copy = klass->transform_meta (trans, outbuf, *meta, inbuf);
GST_DEBUG_OBJECT (trans, "transformed metadata %s: copy: %d",
g_type_name (info->api), do_copy);
- } else {
- do_copy = FALSE;
- GST_DEBUG_OBJECT (trans, "not copying metadata %s",
- g_type_name (info->api));
}
/* we only copy metadata when the subclass implemented a transform_meta