G_OBJECT_CLASS (ges_smart_mixer_parent_class)->finalize (object);
}
+static void
+ges_smart_mixer_constructed (GObject * obj)
+{
+ GstPad *pad;
+
+ GESSmartMixer *self = GES_SMART_MIXER (obj);
+ gchar *cname = g_strdup_printf ("%s-compositor", GST_OBJECT_NAME (self));
+
+ self->mixer =
+ gst_element_factory_create (ges_get_compositor_factory (), cname);
+ g_free (cname);
+ g_object_set (self->mixer, "background", 1, NULL);
+ gst_bin_add (GST_BIN (self), self->mixer);
+
+ pad = gst_element_get_static_pad (self->mixer, "src");
+ self->srcpad = gst_ghost_pad_new ("src", pad);
+ gst_pad_set_active (self->srcpad, TRUE);
+ gst_object_unref (pad);
+ gst_element_add_pad (GST_ELEMENT (self), self->srcpad);
+}
+
+
static void
ges_smart_mixer_class_init (GESSmartMixerClass * klass)
{
object_class->dispose = ges_smart_mixer_dispose;
object_class->finalize = ges_smart_mixer_finalize;
+ object_class->constructed = ges_smart_mixer_constructed;
}
static void
ges_smart_mixer_init (GESSmartMixer * self)
{
- GstPad *pad;
g_mutex_init (&self->lock);
-
- self->mixer = gst_element_factory_create (ges_get_compositor_factory (),
- "smart-mixer-mixer");
- g_object_set (self->mixer, "background", 1, NULL);
- gst_bin_add (GST_BIN (self), self->mixer);
-
- pad = gst_element_get_static_pad (self->mixer, "src");
- self->srcpad = gst_ghost_pad_new ("src", pad);
- gst_pad_set_active (self->srcpad, TRUE);
- gst_object_unref (pad);
- gst_element_add_pad (GST_ELEMENT (self), self->srcpad);
-
self->pads_infos = g_hash_table_new_full (g_direct_hash, g_direct_equal,
NULL, (GDestroyNotify) destroy_pad);
}