static void ges_effect_class_init (GESEffectClass * klass) { GObjectClass *object_class; GESTrackElementClass *obj_bg_class; object_class = G_OBJECT_CLASS (klass); obj_bg_class = GES_TRACK_ELEMENT_CLASS (klass); g_type_class_add_private (klass, sizeof (GESEffectPrivate)); object_class->get_property = ges_effect_get_property; object_class->set_property = ges_effect_set_property; object_class->dispose = ges_effect_dispose; object_class->finalize = ges_effect_finalize; obj_bg_class->create_element = ges_effect_create_element; /** * GESEffect:bin-description: * * The description of the effect bin with a gst-launch-style * pipeline description. * * Example: "videobalance saturation=1.5 hue=+0.5" */ g_object_class_install_property (object_class, PROP_BIN_DESCRIPTION, g_param_spec_string ("bin-description", "bin description", "Bin description of the effect", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); }
static void ges_video_test_source_class_init (GESVideoTestSourceClass * klass) { GESTrackElementClass *track_element_class = GES_TRACK_ELEMENT_CLASS (klass); g_type_class_add_private (klass, sizeof (GESVideoTestSourcePrivate)); track_element_class->create_element = ges_video_test_source_create_element; }
static void ges_operation_class_init (GESOperationClass * klass) { GESTrackElementClass *track_class = GES_TRACK_ELEMENT_CLASS (klass); g_type_class_add_private (klass, sizeof (GESOperationPrivate)); track_class->gnlobject_factorytype = "gnloperation"; }
static void ges_source_class_init (GESSourceClass * klass) { GESTrackElementClass *track_class = GES_TRACK_ELEMENT_CLASS (klass); g_type_class_add_private (klass, sizeof (GESSourcePrivate)); track_class->gnlobject_factorytype = "gnlsource"; track_class->create_element = NULL; }
static void ges_title_source_class_init (GESTitleSourceClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GESTrackElementClass *bg_class = GES_TRACK_ELEMENT_CLASS (klass); g_type_class_add_private (klass, sizeof (GESTitleSourcePrivate)); object_class->get_property = ges_title_source_get_property; object_class->set_property = ges_title_source_set_property; object_class->dispose = ges_title_source_dispose; bg_class->create_element = ges_title_source_create_element; }
static void ges_title_source_class_init (GESTitleSourceClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GESVideoSourceClass *source_class = GES_VIDEO_SOURCE_CLASS (klass); GESTrackElementClass *track_element_class = GES_TRACK_ELEMENT_CLASS (klass); g_type_class_add_private (klass, sizeof (GESTitleSourcePrivate)); object_class->get_property = ges_title_source_get_property; object_class->set_property = ges_title_source_set_property; object_class->dispose = ges_title_source_dispose; track_element_class->lookup_child = _lookup_child; source_class->create_source = ges_title_source_create_source; }
static gboolean _lookup_child (GESTrackElement * object, const gchar * prop_name, GstElement ** element, GParamSpec ** pspec) { gboolean res; gchar *clean_name; if (!g_strcmp0 (prop_name, "background")) clean_name = g_strdup ("foreground-color"); else if (!g_strcmp0 (prop_name, "GstTextOverlay:background")) clean_name = g_strdup ("foreground-color"); else clean_name = g_strdup (prop_name); res = GES_TRACK_ELEMENT_CLASS (ges_title_source_parent_class)->lookup_child (object, clean_name, element, pspec); g_free (clean_name); return res; }