GESTimeline * overlayTL (void) { GESTimeline *timeline; GESLayer *layer, *layer2; timeline = ges_timeline_new_video (); layer = ges_layer_new (); layer2 = ges_layer_new (); ges_layer_set_priority (layer2, 1); guint prio1 = ges_layer_get_priority (layer); guint prio2 = ges_layer_get_priority (layer2); g_object_set (layer, "auto-transition", TRUE, NULL); g_print ("prios %d %d\n", prio1, prio2); ges_timeline_add_layer (timeline, layer); ges_timeline_add_layer (timeline, layer2); ges_clip_unknown_from_rel_path ("image/PNG_transparency_demonstration_1.png", layer, 0, 0, 10); ges_clip_unknown_from_rel_path ("hd/fluidsimulation.mp4", layer2, 0, 0, 10); ges_timeline_commit (timeline); return timeline; }
void ges_base_xml_formatter_add_layer (GESBaseXmlFormatter * self, GType extractable_type, guint priority, GstStructure * properties, const gchar * metadatas, GError ** error) { LayerEntry *entry; GESAsset *asset; GESLayer *layer; gboolean auto_transition = FALSE; GESBaseXmlFormatterPrivate *priv = _GET_PRIV (self); if (priv->check_only) return; if (extractable_type == G_TYPE_NONE) layer = ges_layer_new (); else { asset = ges_asset_request (extractable_type, NULL, error); if (asset == NULL) { if (error && *error == NULL) { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, "Layer type %s could not be created'", g_type_name (extractable_type)); return; } } layer = GES_LAYER (ges_asset_extract (asset, error)); } ges_layer_set_priority (layer, priority); ges_timeline_add_layer (GES_FORMATTER (self)->timeline, layer); if (properties) { if (gst_structure_get_boolean (properties, "auto-transition", &auto_transition)) gst_structure_remove_field (properties, "auto-transition"); gst_structure_foreach (properties, (GstStructureForeachFunc) set_property_foreach, layer); } if (metadatas) ges_meta_container_add_metas_from_string (GES_META_CONTAINER (layer), metadatas); entry = g_slice_new0 (LayerEntry); entry->layer = gst_object_ref (layer); entry->auto_trans = auto_transition; g_hash_table_insert (priv->layers, GINT_TO_POINTER (priority), entry); }
static void ges_layer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { GESLayer *layer = GES_LAYER (object); switch (property_id) { case PROP_PRIORITY: ges_layer_set_priority (layer, g_value_get_uint (value)); break; case PROP_AUTO_TRANSITION: ges_layer_set_auto_transition (layer, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } }