};
-#define DEBUG_INIT(bla) \
- GST_DEBUG_CATEGORY_INIT (gst_tag_inject_debug, "taginject", 0, "tag inject element");
-
-GST_BOILERPLATE_FULL (GstTagInject, gst_tag_inject, GstBaseTransform,
- GST_TYPE_BASE_TRANSFORM, DEBUG_INIT);
+#define gst_tag_inject_parent_class parent_class
+G_DEFINE_TYPE (GstTagInject, gst_tag_inject, GST_TYPE_BASE_TRANSFORM);
static void gst_tag_inject_finalize (GObject * object);
static void gst_tag_inject_set_property (GObject * object, guint prop_id,
static void
-gst_tag_inject_base_init (gpointer g_class)
-{
- GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
-
- gst_element_class_set_details_simple (gstelement_class,
- "TagInject",
- "Generic", "inject metadata tags", "Stefan Kost <ensonic@users.sf.net>");
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&srctemplate));
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&sinktemplate));
-}
-
-static void
gst_tag_inject_finalize (GObject * object)
{
GstTagInject *self = GST_TAG_INJECT (object);
gst_tag_inject_class_init (GstTagInjectClass * klass)
{
GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
GstBaseTransformClass *gstbasetrans_class;
gobject_class = G_OBJECT_CLASS (klass);
+ gstelement_class = GST_ELEMENT_CLASS (klass);
gstbasetrans_class = GST_BASE_TRANSFORM_CLASS (klass);
+ GST_DEBUG_CATEGORY_INIT (gst_tag_inject_debug, "taginject", 0,
+ "tag inject element");
+
gobject_class->set_property = gst_tag_inject_set_property;
gobject_class->get_property = gst_tag_inject_get_property;
gobject_class->finalize = gst_tag_inject_finalize;
+ gst_element_class_set_details_simple (gstelement_class,
+ "TagInject",
+ "Generic", "inject metadata tags", "Stefan Kost <ensonic@users.sf.net>");
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&srctemplate));
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&sinktemplate));
+
gstbasetrans_class->transform_ip =
GST_DEBUG_FUNCPTR (gst_tag_inject_transform_ip);
}
static void
-gst_tag_inject_init (GstTagInject * self, GstTagInjectClass * g_class)
+gst_tag_inject_init (GstTagInject * self)
{
GstBaseTransform *trans = GST_BASE_TRANSFORM (self);
/* send tags */
if (self->tags && !gst_tag_list_is_empty (self->tags)) {
GST_DEBUG ("tag event :%" GST_PTR_FORMAT, self->tags);
- gst_element_found_tags (GST_ELEMENT (trans),
- gst_tag_list_copy (self->tags));
+ gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (trans),
+ gst_event_new_tag (gst_tag_list_copy (self->tags)));
}
}
case PROP_TAGS:{
gchar *structure =
g_strdup_printf ("taglist,%s", g_value_get_string (value));
- if (!(self->tags = gst_structure_from_string (structure, NULL))) {
+ if (!(self->tags = gst_tag_list_new_from_string (structure))) {
GST_WARNING ("unparsable taglist = '%s'", structure);
}