diff options
Diffstat (limited to 'girs/GES-1.0.gir')
-rw-r--r-- | girs/GES-1.0.gir | 16285 |
1 files changed, 16285 insertions, 0 deletions
diff --git a/girs/GES-1.0.gir b/girs/GES-1.0.gir new file mode 100644 index 0000000000..f39d227f51 --- /dev/null +++ b/girs/GES-1.0.gir @@ -0,0 +1,16285 @@ +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2"> + <include name="GObject" version="2.0"/> + <include name="Gio" version="2.0"/> + <include name="Gst" version="1.0"/> + <include name="GstPbutils" version="1.0"/> + <include name="GstVideo" version="1.0"/> + <package name="gst-editing-services-1.0"/> + <c:include name="ges/ges.h"/> + <namespace name="GES" version="1.0" shared-library="libges-1.0.so.0" c:identifier-prefixes="GES" c:symbol-prefixes="ges"> + <alias name="FrameNumber" c:type="GESFrameNumber"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-types.h">A datatype to hold a frame number.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint64" c:type="gint64"/> + </alias> + <class name="Asset" c:symbol-prefix="asset" c:type="GESAsset" parent="GObject.Object" glib:type-name="GESAsset" glib:get-type="ges_asset_get_type" glib:type-struct="AssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset in the GStreamer Editing Services represents a resources +that can be used. In particular, any class that implements the +#GESExtractable interface may have some associated assets with a +corresponding #GESAsset:extractable-type, from which its objects can be +extracted using ges_asset_extract(). Some examples would be +#GESClip, #GESFormatter and #GESTrackElement. + +All assets that are created within GES are stored in a cache; one per +each #GESAsset:id and #GESAsset:extractable-type pair. These assets can +be fetched, and initialized if they do not yet exist in the cache, +using ges_asset_request(). + +``` c +GESAsset *effect_asset; +GESEffect *effect; + +// You create an asset for an effect +effect_asset = ges_asset_request (GES_TYPE_EFFECT, "agingtv", NULL); + +// And now you can extract an instance of GESEffect from that asset +effect = GES_EFFECT (ges_asset_extract (effect_asset)); + +``` + +The advantage of using assets, rather than simply creating the object +directly, is that the currently loaded resources can be listed with +ges_list_assets() and displayed to an end user. For example, to show +which media files have been loaded, and a standard list of effects. In +fact, the GES library already creates assets for #GESTransitionClip and +#GESFormatter, which you can use to list all the available transition +types and supported formats. + +The other advantage is that #GESAsset implements #GESMetaContainer, so +metadata can be set on the asset, with some subclasses automatically +creating this metadata on initiation. + +For example, to display information about the supported formats, you +could do the following: +|[ + GList *formatter_assets, *tmp; + + // List all the transitions + formatter_assets = ges_list_assets (GES_TYPE_FORMATTER); + + // Print some infos about the formatter GESAsset + for (tmp = formatter_assets; tmp; tmp = tmp->next) { + gst_print ("Name of the formatter: %s, file extension it produces: %s", + ges_meta_container_get_string ( + GES_META_CONTAINER (tmp->data), GES_META_FORMATTER_NAME), + ges_meta_container_get_string ( + GES_META_CONTAINER (tmp->data), GES_META_FORMATTER_EXTENSION)); + } + + g_list_free (transition_assets); + +]| + +## ID + +Each asset is uniquely defined in the cache by its +#GESAsset:extractable-type and #GESAsset:id. Depending on the +#GESAsset:extractable-type, the #GESAsset:id can be used to parametrise +the creation of the object upon extraction. By default, a class that +implements #GESExtractable will only have a single associated asset, +with an #GESAsset:id set to the type name of its objects. However, this +is overwritten by some implementations, which allow a class to have +multiple associated assets. For example, for #GESTransitionClip the +#GESAsset:id will be a nickname of the #GESTransitionClip:vtype. You +should check the documentation for each extractable type to see if they +differ from the default. + +Moreover, each #GESAsset:extractable-type may also associate itself +with a specific asset subclass. In such cases, when their asset is +requested, an asset of this subclass will be returned instead. + +## Managing + +You can use a #GESProject to easily manage the assets of a +#GESTimeline. + +## Proxies + +Some assets can (temporarily) act as the #GESAsset:proxy of another +asset. When the original asset is requested from the cache, the proxy +will be returned in its place. This can be useful if, say, you want +to substitute a #GESUriClipAsset corresponding to a high resolution +media file with the asset of a lower resolution stand in. + +An asset may even have several proxies, the first of which will act as +its default and be returned on requests, but the others will be ordered +to take its place once it is removed. You can add a proxy to an asset, +or set its default, using ges_asset_set_proxy(), and you can remove +them with ges_asset_unproxy().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <function name="needs_reload" c:identifier="ges_asset_needs_reload"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Indicate that an existing #GESAsset in the cache should be reloaded +upon the next request. This can be used when some condition has +changed, which may require that an existing asset should be updated. +For example, if an external resource has changed or now become +available. + +Note, the asset is not immediately changed, but will only actually +reload on the next call to ges_asset_request() or +ges_asset_request_async().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">%TRUE if the specified asset exists in the cache and could be +marked for reloading.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:extractable-type of the asset that +needs reloading</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:id of the asset asset that needs +reloading</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="request" c:identifier="ges_asset_request" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Returns an asset with the given properties. If such an asset already +exists in the cache (it has been previously created in GES), then a +reference to the existing asset is returned. Otherwise, a newly created +asset is returned, and also added to the cache. + +If the requested asset has been loaded with an error, then @error is +set, if given, and %NULL will be returned instead. + +Note that the given @id may not be exactly the #GESAsset:id that is +set on the returned asset. For instance, it may be adjusted into a +standard format. Or, if a #GESExtractable type does not have its +extraction parametrised, as is the case by default, then the given @id +may be ignored entirely and the #GESAsset:id set to some standard, in +which case a %NULL @id can be given. + +Similarly, the given @extractable_type may not be exactly the +#GESAsset:extractable-type that is set on the returned asset. Instead, +the actual extractable type may correspond to a subclass of the given +@extractable_type, depending on the given @id. + +Moreover, depending on the given @extractable_type, the returned asset +may belong to a subclass of #GESAsset. + +Finally, if the requested asset has a #GESAsset:proxy, then the proxy +that is found at the end of the chain of proxies is returned (a proxy's +proxy will take its place, and so on, unless it has no proxy). + +Some asset subclasses only support asynchronous construction of its +assets, such as #GESUriClip. For such assets this method will fail, and +you should use ges_asset_request_async() instead. In the case of +#GESUriClip, you can use ges_uri_clip_asset_request_sync() if you only +want to wait for the request to finish.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A reference to the requested +asset, or %NULL if an error occurred.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:extractable-type of the asset</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:id of the asset</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="request_async" c:identifier="ges_asset_request_async"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Requests an asset with the given properties asynchronously (see +ges_asset_request()). When the asset has been initialized or fetched +from the cache, the given callback function will be called. The +asset can then be retrieved in the callback using the +ges_asset_request_finish() method on the given #GAsyncResult. + +Note that the source object passed to the callback will be the +#GESAsset corresponding to the request, but it may not have loaded +correctly and therefore can not be used as is. Instead, +ges_asset_request_finish() should be used to fetch a usable asset, or +indicate that an error occurred in the asset's creation. + +Note that the callback will be called in the #GMainLoop running under +the same #GMainContext that ges_init() was called in. So, if you wish +the callback to be invoked outside the default #GMainContext, you can +call g_main_context_push_thread_default() in a new thread before +calling ges_init(). + +Example of an asynchronous asset request: +``` c +// The request callback +static void +asset_loaded_cb (GESAsset * source, GAsyncResult * res, gpointer user_data) +{ + GESAsset *asset; + GError *error = NULL; + + asset = ges_asset_request_finish (res, &error); + if (asset) { + gst_print ("The file: %s is usable as a GESUriClip", + ges_asset_get_id (asset)); + } else { + gst_print ("The file: %s is *not* usable as a GESUriClip because: %s", + ges_asset_get_id (source), error->message); + } + + gst_object_unref (asset); +} + +// The request: +ges_asset_request_async (GES_TYPE_URI_CLIP, some_uri, NULL, + (GAsyncReadyCallback) asset_loaded_cb, user_data); +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:extractable-type of the asset</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset:id of the asset</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">An object to allow cancellation of the +asset request, or %NULL to ignore</doc> + <type name="Gio.Cancellable" c:type="GCancellable*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="4"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A function to call when the initialization is finished</doc> + <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Data to be passed to @callback</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="request_finish" c:identifier="ges_asset_request_finish" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Fetches an asset requested by ges_asset_request_async(), which +finalises the request.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The requested asset, or %NULL if an error +occurred.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <parameter name="res" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The task result to fetch the asset from</doc> + <type name="Gio.AsyncResult" c:type="GAsyncResult*"/> + </parameter> + </parameters> + </function> + <virtual-method name="extract" invoker="extract" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Extracts a new #GESAsset:extractable-type object from the asset. The +#GESAsset:id of the asset may determine the properties and state of the +newly created object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A newly created object, or %NULL if an +error occurred.</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to extract an object from</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="inform_proxy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy_id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="proxied"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="request_id_update"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proposed_new_id" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start_loading" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="AssetLoadingReturn" c:type="GESAssetLoadingReturn"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="extract" c:identifier="ges_asset_extract" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Extracts a new #GESAsset:extractable-type object from the asset. The +#GESAsset:id of the asset may determine the properties and state of the +newly created object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A newly created object, or %NULL if an +error occurred.</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to extract an object from</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_error" c:identifier="ges_asset_get_error" version="1.8"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Retrieve the error that was set on the asset when it was loaded.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The error set on @asset, or +%NULL if no error occurred when @asset was loaded.</doc> + <type name="GLib.Error" c:type="GError*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_extractable_type" c:identifier="ges_asset_get_extractable_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the #GESAsset:extractable-type of the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The extractable type of @self.</doc> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_id" c:identifier="ges_asset_get_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the #GESAsset:id of the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The ID of @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_proxy" c:identifier="ges_asset_get_proxy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the default #GESAsset:proxy of the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The default proxy of @asset.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_proxy_target" c:identifier="ges_asset_get_proxy_target"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Gets the #GESAsset:proxy-target of the asset. + +Note that the proxy target may have loaded with an error, so you should +call ges_asset_get_error() on the returned target.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The asset that @proxy is a proxy +of.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="proxy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_proxies" c:identifier="ges_asset_list_proxies"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Get all the proxies that the asset has. The first item of the list will +be the default #GESAsset:proxy. The second will be the proxy that is +'next in line' to be default, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The list of proxies +that @asset has.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A #GESAsset</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_proxy" c:identifier="ges_asset_set_proxy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Sets the #GESAsset:proxy for the asset. + +If @proxy is among the existing proxies of the asset (see +ges_asset_list_proxies()) it will be moved to become the default +proxy. Otherwise, if @proxy is not %NULL, it will be added to the list +of proxies, as the new default. The previous default proxy will become +'next in line' for if the new one is removed, and so on. As such, this +will **not** actually remove the previous default proxy (use +ges_asset_unproxy() for that). + +Note that an asset can only act as a proxy for one other asset. + +As a special case, if @proxy is %NULL, then this method will actually +remove **all** proxies from the asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">%TRUE if @proxy was successfully set as the default for +@asset.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to proxy</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A new default proxy for @asset</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="unproxy" c:identifier="ges_asset_unproxy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">Removes the proxy from the available list of proxies for the asset. If +the given proxy is the default proxy of the list, then the next proxy +in the available list (see ges_asset_list_proxies()) will become the +default. If there are no other proxies, then the asset will no longer +have a default #GESAsset:proxy.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">%TRUE if @proxy was successfully removed from @asset's proxy +list.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to no longer proxy with @proxy</doc> + <type name="Asset" c:type="GESAsset*"/> + </instance-parameter> + <parameter name="proxy" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">An existing proxy of @asset</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <property name="extractable-type" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESExtractable object type that can be extracted from the asset.</doc> + <type name="GType" c:type="GType"/> + </property> + <property name="id" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The ID of the asset. This should be unique amongst all assets with +the same #GESAsset:extractable-type. Depending on the associated +#GESExtractable implementation, this id may convey some information +about the #GObject that should be extracted. Note that, as such, the +ID will have an expected format, and you can not choose this value +arbitrarily. By default, this will be set to the type name of the +#GESAsset:extractable-type, but you should check the documentation +of the extractable type to see whether they differ from the +default behaviour.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="proxy" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The default proxy for this asset, or %NULL if it has no proxy. A +proxy will act as a substitute for the original asset when the +original is requested (see ges_asset_request()). + +Setting this property will not usually remove the existing proxy, but +will replace it as the default (see ges_asset_set_proxy()).</doc> + <type name="Asset"/> + </property> + <property name="proxy-target" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The asset that this asset is a proxy for, or %NULL if it is not a +proxy for another asset. + +Note that even if this asset is acting as a proxy for another asset, +but this asset is not the default #GESAsset:proxy, then @proxy-target +will *still* point to this other asset. So you should check the +#GESAsset:proxy property of @target-proxy before assuming it is the +current default proxy for the target. + +Note that the #GObject::notify for this property is emitted after +the #GESAsset:proxy #GObject::notify for the corresponding (if any) +asset it is now the proxy of/no longer the proxy of.</doc> + <type name="Asset"/> + </property> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AssetPrivate" c:type="GESAssetPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AssetClass" c:type="GESAssetClass" glib:is-gtype-struct-for="Asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <field name="parent"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="start_loading"> + <callback name="start_loading" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="AssetLoadingReturn" c:type="GESAssetLoadingReturn"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="extract"> + <callback name="extract" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A newly created object, or %NULL if an +error occurred.</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The #GESAsset to extract an object from</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="inform_proxy"> + <callback name="inform_proxy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="proxy_id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="proxied"> + <callback name="proxied"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="proxy" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="request_id_update"> + <callback name="request_id_update"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="proposed_new_id" transfer-ownership="none"> + <type name="utf8" c:type="gchar**"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <enumeration name="AssetLoadingReturn" c:type="GESAssetLoadingReturn"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <member name="error" value="0" c:identifier="GES_ASSET_LOADING_ERROR"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.h">Indicates that an error occurred</doc> + </member> + <member name="async" value="1" c:identifier="GES_ASSET_LOADING_ASYNC"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.h">Indicates that the loading is being performed +asynchronously</doc> + </member> + <member name="ok" value="2" c:identifier="GES_ASSET_LOADING_OK"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.h">Indicates that the loading is complete, without +error</doc> + </member> + </enumeration> + <record name="AssetPrivate" c:type="GESAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + </record> + <class name="AudioSource" c:symbol-prefix="audio_source" c:type="GESAudioSource" parent="Source" abstract="1" glib:type-name="GESAudioSource" glib:get-type="ges_audio_source_get_type" glib:type-struct="AudioSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-source.c">## Children Properties + +You can use the following children properties through the +#ges_track_element_set_child_property and alike set of methods: + +- #gdouble `volume`: volume factor, 1.0=100%. +- #gboolean `mute`: mute channel.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="Source" c:type="GESSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioSourcePrivate" c:type="GESAudioSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioSourceClass" c:type="GESAudioSourceClass" glib:is-gtype-struct-for="AudioSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClass" c:type="GESSourceClass"/> + </field> + <field name="create_source" introspectable="0"> + <callback name="create_source" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioSourcePrivate" c:type="GESAudioSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-source.h"/> + </record> + <class name="AudioTestSource" c:symbol-prefix="audio_test_source" c:type="GESAudioTestSource" parent="AudioSource" glib:type-name="GESAudioTestSource" glib:get-type="ges_audio_test_source_get_type" glib:type-struct="AudioTestSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Outputs a test audio stream using audiotestsrc. The default property values +output silence. Useful for testing pipelines, or to fill gaps in an audio +track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_freq" c:identifier="ges_audio_test_source_get_freq"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Get the current frequency of @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The current frequency of @self.</doc> + <type name="gdouble" c:type="double"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_volume" c:identifier="ges_audio_test_source_get_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Get the current volume of @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The current volume of @self</doc> + <type name="gdouble" c:type="double"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_freq" c:identifier="ges_audio_test_source_set_freq"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Lets you set the frequency applied on the track element</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + <parameter name="freq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The frequency you want to apply on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_volume" c:identifier="ges_audio_test_source_set_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">Sets the volume of the test audio signal.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">a #GESAudioTestSource</doc> + <type name="AudioTestSource" c:type="GESAudioTestSource*"/> + </instance-parameter> + <parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.c">The volume you want to apply on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="AudioSource" c:type="GESAudioSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioTestSourcePrivate" c:type="GESAudioTestSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioTestSourceClass" c:type="GESAudioTestSourceClass" glib:is-gtype-struct-for="AudioTestSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="AudioSourceClass" c:type="GESAudioSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioTestSourcePrivate" c:type="GESAudioTestSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-test-source.h"/> + </record> + <class name="AudioTrack" c:symbol-prefix="audio_track" c:type="GESAudioTrack" parent="Track" glib:type-name="GESAudioTrack" glib:get-type="ges_audio_track_get_type" glib:type-struct="AudioTrackClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-track.c">A #GESAudioTrack is a default audio #GESTrack, with a +#GES_TRACK_TYPE_AUDIO #GESTrack:track-type and "audio/x-raw(ANY)" +#GESTrack:caps. + +By default, an audio track will have its #GESTrack:restriction-caps +set to "audio/x-raw" with the following properties: + +- format: "S32LE" +- channels: 2 +- rate: 44100 +- layout: "interleaved" + +These fields are needed for negotiation purposes, but you can change +their values if you wish. It is advised that you do so using +ges_track_update_restriction_caps() with new values for the fields you +wish to change, and any additional fields you may want to add. Unlike +using ges_track_set_restriction_caps(), this will ensure that these +default fields will at least have some value set.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_audio_track_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-track.c">Creates a new audio track, with a #GES_TRACK_TYPE_AUDIO +#GESTrack:track-type, "audio/x-raw(ANY)" #GESTrack:caps, and +"audio/x-raw" #GESTrack:restriction-caps with the properties: + +- format: "S32LE" +- channels: 2 +- rate: 44100 +- layout: "interleaved" + +You should use ges_track_update_restriction_caps() if you wish to +modify these fields, or add additional ones.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-track.c">The newly created audio track.</doc> + <type name="AudioTrack" c:type="GESAudioTrack*"/> + </return-value> + </constructor> + <field name="parent_instance"> + <type name="Track" c:type="GESTrack"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioTrackPrivate" c:type="GESAudioTrackPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioTrackClass" c:type="GESAudioTrackClass" glib:is-gtype-struct-for="AudioTrack"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + <field name="parent_class"> + <type name="TrackClass" c:type="GESTrackClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioTrackPrivate" c:type="GESAudioTrackPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-track.h"/> + </record> + <class name="AudioTransition" c:symbol-prefix="audio_transition" c:type="GESAudioTransition" parent="Transition" glib:type-name="GESAudioTransition" glib:get-type="ges_audio_transition_get_type" glib:type-struct="AudioTransitionClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_audio_transition_new" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-transition.c">Creates a new #GESAudioTransition.</doc> + <doc-deprecated xml:space="preserve">This should never be called by applications as this will +be created by clips.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-transition.c">The newly created #GESAudioTransition.</doc> + <type name="AudioTransition" c:type="GESAudioTransition*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="Transition" c:type="GESTransition"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="AudioTransitionPrivate" c:type="GESAudioTransitionPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioTransitionClass" c:type="GESAudioTransitionClass" glib:is-gtype-struct-for="AudioTransition"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + <field name="parent_class"> + <type name="TransitionClass" c:type="GESTransitionClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioTransitionPrivate" c:type="GESAudioTransitionPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-transition.h"/> + </record> + <class name="AudioUriSource" c:symbol-prefix="audio_uri_source" c:type="GESAudioUriSource" parent="AudioSource" glib:type-name="GESAudioUriSource" glib:get-type="ges_audio_uri_source_get_type" glib:type-struct="AudioUriSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h">### Children Properties + + {{ libs/GESVideoUriSource-children-props.md }}</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="AudioSource" c:type="GESAudioSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriSource" c:type="GESUriSource*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="AudioUriSourceClass" c:type="GESAudioUriSourceClass" glib:is-gtype-struct-for="AudioUriSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="AudioSourceClass" c:type="GESAudioSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="AudioUriSourcePrivate" c:type="GESAudioUriSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-audio-uri-source.h"/> + </record> + <class name="BaseEffect" c:symbol-prefix="base_effect" c:type="GESBaseEffect" parent="Operation" abstract="1" glib:type-name="GESBaseEffect" glib:get-type="ges_base_effect_get_type" glib:type-struct="BaseEffectClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect is some operation that applies an effect to the data +it receives. + +## Time Effects + +Some operations will change the timing of the stream data they receive +in some way. In particular, the #GstElement that they wrap could alter +the times of the segment they receive in a #GST_EVENT_SEGMENT event, +or the times of a seek they receive in a #GST_EVENT_SEEK event. Such +operations would be considered time effects since they translate the +times they receive on their source to different times at their sink, +and vis versa. This introduces two sets of time coordinates for the +event: (internal) sink coordinates and (internal) source coordinates, +where segment times are translated from the sink coordinates to the +source coordinates, and seek times are translated from the source +coordinates to the sink coordinates. + +If you use such an effect in GES, you will need to inform GES of the +properties that control the timing with +ges_base_effect_register_time_property(), and the effect's timing +behaviour using ges_base_effect_set_time_translation_funcs(). + +Note that a time effect should not have its +#GESTrackElement:has-internal-source set to %TRUE. + +In addition, note that GES only *fully* supports time effects whose +mapping from the source to sink coordinates (those applied to seeks) +obeys: + ++ Maps the time `0` to `0`. So initial time-shifting effects are + excluded. ++ Is monotonically increasing. So reversing effects, and effects that + jump backwards in the stream are excluded. ++ Can handle a reasonable #GstClockTime, relative to the project. So + this would exclude a time effect with an extremely large speed-up + that would cause the converted #GstClockTime seeks to overflow. ++ Is 'continuously reversible'. This essentially means that for every + time in the sink coordinates, we can, to 'good enough' accuracy, + calculate the corresponding time in the source coordinates. Moreover, + this should correspond to how segment times are translated from + sink to source. ++ Only depends on the registered time properties, rather than the + state of the #GstElement or the data it receives. This would exclude, + say, an effect that would speedup if there is more red in the image + it receives. + +Note that a constant-rate-change effect that is not extremely fast or +slow would satisfy these conditions. For such effects, you may wish to +use ges_effect_class_register_rate_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="is_time_effect" c:identifier="ges_base_effect_is_time_effect" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Get whether the effect is considered a time effect or not. An effect +with registered time properties or set translation functions is +considered a time effect.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">%TRUE if @effect is considered a time effect.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </instance-parameter> + </parameters> + </method> + <method name="register_time_property" c:identifier="ges_base_effect_register_time_property" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Register a child property of the effect as a property that, when set, +can change the timing of its input data. The child property should be +specified as in ges_timeline_element_lookup_child(). + +You should also set the corresponding time translation using +ges_base_effect_set_time_translation_funcs(). + +Note that @effect must not be part of a clip, nor can it have +#GESTrackElement:has-internal-source set to %TRUE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">%TRUE if the child property was found and newly registered.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </instance-parameter> + <parameter name="child_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">The name of the child property to register as +a time property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_time_translation_funcs" c:identifier="ges_base_effect_set_time_translation_funcs" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Set the time translation query functions for the time effect. If an +effect is a time effect, it will have two sets of coordinates: one +at its sink and one at its source. The given functions should be able +to translate between these two sets of coordinates. More specifically, +@source_to_sink_func should *emulate* how the corresponding #GstElement +would translate the #GstSegment @time field, and @sink_to_source_func +should emulate how the corresponding #GstElement would translate the +seek query @start and @stop values, as used in gst_element_seek(). As +such, @sink_to_source_func should act as an approximate reverse of +@source_to_sink_func. + +Note, these functions will be passed a table of time properties, as +registered in ges_base_effect_register_time_property(), and their +values. The functions should emulate what the translation *would* be +*if* the time properties were set to the given values. They should not +use the currently set values. + +Note that @effect must not be part of a clip, nor can it have +#GESTrackElement:has-internal-source set to %TRUE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">%TRUE if the translation functions were set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">A #GESBaseEffect</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </instance-parameter> + <parameter name="source_to_sink_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">The function to use +for querying how a time is translated from the source coordinates to +the sink coordinates of @effect</doc> + <type name="BaseEffectTimeTranslationFunc" c:type="GESBaseEffectTimeTranslationFunc"/> + </parameter> + <parameter name="sink_to_source_func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">The function to use +for querying how a time is translated from the sink coordinates to the +source coordinates of @effect</doc> + <type name="BaseEffectTimeTranslationFunc" c:type="GESBaseEffectTimeTranslationFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" scope="notified"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Data to pass to both @source_to_sink_func and +@sink_to_source_func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + <parameter name="destroy" transfer-ownership="none" nullable="1" allow-none="1" scope="async" destroy="2"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.c">Method to call to destroy +@user_data, or %NULL</doc> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Operation" c:type="GESOperation"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseEffectPrivate" c:type="GESBaseEffectPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseEffectClass" c:type="GESBaseEffectClass" glib:is-gtype-struct-for="BaseEffect"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <field name="parent_class" readable="0" private="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">parent class</doc> + <type name="OperationClass" c:type="GESOperationClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="BaseEffectClip" c:symbol-prefix="base_effect_clip" c:type="GESBaseEffectClip" parent="OperationClip" abstract="1" glib:type-name="GESBaseEffectClip" glib:get-type="ges_base_effect_clip_get_type" glib:type-struct="BaseEffectClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.c">#GESBaseEffectClip-s are clips whose core elements are +#GESBaseEffect-s. + +## Effects + +#GESBaseEffectClip-s can have **additional** #GESBaseEffect-s added as +non-core elements. These additional effects are applied to the output +of the core effects of the clip that they share a #GESTrack with. See +#GESClip for how to add and move these effects from the clip. + +Note that you cannot add time effects to #GESBaseEffectClip, neither +as core children, nor as additional effects.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="OperationClip" c:type="GESOperationClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseEffectClipPrivate" c:type="GESBaseEffectClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseEffectClipClass" c:type="GESBaseEffectClipClass" glib:is-gtype-struct-for="BaseEffectClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OperationClipClass" c:type="GESOperationClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseEffectClipPrivate" c:type="GESBaseEffectClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect-clip.h"/> + </record> + <record name="BaseEffectPrivate" c:type="GESBaseEffectPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + </record> + <callback name="BaseEffectTimeTranslationFunc" c:type="GESBaseEffectTimeTranslationFunc" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">A function for querying how an effect would translate a time if it had +the given child property values set. The keys for @time_properties will +be the same string that was passed to +ges_base_effect_register_time_property(), the values will be #GValue* +values of the corresponding child properties. You should always use the +values given in @time_properties before using the currently set values.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">The translated time.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">The #GESBaseEffect that is doing the time translation</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">The #GstClockTime to translation</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="time_property_values" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">A table of child +property name/value pairs</doc> + <type name="GLib.HashTable" c:type="GHashTable*"> + <type name="utf8"/> + <type name="GObject.Value"/> + </type> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-base-effect.h">Data passed to ges_base_effect_set_time_translation_funcs()</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="BaseTransitionClip" c:symbol-prefix="base_transition_clip" c:type="GESBaseTransitionClip" parent="OperationClip" abstract="1" glib:type-name="GESBaseTransitionClip" glib:get-type="ges_base_transition_clip_get_type" glib:type-struct="BaseTransitionClipClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-transition-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="OperationClip" c:type="GESOperationClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseTransitionClipPrivate" c:type="GESBaseTransitionClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseTransitionClipClass" c:type="GESBaseTransitionClipClass" glib:is-gtype-struct-for="BaseTransitionClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-transition-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OperationClipClass" c:type="GESOperationClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseTransitionClipPrivate" c:type="GESBaseTransitionClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-transition-clip.h"/> + </record> + <class name="BaseXmlFormatter" c:symbol-prefix="base_xml_formatter" c:type="GESBaseXmlFormatter" parent="Formatter" abstract="1" glib:type-name="GESBaseXmlFormatter" glib:get-type="ges_base_xml_formatter_get_type" glib:type-struct="BaseXmlFormatterClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + <implements name="Extractable"/> + <field name="parent"> + <type name="Formatter" c:type="GESFormatter"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="BaseXmlFormatterPrivate" c:type="GESBaseXmlFormatterPrivate*"/> + </field> + <field name="xmlcontent" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="BaseXmlFormatterClass" c:type="GESBaseXmlFormatterClass" glib:is-gtype-struct-for="BaseXmlFormatter"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + <field name="parent"> + <type name="FormatterClass" c:type="GESFormatterClass"/> + </field> + <field name="content_parser"> + <type name="GLib.MarkupParser" c:type="GMarkupParser"/> + </field> + <field name="save"> + <callback name="save" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + <return-value transfer-ownership="full"> + <type name="GLib.String" c:type="GString*"/> + </return-value> + <parameters> + <parameter name="formatter" transfer-ownership="none"> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="BaseXmlFormatterPrivate" c:type="GESBaseXmlFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-base-xml-formatter.h"/> + </record> + <function-macro name="CLIP_CLASS_CAN_ADD_EFFECTS" c:identifier="GES_CLIP_CLASS_CAN_ADD_EFFECTS" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">Whether the class allows for the user to add additional non-core +#GESBaseEffect-s to clips from this class.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <parameters> + <parameter name="klass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClipClass</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTAINER_CHILDREN" c:identifier="GES_CONTAINER_CHILDREN" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The #GList containing the children of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">a #GESContainer</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="CONTAINER_HEIGHT" c:identifier="GES_CONTAINER_HEIGHT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The #GESContainer:height of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">a #GESContainer</doc> + </parameter> + </parameters> + </function-macro> + <enumeration name="ChildrenControlMode" c:type="GESChildrenControlMode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">To be used by subclasses only. This indicate how to handle a change in +a child.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <member name="update" value="0" c:identifier="GES_CHILDREN_UPDATE"> + </member> + <member name="ignore_notifies" value="1" c:identifier="GES_CHILDREN_IGNORE_NOTIFIES"> + </member> + <member name="update_offsets" value="2" c:identifier="GES_CHILDREN_UPDATE_OFFSETS"> + </member> + <member name="update_all_values" value="3" c:identifier="GES_CHILDREN_UPDATE_ALL_VALUES"> + </member> + <member name="last" value="4" c:identifier="GES_CHILDREN_LAST"> + </member> + </enumeration> + <class name="Clip" c:symbol-prefix="clip" c:type="GESClip" parent="Container" abstract="1" glib:type-name="GESClip" glib:get-type="ges_clip_get_type" glib:type-struct="ClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">#GESClip-s are the core objects of a #GESLayer. Each clip may exist in +a single layer but may control several #GESTrackElement-s that span +several #GESTrack-s. A clip will ensure that all its children share the +same #GESTimelineElement:start and #GESTimelineElement:duration in +their tracks, which will match the #GESTimelineElement:start and +#GESTimelineElement:duration of the clip itself. Therefore, changing +the timing of the clip will change the timing of the children, and a +change in the timing of a child will change the timing of the clip and +subsequently all its siblings. As such, a clip can be treated as a +singular object in its layer. + +For most uses of a #GESTimeline, it is often sufficient to only +interact with #GESClip-s directly, which will take care of creating and +organising the elements of the timeline's tracks. + +## Core Children + +In more detail, clips will usually have some *core* #GESTrackElement +children, which are created by the clip when it is added to a layer in +a timeline. The type and form of these core children will depend on the +clip's subclass. You can use ges_track_element_is_core() to determine +whether a track element is considered such a core track element. Note, +if a core track element is part of a clip, it will always be treated as +a core *child* of the clip. You can connect to the +#GESContainer::child-added signal to be notified of their creation. + +When a child is added to a clip, the timeline will select its tracks +using #GESTimeline::select-tracks-for-object. Note that it may be the +case that the child will still have no set #GESTrackElement:track +after this process. For example, if the timeline does not have a track +of the corresponding #GESTrack:track-type. A clip can safely contain +such children, which may have their track set later, although they will +play no functioning role in the timeline in the meantime. + +If a clip may create track elements with various +#GESTrackElement:track-type(s), such as a #GESUriClip, but you only +want it to create a subset of these types, you should set the +#GESClip:supported-formats of the clip to the subset of types. This +should be done *before* adding the clip to a layer. + +If a clip will produce several core elements of the same +#GESTrackElement:track-type, you should connect to the timeline's +#GESTimeline::select-tracks-for-object signal to coordinate which +tracks each element should land in. Note, no two core children within a +clip can share the same #GESTrack, so you should not select the same +track for two separate core children. Provided you stick to this rule, +it is still safe to select several tracks for the same core child, the +core child will be copied into the additional tracks. You can manually +add the child to more tracks later using ges_clip_add_child_to_track(). +If you do not wish to use a core child, you can always select no track. + +The #GESTimelineElement:in-point of the clip will control the +#GESTimelineElement:in-point of its core children to be the same +value if their #GESTrackElement:has-internal-source is set to %TRUE. + +The #GESTimelineElement:max-duration of the clip is the minimum +#GESTimelineElement:max-duration of its core children. If you set its +value to anything other than its current value, this will also set the +#GESTimelineElement:max-duration of all its core children to the same +value if their #GESTrackElement:has-internal-source is set to %TRUE. +As a special case, whilst a clip does not yet have any core children, +its #GESTimelineElement:max-duration may be set to indicate what its +value will be once they are created. + +## Effects + +Some subclasses (#GESSourceClip and #GESBaseEffectClip) may also allow +their objects to have additional non-core #GESBaseEffect-s elements as +children. These are additional effects that are applied to the output +data of the core elements. They can be added to the clip using +ges_clip_add_top_effect(), which will take care of adding the effect to +the timeline's tracks. The new effect will be placed between the clip's +core track elements and its other effects. As such, the newly added +effect will be applied to any source data **before** the other existing +effects. You can change the ordering of effects using +ges_clip_set_top_effect_index(). + +Tracks are selected for top effects in the same way as core children. +If you add a top effect to a clip before it is part of a timeline, and +later add the clip to a timeline, the track selection for the top +effects will occur just after the track selection for the core +children. If you add a top effect to a clip that is already part of a +timeline, the track selection will occur immediately. Since a top +effect must be applied on top of a core child, if you use +#GESTimeline::select-tracks-for-object, you should ensure that the +added effects are destined for a #GESTrack that already contains a core +child. + +In addition, if the core child in the track is not +#GESTrackElement:active, then neither can any of its effects be +#GESTrackElement:active. Therefore, if a core child is made in-active, +all of the additional effects in the same track will also become +in-active. Similarly, if an effect is set to be active, then the core +child will also become active, but other effects will be left alone. +Finally, if an active effect is added to the track of an in-active core +child, it will become in-active as well. Note, in contrast, setting a +core child to be active, or an effect to be in-active will *not* change +the other children in the same track. + +### Time Effects + +Some effects also change the timing of their data (see #GESBaseEffect +for what counts as a time effect). Note that a #GESBaseEffectClip will +refuse time effects, but a #GESSource will allow them. + +When added to a clip, time effects may adjust the timing of other +children in the same track. Similarly, when changing the order of +effects, making them (in)-active, setting their time property values +or removing time effects. These can cause the #GESClip:duration-limit +to change in value. However, if such an operation would ever cause the +#GESTimelineElement:duration to shrink such that a clip's #GESSource is +totally overlapped in the timeline, the operation would be prevented. +Note that the same can happen when adding non-time effects with a +finite #GESTimelineElement:max-duration. + +Therefore, when working with time effects, you should -- more so than +usual -- not assume that setting the properties of the clip's children +will succeed. In particular, you should use +ges_timeline_element_set_child_property_full() when setting the time +properties. + +If you wish to preserve the *internal* duration of a source in a clip +during these time effect operations, you can do something like the +following. + +```c +void +do_time_effect_change (GESClip * clip) +{ + GList *tmp, *children; + GESTrackElement *source; + GstClockTime source_outpoint; + GstClockTime new_end; + GError *error = NULL; + + // choose some active source in a track to preserve the internal + // duration of + source = ges_clip_get_track_element (clip, NULL, GES_TYPE_SOURCE); + + // note its current internal end time + source_outpoint = ges_clip_get_internal_time_from_timeline_time ( + clip, source, GES_TIMELINE_ELEMENT_END (clip), NULL); + + // handle invalid out-point + + // stop the children's control sources from clamping when their + // out-point changes with a change in the time effects + children = ges_container_get_children (GES_CONTAINER (clip), FALSE); + + for (tmp = children; tmp; tmp = tmp->next) + ges_track_element_set_auto_clamp_control_source (tmp->data, FALSE); + + // add time effect, or set their children properties, or move them around + ... + // user can make sure that if a time effect changes one source, we should + // also change the time effect for another source. E.g. if + // "GstVideorate::rate" is set to 2.0, we also set "GstPitch::rate" to + // 2.0 + + // Note the duration of the clip may have already changed if the + // duration-limit of the clip dropped below its current value + + new_end = ges_clip_get_timeline_time_from_internal_time ( + clip, source, source_outpoint, &error); + // handle error + + if (!ges_timeline_elemnet_edit_full (GES_TIMELINE_ELEMENT (clip), + -1, GES_EDIT_MODE_TRIM, GES_EDGE_END, new_end, &error)) + // handle error + + for (tmp = children; tmp; tmp = tmp->next) + ges_track_element_set_auto_clamp_control_source (tmp->data, TRUE); + + g_list_free_full (children, gst_object_unref); + gst_object_unref (source); +} +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="create_track_element"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESTrackElement created +by @clip, or %NULL if @clip can not provide a track element for the +given @type or an error occurred.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create a #GESTrackElement for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create_track_elements"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A list of +the #GESTrackElement-s created by @clip for the given @type, or %NULL +if no track elements are created or an error occurred.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create #GESTrackElement-s for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_asset" c:identifier="ges_clip_add_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Extracts a #GESTrackElement from an asset and adds it to the clip. +This can be used to add effects that derive from the asset to the +clip, but this method is not intended to be used to create the core +elements of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The newly created element, or +%NULL if an error occurred.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An asset with #GES_TYPE_TRACK_ELEMENT as its +#GESAsset:extractable-type</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="add_child_to_track" c:identifier="ges_clip_add_child_to_track" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Adds the track element child of the clip to a specific track. + +If the given child is already in another track, this will create a copy +of the child, add it to the clip, and add this copy to the track. + +You should only call this whilst a clip is part of a #GESTimeline, and +for tracks that are in the same timeline. + +This method is an alternative to using the +#GESTimeline::select-tracks-for-object signal, but can be used to +complement it when, say, you wish to copy a clip's children from one +track into a new one. + +When the child is a core child, it must be added to a track that does +not already contain another core child of the same clip. If it is not a +core child (an additional effect), then it must be added to a track +that already contains one of the core children of the same clip. + +This method can also fail if the adding the track element to the track +would break a configuration rule of the corresponding #GESTimeline, +such as causing three sources to overlap at a single time, or causing +a source to completely overlap another in the same track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The element that was added to @track, either +@child or a copy of child, or %NULL if the element could not be added.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A child of @clip</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track to add @child to</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="add_top_effect" c:identifier="ges_clip_add_top_effect" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Add a top effect to a clip at the given index. + +Unlike using ges_container_add(), this allows you to set the index +in advance. It will also check that no error occurred during the track +selection for the effect. + +Note, only subclasses of #GESClipClass that have +#GES_CLIP_CLASS_CAN_ADD_EFFECTS set to %TRUE (such as #GESSourceClip +and #GESBaseEffectClip) can have additional top effects added. + +Note, if the effect is a time effect, this may be refused if the clip +would not be able to adapt itself once the effect is added.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully added to @clip at @index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A top effect to add</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="index" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index to add @effect at, or -1 to add at the highest</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="find_track_element" c:identifier="ges_clip_find_track_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Finds an element controlled by the clip. If @track is given, +then only the track elements in @track are searched for. If @type is +given, then this function searches for a track element of the given +@type. + +Note, if multiple track elements in the clip match the given criteria, +this will return the element amongst them with the highest +#GESTimelineElement:priority (numerically, the smallest). See +ges_clip_find_track_elements() if you wish to find all such elements.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The element controlled by +@clip, in @track, and of the given @type, or %NULL if no such element +could be found.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track to search in, or %NULL to search in +all tracks</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The type of track element to search for, or `G_TYPE_NONE` to +match any type</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="find_track_elements" c:identifier="ges_clip_find_track_elements"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Finds the #GESTrackElement-s controlled by the clip that match the +given criteria. If @track is given as %NULL and @track_type is given as +#GES_TRACK_TYPE_UNKNOWN, then the search will match all elements in any +track, including those with no track, and of any +#GESTrackElement:track-type. Otherwise, if @track is not %NULL, but +@track_type is #GES_TRACK_TYPE_UNKNOWN, then only the track elements in +@track are searched for. Otherwise, if @track_type is not +#GES_TRACK_TYPE_UNKNOWN, but @track is %NULL, then only the track +elements whose #GESTrackElement:track-type matches @track_type are +searched for. Otherwise, when both are given, the track elements that +match **either** criteria are searched for. Therefore, if you wish to +only find elements in a specific track, you should give the track as +@track, but you should not give the track's #GESTrack:track-type as +@track_type because this would also select elements from other tracks +of the same type. + +You may also give @type to _further_ restrict the search to track +elements of the given @type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A list of all +the #GESTrackElement-s controlled by @clip, in @track or of the given +@track_type, and of the given @type.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track to search in, or %NULL to search in +all tracks</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + <parameter name="track_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The track-type of the track element to search for, or +#GES_TRACK_TYPE_UNKNOWN to match any track type</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The type of track element to search for, or %G_TYPE_NONE to +match any type</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_duration_limit" c:identifier="ges_clip_get_duration_limit" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESClip:duration-limit of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The duration-limit of @clip.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_internal_time_from_timeline_time" c:identifier="ges_clip_get_internal_time_from_timeline_time" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Convert the timeline time to an internal source time of the child. +This will take any time effects placed on the clip into account (see +#GESBaseEffect for what time effects are supported, and how to +declare them in GES). + +When @timeline_time is above the #GESTimelineElement:start of @clip, +this will return the internal time at which the content that appears at +@timeline_time in the output of the timeline is created in @child. For +example, if @timeline_time corresponds to the current seek position, +this would let you know which part of a media file is being read. + +This will be done assuming the clip has an indefinite end, so the +internal time may be beyond the current out-point of the child, or even +its #GESTimelineElement:max-duration. + +If, instead, @timeline_time is below the current +#GESTimelineElement:start of @clip, this will return what you would +need to set the #GESTimelineElement:in-point of @child to if you set +the #GESTimelineElement:start of @clip to @timeline_time and wanted +to keep the content of @child currently found at the current +#GESTimelineElement:start of @clip at the same timeline position. If +this would be negative, the conversion fails. This is useful for +determining what #GESTimelineElement:in-point would result from a +#GES_EDIT_MODE_TRIM to @timeline_time. + +Note that whilst a clip has no time effects, this second return is +equivalent to finding the internal time at which the content that +appears at @timeline_time in the timeline can be found in @child if it +had indefinite extent in both directions. However, with non-linear time +effects this second return will be more distinct. + +In either case, the returned time would be appropriate to use for the +#GESTimelineElement:in-point or #GESTimelineElement:max-duration of the +child. + +See ges_clip_get_timeline_time_from_internal_time(), which performs the +reverse.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The time in the internal coordinates of @child corresponding +to @timeline_time, or #GST_CLOCK_TIME_NONE if the conversion could not +be performed.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An #GESTrackElement:active child of @clip with a +#GESTrackElement:track</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="timeline_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A time in the timeline time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_layer" c:identifier="ges_clip_get_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESClip:layer of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The layer @clip is in, or %NULL if +@clip is not in any layer.</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_supported_formats" c:identifier="ges_clip_get_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESClip:supported-formats of the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESTrackType-s supported by @clip.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline_time_from_internal_time" c:identifier="ges_clip_get_timeline_time_from_internal_time" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Convert the internal source time from the child to a timeline time. +This will take any time effects placed on the clip into account (see +#GESBaseEffect for what time effects are supported, and how to +declare them in GES). + +When @internal_time is above the #GESTimelineElement:in-point of +@child, this will return the timeline time at which the internal +content found at @internal_time appears in the output of the timeline's +track. For example, this would let you know where in the timeline a +particular scene in a media file would appear. + +This will be done assuming the clip has an indefinite end, so the +timeline time may be beyond the end of the clip, or even breaking its +#GESClip:duration-limit. + +If, instead, @internal_time is below the current +#GESTimelineElement:in-point of @child, this will return what you would +need to set the #GESTimelineElement:start of @clip to if you set the +#GESTimelineElement:in-point of @child to @internal_time and wanted to +keep the content of @child currently found at the current +#GESTimelineElement:start of @clip at the same timeline position. If +this would be negative, the conversion fails. This is useful for +determining what position to use in a #GES_EDIT_MODE_TRIM if you wish +to trim to a specific point in the internal content, such as a +particular scene in a media file. + +Note that whilst a clip has no time effects, this second return is +equivalent to finding the timeline time at which the content of @child +at @internal_time would be found in the timeline if it had indefinite +extent in both directions. However, with non-linear time effects this +second return will be more distinct. + +In either case, the returned time would be appropriate to use in +ges_timeline_element_edit() for #GES_EDIT_MODE_TRIM, and similar, if +you wish to use a particular internal point as a reference. For +example, you could choose to end a clip at a certain internal +'out-point', similar to the #GESTimelineElement:in-point, by +translating the desired end time into the timeline coordinates, and +using this position to trim the end of a clip. + +See ges_clip_get_internal_time_from_timeline_time(), which performs the +reverse, or ges_clip_get_timeline_time_from_source_frame() which does +the same conversion, but using frame numbers.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The time in the timeline coordinates corresponding to +@internal_time, or #GST_CLOCK_TIME_NONE if the conversion could not be +performed.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An #GESTrackElement:active child of @clip with a +#GESTrackElement:track</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="internal_time" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A time in the internal time coordinates of @child</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_timeline_time_from_source_frame" c:identifier="ges_clip_get_timeline_time_from_source_frame" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Convert the source frame number to a timeline time. This acts the same +as ges_clip_get_timeline_time_from_internal_time() using the core +children of the clip and using the frame number to specify the internal +position, rather than a timestamp. + +The returned timeline time can be used to seek or edit to a specific +frame. + +Note that you can get the frame timestamp of a particular clip asset +with ges_clip_asset_get_frame_time().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The timestamp corresponding to @frame_number in the core +children of @clip, in the timeline coordinates, or #GST_CLOCK_TIME_NONE +if the conversion could not be performed.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The frame number to get the corresponding timestamp of +in the timeline coordinates</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </parameter> + </parameters> + </method> + <method name="get_top_effect_index" c:identifier="ges_clip_get_top_effect_index"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the internal index of an effect in the clip. The index of effects +in a clip will run from 0 to n-1, where n is the total number of +effects. If two effects share the same #GESTrackElement:track, the +effect with the numerically lower index will be applied to the source +data **after** the other effect, i.e. output data will always flow from +a higher index effect to a lower index effect.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index of @effect in @clip, or -1 if something went wrong.</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The effect we want to get the index of</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + </parameters> + </method> + <method name="get_top_effect_position" c:identifier="ges_clip_get_top_effect_position"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + </parameters> + </method> + <method name="get_top_effects" c:identifier="ges_clip_get_top_effects"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Gets the #GESBaseEffect-s that have been added to the clip. The +returned list is ordered by their internal index in the clip. See +ges_clip_get_top_effect_index().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A list of all +#GESBaseEffect-s that have been added to @clip.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="move_to_layer" c:identifier="ges_clip_move_to_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">See ges_clip_move_to_layer_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @clip was successfully moved to @layer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The new layer</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="move_to_layer_full" c:identifier="ges_clip_move_to_layer_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Moves a clip to a new layer. If the clip already exists in a layer, it +is first removed from its current layer before being added to the new +layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @clip was successfully moved to @layer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The new layer</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="remove_top_effect" c:identifier="ges_clip_remove_top_effect" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Remove a top effect from the clip. + +Note, if the effect is a time effect, this may be refused if the clip +would not be able to adapt itself once the effect is removed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully added to @clip at @index.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The top effect to remove</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + </parameters> + </method> + <method name="set_supported_formats" c:identifier="ges_clip_set_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Sets the #GESClip:supported-formats of the clip. This should normally +only be called by subclasses, which should be responsible for updating +its value, rather than the user.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="supportedformats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESTrackType-s supported by @clip</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <method name="set_top_effect_index" c:identifier="ges_clip_set_top_effect_index"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">See ges_clip_set_top_effect_index_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully moved to @newindex.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An effect within @clip to move</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="newindex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index for @effect in @clip</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_top_effect_index_full" c:identifier="ges_clip_set_top_effect_index_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Set the index of an effect within the clip. See +ges_clip_get_top_effect_index(). The new index must be an existing +index of the clip. The effect is moved to the new index, and the other +effects may be shifted in index accordingly to otherwise maintain the +ordering.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">%TRUE if @effect was successfully moved to @newindex.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">An effect within @clip to move</doc> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="newindex" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The index for @effect in @clip</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_top_effect_priority" c:identifier="ges_clip_set_top_effect_priority"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="effect" transfer-ownership="none"> + <type name="BaseEffect" c:type="GESBaseEffect*"/> + </parameter> + <parameter name="newpriority" transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="split" c:identifier="ges_clip_split"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">See ges_clip_split_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The newly created clip resulting +from the splitting @clip, or %NULL if @clip can't be split.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESClip to split</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The timeline position at which to perform the split</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="split_full" c:identifier="ges_clip_split_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">Splits a clip at the given timeline position into two clips. The clip +must already have a #GESClip:layer. + +The original clip's #GESTimelineElement:duration is reduced such that +its end point matches the split position. Then a new clip is created in +the same layer, whose #GESTimelineElement:start matches the split +position and #GESTimelineElement:duration will be set such that its end +point matches the old end point of the original clip. Thus, the two +clips together will occupy the same positions in the timeline as the +original clip did. + +The children of the new clip will be new copies of the original clip's +children, so it will share the same sources and use the same +operations. + +The new clip will also have its #GESTimelineElement:in-point set so +that any internal data will appear in the timeline at the same time. +Thus, when the timeline is played, the playback of data should +appear the same. This may be complicated by any additional +#GESEffect-s that have been placed on the original clip that depend on +the playback time or change the data consumption rate of sources. This +method will attempt to translate these effects such that the playback +appears the same. In such complex situations, you may get a better +result if you place the clip in a separate sub #GESProject, which only +contains this clip (and its effects), and in the original layer +create two neighbouring #GESUriClip-s that reference this sub-project, +but at a different #GESTimelineElement:in-point.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The newly created clip resulting +from the splitting @clip, or %NULL if @clip can't be split.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESClip to split</doc> + <type name="Clip" c:type="GESClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The timeline position at which to perform the split, between +the start and end of the clip</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <property name="duration-limit" version="1.18" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The maximum #GESTimelineElement:duration that can be *currently* set +for the clip, taking into account the #GESTimelineElement:in-point, +#GESTimelineElement:max-duration, #GESTrackElement:active, and +#GESTrackElement:track properties of its children, as well as any +time effects. If there is no limit, this will be set to +#GST_CLOCK_TIME_NONE. + +Note that whilst a clip has no children in any tracks, the limit will +be unknown, and similarly set to #GST_CLOCK_TIME_NONE. + +If the duration-limit would ever go below the current +#GESTimelineElement:duration of the clip due to a change in the above +variables, its #GESTimelineElement:duration will be set to the new +limit.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The layer this clip lies in. + +If you want to connect to this property's #GObject::notify signal, +you should connect to it with g_signal_connect_after() since the +signal emission may be stopped internally.</doc> + <type name="Layer"/> + </property> + <property name="supported-formats" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.c">The #GESTrackType-s that the clip supports, which it can create +#GESTrackElement-s for. Note that this can be a combination of +#GESTrackType flags to indicate support for several +#GESTrackElement:track-type elements.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Container" c:type="GESContainer"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ClipPrivate" c:type="GESClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="ClipAsset" c:symbol-prefix="clip_asset" c:type="GESClipAsset" parent="Asset" glib:type-name="GESClipAsset" glib:get-type="ges_clip_asset_get_type" glib:type-struct="ClipAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The #GESUriClipAsset is a special #GESAsset specilized in #GESClip. +it is mostly used to get information about the #GESTrackType-s the objects extracted +from it can potentialy create #GESTrackElement for.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <virtual-method name="get_natural_framerate" invoker="get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object from which to retrieve the natural framerate</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_frame_time" c:identifier="ges_clip_asset_get_frame_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Converts the given frame number into a timestamp, using the "natural" frame +rate of the asset. + +You can use this to reference a specific frame in a media file and use this +as, for example, the `in-point` or `max-duration` of a #GESClip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The timestamp corresponding to @frame_number in the element source, given +in internal time coordinates, or #GST_CLOCK_TIME_NONE if the clip asset does not have a +natural frame rate.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object for which to compute timestamp for specifed frame</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The frame number we want the internal time coordinate timestamp of</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </parameter> + </parameters> + </method> + <method name="get_natural_framerate" c:identifier="ges_clip_asset_get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object from which to retrieve the natural framerate</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_supported_formats" c:identifier="ges_clip_asset_get_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Gets track types for which objects extracted from @self can create #GESTrackElement</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The track types on which @self will create TrackElement when added to +a layer</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">a #GESClipAsset</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_supported_formats" c:identifier="ges_clip_asset_set_supported_formats"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">Sets track types for which objects extracted from @self can create #GESTrackElement</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">a #GESClipAsset</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </instance-parameter> + <parameter name="supportedformats" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The track types supported by the GESClipAsset</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <property name="supported-formats" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The formats supported by the asset.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Asset" c:type="GESAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ClipAssetPrivate" c:type="GESClipAssetPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="ClipAssetClass" c:type="GESClipAssetClass" glib:is-gtype-struct-for="ClipAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <field name="parent"> + <type name="AssetClass" c:type="GESAssetClass"/> + </field> + <field name="get_natural_framerate"> + <callback name="get_natural_framerate"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The object from which to retrieve the natural framerate</doc> + <type name="ClipAsset" c:type="GESClipAsset*"/> + </parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ClipAssetPrivate" c:type="GESClipAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip-asset.h"/> + </record> + <record name="ClipClass" c:type="GESClipClass" glib:is-gtype-struct-for="Clip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="ContainerClass" c:type="GESContainerClass"/> + </field> + <field name="create_track_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">Method to create the core #GESTrackElement of a clip +of this class. If a clip of this class may create several track elements per +track type, this should be left as %NULL, and +GESClipClass::create_track_elements should be used instead. Otherwise, you +should implement this class method and leave +GESClipClass::create_track_elements as the default implementation</doc> + <type name="CreateTrackElementFunc" c:type="GESCreateTrackElementFunc"/> + </field> + <field name="create_track_elements"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">Method to create the (multiple) core +#GESTrackElement-s of a clip of this class. If +GESClipClass::create_track_element is implemented, this should be kept as the +default implementation</doc> + <type name="CreateTrackElementsFunc" c:type="GESCreateTrackElementsFunc"/> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <field name="_ges_reserved" writable="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <field name="can_add_effects" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + </record> + </union> + </record> + <record name="ClipPrivate" c:type="GESClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + </record> + <class name="CommandLineFormatter" c:symbol-prefix="command_line_formatter" c:type="GESCommandLineFormatter" parent="Formatter" glib:type-name="GESCommandLineFormatter" glib:get-type="ges_command_line_formatter_get_type" glib:type-struct="CommandLineFormatterClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <implements name="Extractable"/> + <function name="get_help" c:identifier="ges_command_line_formatter_get_help" version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">Creates a help string based on @commands. + +Result: (transfer full): A help string.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="nargs" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">Number of commands in @commands</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="commands" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">Commands</doc> + <array length="0" zero-terminated="0" c:type="gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </function> + <function name="get_timeline_uri" c:identifier="ges_command_line_formatter_get_timeline_uri" version="1.10"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.c">A GESTimeline to serialize</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </function> + <field name="parent_instance"> + <type name="Formatter" c:type="GESFormatter"/> + </field> + <field name="priv"> + <type name="CommandLineFormatterPrivate" c:type="GESCommandLineFormatterPrivate*"/> + </field> + </class> + <record name="CommandLineFormatterClass" c:type="GESCommandLineFormatterClass" glib:is-gtype-struct-for="CommandLineFormatter"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + <field name="parent_class"> + <type name="FormatterClass" c:type="GESFormatterClass"/> + </field> + </record> + <record name="CommandLineFormatterPrivate" c:type="GESCommandLineFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-command-line-formatter.h"/> + </record> + <class name="Container" c:symbol-prefix="container" c:type="GESContainer" parent="TimelineElement" abstract="1" glib:type-name="GESContainer" glib:get-type="ges_container_get_type" glib:type-struct="ContainerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer is a timeline element that controls other +#GESTimelineElement-s, which are its children. In particular, it is +responsible for maintaining the relative #GESTimelineElement:start and +#GESTimelineElement:duration times of its children. Therefore, if a +container is temporally adjusted or moved to a new layer, it may +accordingly adjust and move its children. Similarly, a change in one of +its children may prompt the parent to correspondingly change its +siblings.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <function name="group" c:identifier="ges_container_group"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Groups the containers into a single container by merging them. The +containers must all belong to the same #GESTimelineElement:timeline. + +If the elements are all #GESClip-s then this method will attempt to +combine them all into a single #GESClip. This should succeed if they: +share the same #GESTimelineElement:start, #GESTimelineElement:duration +and #GESTimelineElement:in-point; exist in the same layer; and all of +the sources share the same #GESAsset. If this fails, or one of the +elements is not a #GESClip, this method will try to create a #GESGroup +instead.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container created by merging +@containers, or %NULL if they could not be merged into a single +container.</doc> + <type name="Container" c:type="GESContainer*"/> + </return-value> + <parameters> + <parameter name="containers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c"> +The #GESContainer-s to group</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </parameter> + </parameters> + </function> + <virtual-method name="add_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="child_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="child_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="edit" invoker="edit" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Edits the container within its timeline.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_edit instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if the edit of @container completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The #GESContainer to edit</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The priority/index of the layer @container should +be moved to. -1 means no move</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edge of @container where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit position: a new location for the edge of @container +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="remove_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="ungroup" invoker="ungroup"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Ungroups the container by splitting it into several containers +containing various children of the original. The rules for how the +container splits depends on the subclass. A #GESGroup will simply split +into its children. A #GESClip will split into one #GESClip per +#GESTrackType it overlaps with (so an audio-video clip will split into +an audio clip and a video clip), where each clip contains all the +#GESTrackElement-s from the original clip with a matching +#GESTrackElement:track-type. + +If @recursive is %TRUE, and the container contains other containers as +children, then they will also be ungrouped, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +new #GESContainer-s created from the splitting of @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container to ungroup</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively ungroup @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <method name="add" c:identifier="ges_container_add"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Adds a timeline element to the container. The element will now be a +child of the container (and the container will be the +#GESTimelineElement:parent of the added element), which means that it +is now controlled by the container. This may change the properties of +the child or the container, depending on the subclass. + +Additionally, the children properties of the newly added element will +be shared with the container, meaning they can also be read and set +using ges_timeline_element_get_child_property() and +ges_timeline_element_set_child_property() on the container.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if @child was successfully added to @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The element to add as a child</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </method> + <method name="edit" c:identifier="ges_container_edit" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Edits the container within its timeline.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_edit instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if the edit of @container completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The #GESContainer to edit</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The priority/index of the layer @container should +be moved to. -1 means no move</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edge of @container where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit position: a new location for the edge of @container +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_children" c:identifier="ges_container_get_children"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Get the list of timeline elements contained in the container. If +@recursive is %TRUE, and the container contains other containers as +children, then their children will be added to the list, in addition to +themselves, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +#GESTimelineElement-s contained in @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TimelineElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively get children in @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="remove" c:identifier="ges_container_remove"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Removes a timeline element from the container. The element will no +longer be controlled by the container.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if @child was successfully removed from @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A #GESContainer</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The child to remove</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </method> + <method name="ungroup" c:identifier="ges_container_ungroup"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Ungroups the container by splitting it into several containers +containing various children of the original. The rules for how the +container splits depends on the subclass. A #GESGroup will simply split +into its children. A #GESClip will split into one #GESClip per +#GESTrackType it overlaps with (so an audio-video clip will split into +an audio clip and a video clip), where each clip contains all the +#GESTrackElement-s from the original clip with a matching +#GESTrackElement:track-type. + +If @recursive is %TRUE, and the container contains other containers as +children, then they will also be ungrouped, and so on.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +new #GESContainer-s created from the splitting of @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container to ungroup</doc> + <type name="Container" c:type="GESContainer*"/> + </instance-parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively ungroup @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The span of the container's children's #GESTimelineElement:priority +values, which is the number of integers that lie between (inclusive) +the minimum and maximum priorities found amongst the container's +children (maximum - minimum + 1).</doc> + <type name="guint" c:type="guint"/> + </property> + <field name="parent"> + <type name="TimelineElement" c:type="GESTimelineElement"/> + </field> + <field name="children"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The list of +#GESTimelineElement-s controlled by this Container</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TimelineElement"/> + </type> + </field> + <field name="height"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.h">The #GESContainer:height of @obj</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="children_control_mode"> + <type name="ChildrenControlMode" c:type="GESChildrenControlMode"/> + </field> + <field name="initiated_move"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ContainerPrivate" c:type="GESContainerPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="child-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Will be emitted after a child is added to the container. Usually, +you should connect with g_signal_connect_after() since the signal +may be stopped internally.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The child that was added</doc> + <type name="TimelineElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="child-removed" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Will be emitted after a child is removed from the container.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The child that was removed</doc> + <type name="TimelineElement"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="ContainerClass" c:type="GESContainerClass" glib:is-gtype-struct-for="Container"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TimelineElementClass" c:type="GESTimelineElementClass"/> + </field> + <field name="child_added"> + <callback name="child_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="child_removed"> + <callback name="child_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="add_child"> + <callback name="add_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="remove_child"> + <callback name="remove_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="ungroup"> + <callback name="ungroup"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The list of +new #GESContainer-s created from the splitting of @container.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Container"/> + </type> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The container to ungroup</doc> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="recursive" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">Whether to recursively ungroup @container</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="group" introspectable="0"> + <callback name="group" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value> + <type name="Container" c:type="GESContainer*"/> + </return-value> + <parameters> + <parameter name="containers" transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </parameter> + </parameters> + </callback> + </field> + <field name="edit"> + <callback name="edit"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">%TRUE if the edit of @container completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The #GESContainer to edit</doc> + <type name="Container" c:type="GESContainer*"/> + </parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The priority/index of the layer @container should +be moved to. -1 means no move</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edge of @container where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-container.c">The edit position: a new location for the edge of @container +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="grouping_priority" readable="0" private="1"> + <type name="guint" c:type="guint"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ContainerPrivate" c:type="GESContainerPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-container.h"/> + </record> + <callback name="CreateElementForGapFunc" c:type="GESCreateElementForGapFunc" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">A function that creates a #GstElement that can be used as a source to +fill the gaps of the track. A gap is a timeline region where the track +has no #GESTrackElement sources.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">A source #GstElement to fill gaps in @track.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">The #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + <callback name="CreateTrackElementFunc" c:type="GESCreateTrackElementFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A method for creating the core #GESTrackElement of a clip, to be added +to a #GESTrack of the given track type. + +If a clip may produce several track elements per track type, +#GESCreateTrackElementsFunc is more appropriate.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESTrackElement created +by @clip, or %NULL if @clip can not provide a track element for the +given @type or an error occurred.</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create a #GESTrackElement for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </callback> + <callback name="CreateTrackElementsFunc" c:type="GESCreateTrackElementsFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A method for creating the core #GESTrackElement-s of a clip, to be +added to #GESTrack-s of the given track type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A list of +the #GESTrackElement-s created by @clip for the given @type, or %NULL +if no track elements are created or an error occurred.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESClip</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A #GESTrackType to create #GESTrackElement-s for</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </callback> + <function-macro name="DECLARE_TYPE" c:identifier="GES_DECLARE_TYPE" introspectable="0"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <parameters> + <parameter name="ObjName"> + </parameter> + <parameter name="obj_name"> + </parameter> + <parameter name="OBJ_NAME"> + </parameter> + </parameters> + </function-macro> + <function-macro name="DEPRECATED_FOR" c:identifier="GES_DEPRECATED_FOR" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-prelude.h"/> + <parameters> + <parameter name="f"> + </parameter> + </parameters> + </function-macro> + <function-macro name="EXTRACTABLE_GET_INTERFACE" c:identifier="GES_EXTRACTABLE_GET_INTERFACE" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <parameters> + <parameter name="inst"> + </parameter> + </parameters> + </function-macro> + <enumeration name="Edge" glib:type-name="GESEdge" glib:get-type="ges_edge_get_type" c:type="GESEdge"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The edges of an object contain in a #GESTimeline or #GESTrack</doc> + <member name="edge_start" value="0" c:identifier="GES_EDGE_START" glib:nick="edge_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the start of an object.</doc> + </member> + <member name="start" value="0" c:identifier="GES_EDGE_START" glib:nick="start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the start of an object.</doc> + </member> + <member name="edge_end" value="1" c:identifier="GES_EDGE_END" glib:nick="edge_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the end of an object.</doc> + </member> + <member name="end" value="1" c:identifier="GES_EDGE_END" glib:nick="end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represents the end of an object.</doc> + </member> + <member name="edge_none" value="2" c:identifier="GES_EDGE_NONE" glib:nick="edge_none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represent the fact we are not working with any edge of an + object.</doc> + </member> + <member name="none" value="2" c:identifier="GES_EDGE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Represent the fact we are not working with any edge of an + object.</doc> + </member> + <function name="name" c:identifier="ges_edge_name" version="1.16"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">A human friendly name for @edge</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">The #GESEdge to get the name of</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + </parameters> + </function> + </enumeration> + <enumeration name="EditMode" glib:type-name="GESEditMode" glib:get-type="ges_edit_mode_get_type" c:type="GESEditMode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">When a single timeline element is edited within its timeline at some +position, using ges_timeline_element_edit(), depending on the edit +mode, its #GESTimelineElement:start, #GESTimelineElement:duration or +#GESTimelineElement:in-point will be adjusted accordingly. In addition, +any clips may change #GESClip:layer. + +Each edit can be broken down into a combination of three basic edits: + ++ MOVE: This moves the start of the element to the edit position. ++ START-TRIM: This cuts or grows the start of the element, whilst + maintaining the time at which its internal content appears in the + timeline data output. If the element is made shorter, the data that + appeared at the edit position will still appear in the timeline at + the same time. If the element is made longer, the data that appeared + at the previous start of the element will still appear in the + timeline at the same time. ++ END-TRIM: Similar to START-TRIM, but the end of the element is cut or + grown. + +In particular, when editing a #GESClip: + ++ MOVE: This will set the #GESTimelineElement:start of the clip to the + edit position. ++ START-TRIM: This will set the #GESTimelineElement:start of the clip + to the edit position. To keep the end time the same, the + #GESTimelineElement:duration of the clip will be adjusted in the + opposite direction. In addition, the #GESTimelineElement:in-point of + the clip will be shifted such that the content that appeared at the + new or previous start time, whichever is latest, still appears at the + same timeline time. For example, if a frame appeared at the start of + the clip, and the start of the clip is reduced, the in-point of the + clip will also reduce such that the frame will appear later within + the clip, but at the same timeline position. ++ END-TRIM: This will set the #GESTimelineElement:duration of the clip + such that its end time will match the edit position. + +When editing a #GESGroup: + ++ MOVE: This will set the #GESGroup:start of the clip to the edit + position by shifting all of its children by the same amount. So each + child will maintain their relative positions. ++ START-TRIM: If the group is made shorter, this will START-TRIM any + clips under the group that start after the edit position to the same + edit position. If the group is made longer, this will START-TRIM any + clip under the group whose start matches the start of the group to + the same edit position. ++ END-TRIM: If the group is made shorter, this will END-TRIM any clips + under the group that end after the edit position to the same edit + position. If the group is made longer, this will END-TRIM any clip + under the group whose end matches the end of the group to the same + edit position. + +When editing a #GESTrackElement, if it has a #GESClip parent, this +will be edited instead. Otherwise it is edited in the same way as a +#GESClip. + +The layer priority of a #GESGroup is the lowest layer priority of any +#GESClip underneath it. When a group is edited to a new layer +priority, it will shift all clips underneath it by the same amount, +such that their relative layers stay the same. + +If the #GESTimeline has a #GESTimeline:snapping-distance, then snapping +may occur for some of the edges of the **main** edited element: + ++ MOVE: The start or end edge of *any* #GESSource under the element may + be snapped. ++ START-TRIM: The start edge of a #GESSource whose start edge touches + the start edge of the element may snap. ++ END-TRIM: The end edge of a #GESSource whose end edge touches the end + edge of the element may snap. + +These edges may snap with either the start or end edge of *any* other +#GESSource in the timeline that is not also being moved by the element, +including those in different layers, if they are within the +#GESTimeline:snapping-distance. During an edit, only up to one snap can +occur. This will shift the edit position such that the snapped edges +will touch once the edit has completed. + +Note that snapping can cause an edit to fail where it would have +otherwise succeeded because it may push the edit position such that the +edit would result in an unsupported timeline configuration. Similarly, +snapping can cause an edit to succeed where it would have otherwise +failed. + +For example, in #GES_EDIT_MODE_RIPPLE acting on #GES_EDGE_NONE, the +main element is the MOVED toplevel of the edited element. Any source +under the main MOVED toplevel may have its start or end edge snapped. +Note, these sources cannot snap with each other. The edit may also +push other elements, but any sources under these elements cannot snap, +nor can they be snapped with. If a snap does occur, the MOVE of the +toplevel *and* all other elements pushed by the ripple will be shifted +by the same amount such that the snapped edges will touch. + +You can also find more explanation about the behaviour of those modes at: +[trim, ripple and roll](http://pitivi.org/manual/trimming.html) +and [clip management](http://pitivi.org/manual/usingclips.html).</doc> + <member name="edit_normal" value="0" c:identifier="GES_EDIT_MODE_NORMAL" glib:nick="edit_normal"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited the normal way (default). + If acting on the element as a whole (#GES_EDGE_NONE), this will MOVE + the element by MOVING its toplevel. When acting on the start of the + element (#GES_EDGE_START), this will only MOVE the element, but not + its toplevel parent. This can allow you to move a #GESClip or + #GESGroup to a new start time or layer within its container group, + without effecting other members of the group. When acting on the end + of the element (#GES_EDGE_END), this will END-TRIM the element, + leaving its toplevel unchanged.</doc> + </member> + <member name="normal" value="0" c:identifier="GES_EDIT_MODE_NORMAL" glib:nick="normal"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited the normal way (default). + If acting on the element as a whole (#GES_EDGE_NONE), this will MOVE + the element by MOVING its toplevel. When acting on the start of the + element (#GES_EDGE_START), this will only MOVE the element, but not + its toplevel parent. This can allow you to move a #GESClip or + #GESGroup to a new start time or layer within its container group, + without effecting other members of the group. When acting on the end + of the element (#GES_EDGE_END), this will END-TRIM the element, + leaving its toplevel unchanged.</doc> + </member> + <member name="edit_ripple" value="1" c:identifier="GES_EDIT_MODE_RIPPLE" glib:nick="edit_ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in ripple mode: moving + itself as well as later elements, keeping their relative times. This + edits the element the same as #GES_EDIT_MODE_NORMAL. In addition, if + acting on the element as a whole, or the start of the element, any + toplevel element in the same timeline (including different layers) + whose start time is later than the *current* start time of the MOVED + element will also be MOVED by the same shift as the edited element. + If acting on the end of the element, any toplevel element whose start + time is later than the *current* end time of the edited element will + also be MOVED by the same shift as the change in the end of the + edited element. These additional elements will also be shifted by + the same shift in layers as the edited element.</doc> + </member> + <member name="ripple" value="1" c:identifier="GES_EDIT_MODE_RIPPLE" glib:nick="ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in ripple mode: moving + itself as well as later elements, keeping their relative times. This + edits the element the same as #GES_EDIT_MODE_NORMAL. In addition, if + acting on the element as a whole, or the start of the element, any + toplevel element in the same timeline (including different layers) + whose start time is later than the *current* start time of the MOVED + element will also be MOVED by the same shift as the edited element. + If acting on the end of the element, any toplevel element whose start + time is later than the *current* end time of the edited element will + also be MOVED by the same shift as the change in the end of the + edited element. These additional elements will also be shifted by + the same shift in layers as the edited element.</doc> + </member> + <member name="edit_roll" value="2" c:identifier="GES_EDIT_MODE_ROLL" glib:nick="edit_roll"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in roll mode: swapping its + content for its neighbour's, or vis versa, in the timeline output. + This edits the element the same as #GES_EDIT_MODE_TRIM. In addition, + any neighbours are also TRIMMED at their opposite edge to the same + timeline position. When acting on the start of the element, a + neighbour is any earlier element in the timeline whose end time + matches the *current* start time of the edited element. When acting on + the end of the element, a neighbour is any later element in the + timeline whose start time matches the *current* start time of the + edited element. In addition, a neighbour have a #GESSource at its + end/start edge that shares a track with a #GESSource at the start/end + edge of the edited element. Basically, a neighbour is an element that + can be extended, or cut, to have its content replace, or be replaced + by, the content of the edited element. Acting on the element as a + whole (#GES_EDGE_NONE) is not defined. The element can not shift + layers under this mode.</doc> + </member> + <member name="roll" value="2" c:identifier="GES_EDIT_MODE_ROLL" glib:nick="roll"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in roll mode: swapping its + content for its neighbour's, or vis versa, in the timeline output. + This edits the element the same as #GES_EDIT_MODE_TRIM. In addition, + any neighbours are also TRIMMED at their opposite edge to the same + timeline position. When acting on the start of the element, a + neighbour is any earlier element in the timeline whose end time + matches the *current* start time of the edited element. When acting on + the end of the element, a neighbour is any later element in the + timeline whose start time matches the *current* start time of the + edited element. In addition, a neighbour have a #GESSource at its + end/start edge that shares a track with a #GESSource at the start/end + edge of the edited element. Basically, a neighbour is an element that + can be extended, or cut, to have its content replace, or be replaced + by, the content of the edited element. Acting on the element as a + whole (#GES_EDGE_NONE) is not defined. The element can not shift + layers under this mode.</doc> + </member> + <member name="edit_trim" value="3" c:identifier="GES_EDIT_MODE_TRIM" glib:nick="edit_trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in trim mode. When acting + on the start of the element, this will START-TRIM it. When acting on + the end of the element, this will END-TRIM it. Acting on the element + as a whole (#GES_EDGE_NONE) is not defined.</doc> + </member> + <member name="trim" value="3" c:identifier="GES_EDIT_MODE_TRIM" glib:nick="trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in trim mode. When acting + on the start of the element, this will START-TRIM it. When acting on + the end of the element, this will END-TRIM it. Acting on the element + as a whole (#GES_EDGE_NONE) is not defined.</doc> + </member> + <member name="edit_slide" value="4" c:identifier="GES_EDIT_MODE_SLIDE" glib:nick="edit_slide"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in slide mode (not yet + implemented): moving the element replacing or consuming content on + each end. When acting on the element as a whole, this will MOVE the + element, and TRIM any neighbours on either side. A neighbour is + defined in the same way as in #GES_EDIT_MODE_ROLL, but they may be on + either side of the edited elements. Elements at the end with be + START-TRIMMED to the new end position of the edited element. Elements + at the start will be END-TRIMMED to the new start position of the + edited element. Acting on the start or end of the element + (#GES_EDGE_START and #GES_EDGE_END) is not defined. The element can + not shift layers under this mode.</doc> + </member> + <member name="slide" value="4" c:identifier="GES_EDIT_MODE_SLIDE" glib:nick="slide"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The element is edited in slide mode (not yet + implemented): moving the element replacing or consuming content on + each end. When acting on the element as a whole, this will MOVE the + element, and TRIM any neighbours on either side. A neighbour is + defined in the same way as in #GES_EDIT_MODE_ROLL, but they may be on + either side of the edited elements. Elements at the end with be + START-TRIMMED to the new end position of the edited element. Elements + at the start will be END-TRIMMED to the new start position of the + edited element. Acting on the start or end of the element + (#GES_EDGE_START and #GES_EDGE_END) is not defined. The element can + not shift layers under this mode.</doc> + </member> + <function name="name" c:identifier="ges_edit_mode_name" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Return a string representation of @mode.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a string representation of @mode.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a #GESEditMode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + </parameters> + </function> + </enumeration> + <class name="Effect" c:symbol-prefix="effect" c:type="GESEffect" parent="BaseEffect" glib:type-name="GESEffect" glib:get-type="ges_effect_get_type" glib:type-struct="EffectClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Currently we only support effects with N sinkpads and one single srcpad. +Apart from `gesaudiomixer` and `gescompositor` which can be used as effects +and where sinkpads will be requested as needed based on the timeline topology +GES will always request at most one sinkpad per effect (when required). + +> Note: GES always adds converters (`audioconvert ! audioresample ! +> audioconvert` for audio effects and `videoconvert` for video effects) to +> make it simpler for end users.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_effect_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Creates a new #GESEffect from the description of the bin. It should be +possible to determine the type of the effect through the element +'klass' metadata of the GstElements that will be created. +In that corner case, you should use: +#ges_asset_request (GES_TYPE_EFFECT, "audio your ! bin ! description", NULL); +and extract that asset to be in full control.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">a newly created #GESEffect, or %NULL if something went +wrong.</doc> + <type name="Effect" c:type="GESEffect*"/> + </return-value> + <parameters> + <parameter name="bin_description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The gst-launch like bin description of the effect</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <property name="bin-description" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The description of the effect bin with a gst-launch-style +pipeline description. + +Example: "videobalance saturation=1.5 hue=+0.5"</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="BaseEffect" c:type="GESBaseEffect"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="EffectPrivate" c:type="GESEffectPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="EffectAsset" c:symbol-prefix="effect_asset" c:type="GESEffectAsset" parent="TrackElementAsset" glib:type-name="GESEffectAsset" glib:get-type="ges_effect_asset_get_type" glib:type-struct="EffectAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-asset.c">This asset has a GStreamer bin-description as ID and is able to determine +to what track type the effect should be used in.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <field name="parent_instance"> + <type name="TrackElementAsset" c:type="GESTrackElementAsset"/> + </field> + <field name="priv"> + <type name="EffectAssetPrivate" c:type="GESEffectAssetPrivate*"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="EffectAssetClass" c:type="GESEffectAssetClass" glib:is-gtype-struct-for="EffectAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-asset.h"/> + <field name="parent_class"> + <type name="TrackElementAssetClass" c:type="GESTrackElementAssetClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="EffectAssetPrivate" c:type="GESEffectAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-asset.h"/> + </record> + <record name="EffectClass" c:type="GESEffectClass" glib:is-gtype-struct-for="Effect"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <field name="parent_class" readable="0" private="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.h">parent class</doc> + <type name="BaseEffectClass" c:type="GESBaseEffectClass"/> + </field> + <field name="rate_properties" readable="0" private="1"> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="register_rate_property" c:identifier="ges_effect_class_register_rate_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Register an element that can change the rate at which media is playing. +The property type must be float or double, and must be a factor of the +rate, i.e. a value of 2.0 must mean that the media plays twice as fast. +Several properties may be registered for a single element type, +provided they all contribute to the rate as independent factors. For +example, this is true for the "GstPitch::rate" and "GstPitch::tempo" +properties. These are already registered by default in GES, along with +#videorate:rate for #videorate and #scaletempo:rate for #scaletempo. + +If such a rate property becomes a child property of a #GESEffect upon +its creation (the element is part of its #GESEffect:bin-description), +it will be automatically registered as a time property (see +ges_base_effect_register_time_property()) and will have its time +translation functions set (see +ges_base_effect_set_time_translation_funcs()) to use the overall rate +of the rate properties. Note that if an effect contains a rate +property as well as a non-rate time property, you should ensure to set +the time translation functions to some other methods using +ges_base_effect_set_time_translation_funcs(). + +Note, you can obtain a reference to the GESEffectClass using + +``` + GES_EFFECT_CLASS (g_type_class_ref (GES_TYPE_EFFECT)); +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">%TRUE if the rate property was successfully registered. When +this method returns %FALSE, a warning is emitted with more information.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">Instance of the GESEffectClass</doc> + <type name="EffectClass" c:type="GESEffectClass*"/> + </instance-parameter> + <parameter name="element_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The #GstElementFactory name of the element that changes +the rate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect.c">The name of the property that changes the rate</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + </record> + <class name="EffectClip" c:symbol-prefix="effect_clip" c:type="GESEffectClip" parent="BaseEffectClip" glib:type-name="GESEffectClip" glib:get-type="ges_effect_clip_get_type" glib:type-struct="EffectClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The effect will be applied on the sources that have lower priorities +(higher number) between the inpoint and the end of it. + +The asset ID of an effect clip is in the form: + +``` + "audio ! bin ! description || video ! bin ! description" +```</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_effect_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">Creates a new #GESEffectClip from the description of the bin.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">a newly created #GESEffectClip, or +%NULL if something went wrong.</doc> + <type name="EffectClip" c:type="GESEffectClip*"/> + </return-value> + <parameters> + <parameter name="video_bin_description" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The gst-launch like bin description of the effect</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="audio_bin_description" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The gst-launch like bin description of the effect</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <property name="audio-bin-description" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The description of the audio track of the effect bin with a gst-launch-style +pipeline description. This should be used for test purposes. + +Example: "audiopanorama panorama=1.0"</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="video-bin-description" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-effect-clip.c">The description of the video track of the effect bin with a gst-launch-style +pipeline description. This should be used for test purposes. + +Example: "videobalance saturation=1.5 hue=+0.5"</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="BaseEffectClip" c:type="GESBaseEffectClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="EffectClipPrivate" c:type="GESEffectClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="EffectClipClass" c:type="GESEffectClipClass" glib:is-gtype-struct-for="EffectClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="BaseEffectClipClass" c:type="GESBaseEffectClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="EffectClipPrivate" c:type="GESEffectClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect-clip.h"/> + </record> + <record name="EffectPrivate" c:type="GESEffectPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-effect.h"/> + </record> + <enumeration name="Error" c:type="GESError"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-gerror.h"/> + <member name="asset_wrong_id" value="0" c:identifier="GES_ERROR_ASSET_WRONG_ID"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The ID passed is malformed</doc> + </member> + <member name="asset_loading" value="1" c:identifier="GES_ERROR_ASSET_LOADING"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">An error happened while loading the asset</doc> + </member> + <member name="formatter_malformed_input_file" value="2" c:identifier="GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The formatted files was malformed</doc> + </member> + <member name="invalid_frame_number" value="3" c:identifier="GES_ERROR_INVALID_FRAME_NUMBER"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The frame number is invalid</doc> + </member> + <member name="negative_layer" value="4" c:identifier="GES_ERROR_NEGATIVE_LAYER"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The operation would lead to a negative +#GES_TIMELINE_ELEMENT_LAYER_PRIORITY. (Since: 1.18)</doc> + </member> + <member name="negative_time" value="5" c:identifier="GES_ERROR_NEGATIVE_TIME"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The operation would lead to a negative time. +E.g. for the #GESTimelineElement:start #GESTimelineElement:duration or +#GESTimelineElement:in-point. (Since: 1.18)</doc> + </member> + <member name="not_enough_internal_content" value="6" c:identifier="GES_ERROR_NOT_ENOUGH_INTERNAL_CONTENT"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">Some #GESTimelineElement does +not have a large enough #GESTimelineElement:max-duration to cover the +desired operation. (Since: 1.18)</doc> + </member> + <member name="invalid_overlap_in_track" value="7" c:identifier="GES_ERROR_INVALID_OVERLAP_IN_TRACK"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-gerror.h">The operation would break one of +the overlap conditions for the #GESTimeline. (Since: 1.18)</doc> + </member> + <member name="invalid_effect_bin_description" value="8" c:identifier="GES_ERROR_INVALID_EFFECT_BIN_DESCRIPTION"> + </member> + </enumeration> + <interface name="Extractable" c:symbol-prefix="extractable" c:type="GESExtractable" glib:type-name="GESExtractable" glib:get-type="ges_extractable_get_type" glib:type-struct="ExtractableInterface"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GObject that implements the #GESExtractable interface can be +extracted from a #GESAsset using ges_asset_extract(). + +Each extractable type will have its own way of interpreting the +#GESAsset:id of an asset (or, if it is associated with a specific +subclass of #GESAsset, the asset subclass may handle the +interpretation of the #GESAsset:id). By default, the requested asset +#GESAsset:id will be ignored by a #GESExtractable and will be set to +the type name of the extractable instead. Also by default, when the +requested asset is extracted, the returned object will simply be a +newly created default object of that extractable type. You should check +the documentation for each extractable type to see if they differ from +the default. + +After the object is extracted, it will have a reference to the asset it +came from, which you can retrieve using ges_extractable_get_asset().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <prerequisite name="GObject.InitiallyUnowned"/> + <virtual-method name="get_id" invoker="get_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Gets the #GESAsset:id of some associated asset. It may be the case +that the object has no set asset, or even that such an asset does not +yet exist in the GES cache. Instead, this will return the asset +#GESAsset:id that is _compatible_ with the current state of the object, +as determined by the #GESExtractable implementer. If it was indeed +extracted from an asset, this should return the same as its +corresponding asset #GESAsset:id.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The #GESAsset:id of some associated #GESAsset +that is compatible with @self's current state.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="set_asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_asset_full"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_asset" c:identifier="ges_extractable_get_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Get the asset that has been set on the extractable object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The asset set on @self, or %NULL +if no asset has been set.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_id" c:identifier="ges_extractable_get_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Gets the #GESAsset:id of some associated asset. It may be the case +that the object has no set asset, or even that such an asset does not +yet exist in the GES cache. Instead, this will return the asset +#GESAsset:id that is _compatible_ with the current state of the object, +as determined by the #GESExtractable implementer. If it was indeed +extracted from an asset, this should return the same as its +corresponding asset #GESAsset:id.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The #GESAsset:id of some associated #GESAsset +that is compatible with @self's current state.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_asset" c:identifier="ges_extractable_set_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">Sets the asset for this extractable object. + +When an object is extracted from an asset using ges_asset_extract() its +asset will be automatically set. Note that many classes that implement +#GESExtractable will automatically create their objects using assets +when you call their @new methods. However, you can use this method to +associate an object with a compatible asset if it was created by other +means and does not yet have an asset. Or, for some implementations of +#GESExtractable, you can use this to change the asset of the given +extractable object, which will lead to a change in its state to +match the new asset #GESAsset:id.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">%TRUE if @asset could be successfully set on @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The asset to set</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + </interface> + <callback name="ExtractableCheckId" c:type="GESExtractableCheckId" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">Method for checking that an ID is valid for the given #GESExtractable +type. If the given ID is considered valid, it can be adjusted into some +standard and returned to prevent the creation of separate #GESAsset-s, +with different #GESAsset:id, that would otherwise act the same. + +Returns (transfer full) (nullable): The actual #GESAsset:id to set on +any corresponding assets, based on @id, or %NULL if @id is not valid.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The #GESExtractable type to check @id for</doc> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The ID to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + <record name="ExtractableInterface" c:type="GESExtractableInterface" glib:is-gtype-struct-for="Extractable"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <field name="parent"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="asset_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The subclass type of #GESAsset that should be created when +an asset with the corresponding #GESAsset:extractable-type is +requested.</doc> + <type name="GType" c:type="GType"/> + </field> + <field name="check_id"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">The method to call to check whether a given ID is valid as +an asset #GESAsset:id for the given #GESAsset:extractable-type. The +returned ID is the actual #GESAsset:id that is set on the asset. The +default implementation will simply always return the type name of the +#GESAsset:extractable-type, even if the received ID is %NULL. As such, +any given ID is considered valid (or is ignored), but only one is +actually ever set on an asset, which means the given +#GESAsset:extractable-type can only have one associated asset.</doc> + <type name="ExtractableCheckId" c:type="GESExtractableCheckId"/> + </field> + <field name="can_update_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.h">Whether an object of this class can have its +#GESAsset change over its lifetime. This should be set to %TRUE if one +of the object's parameters that is associated with its ID can change +after construction, which would require an asset with a new ID. Note +that the subclass is required to handle the requesting and setting of +the new asset on the object.</doc> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="set_asset"> + <callback name="set_asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_asset_full"> + <callback name="set_asset_full"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Extractable" c:type="GESExtractable*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_parameters_from_id" introspectable="0"> + <callback name="get_parameters_from_id" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value> + <type name="GObject.Parameter" c:type="GParameter*"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="n_params" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_id"> + <callback name="get_id"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">The #GESAsset:id of some associated #GESAsset +that is compatible with @self's current state.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-extractable.c">A #GESExtractable</doc> + <type name="Extractable" c:type="GESExtractable*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_real_extractable_type"> + <callback name="get_real_extractable_type"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </return-value> + <parameters> + <parameter name="wanted_type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="register_metas"> + <callback name="register_metas"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-extractable.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="ExtractableInterface" c:type="GESExtractableInterface*"/> + </parameter> + <parameter name="klass" transfer-ownership="none"> + <type name="GObject.ObjectClass" c:type="GObjectClass*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <function-macro name="FRAME_NUMBER_IS_VALID" c:identifier="GES_FRAME_NUMBER_IS_VALID" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-types.h">Tests if a given GESFrameNumber represents a valid frame</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <parameters> + <parameter name="frames"> + </parameter> + </parameters> + </function-macro> + <constant name="FRAME_NUMBER_NONE" value="9223372036854775807" c:type="GES_FRAME_NUMBER_NONE"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-types.h">Constant to define an undefined frame number</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint64" c:type="gint64"/> + </constant> + <callback name="FillTrackElementFunc" c:type="GESFillTrackElementFunc" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">A function that will be called when the nleobject of a corresponding +track element needs to be filled. + +The implementer of this function shall add the proper #GstElement to @nleobj +using gst_bin_add().</doc> + <doc-deprecated xml:space="preserve">This method type is no longer used.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">%TRUE if the implementer successfully filled the @nleobj.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESClip controlling the track elements</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + <parameter name="track_element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="nleobj" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-clip.h">The nleobject that needs to be filled</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </callback> + <class name="Formatter" c:symbol-prefix="formatter" c:type="GESFormatter" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GESFormatter" glib:get-type="ges_formatter_get_type" glib:type-struct="FormatterClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Base class for timeline data serialization and deserialization.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <implements name="Extractable"/> + <function name="can_load_uri" c:identifier="ges_formatter_can_load_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Checks if there is a #GESFormatter available which can load a #GESTimeline +from the given URI.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if there is a #GESFormatter that can support the given uri +or FALSE if not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to the URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="can_save_uri" c:identifier="ges_formatter_can_save_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Returns TRUE if there is a #GESFormatter available which can save a +#GESTimeline to the given URI.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the given @uri is supported, else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_default" c:identifier="ges_formatter_get_default"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Get the default #GESAsset to use as formatter. It will return +the asset for the #GESFormatter that has the highest @rank</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The #GESAsset for the formatter with highest @rank</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + </function> + <virtual-method name="can_load_uri" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="dummy_instance" transfer-ownership="none"> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="load_from_uri" invoker="load_from_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Load data from the given URI into timeline.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_load_from_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully loaded from the URI, +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="save_to_uri" invoker="save_to_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Save data from timeline to the given URI.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_save_to_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully saved to the URI +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <method name="load_from_uri" c:identifier="ges_formatter_load_from_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Load data from the given URI into timeline.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_load_from_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully loaded from the URI, +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="save_to_uri" c:identifier="ges_formatter_save_to_uri" deprecated="1" deprecated-version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Save data from timeline to the given URI.</doc> + <doc-deprecated xml:space="preserve">Use @ges_timeline_save_to_uri</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully saved to the URI +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="FormatterPrivate" c:type="GESFormatterPrivate*"/> + </field> + <field name="project" readable="0" private="1"> + <type name="Project" c:type="GESProject*"/> + </field> + <field name="timeline" readable="0" private="1"> + <type name="Timeline" c:type="GESTimeline*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <callback name="FormatterCanLoadURIMethod" c:type="GESFormatterCanLoadURIMethod" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dummy_instance" transfer-ownership="none"> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + <record name="FormatterClass" c:type="GESFormatterClass" glib:is-gtype-struct-for="Formatter"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">GES Formatter class. Override the vmethods to implement the formatter functionnality.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">the parent class structure</doc> + <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> + </field> + <field name="can_load_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Whether the URI can be loaded</doc> + <type name="FormatterCanLoadURIMethod" c:type="GESFormatterCanLoadURIMethod"/> + </field> + <field name="load_from_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">class method to deserialize data from a URI</doc> + <type name="FormatterLoadFromURIMethod" c:type="GESFormatterLoadFromURIMethod"/> + </field> + <field name="save_to_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">class method to serialize data to a URI</doc> + <type name="FormatterSaveToURIMethod" c:type="GESFormatterSaveToURIMethod"/> + </field> + <field name="name" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="description" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="extension" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="mimetype" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="version" readable="0" private="1"> + <type name="gdouble" c:type="gdouble"/> + </field> + <field name="rank" readable="0" private="1"> + <type name="Gst.Rank" c:type="GstRank"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="register_metas" c:identifier="ges_formatter_class_register_metas"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The class to register metas on</doc> + <type name="FormatterClass" c:type="GESFormatterClass*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The name of the formatter</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="description" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The formatter description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extensions" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">A list of coma separated file extensions handled +by the formatter. The order of the extensions should match the +list of the structures inside @caps</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The caps the formatter handled, they should match what +gstreamer typefind mechanism will report for the files the formatter +handles.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The version of the formatter</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + <parameter name="rank" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The rank of the formatter</doc> + <type name="Gst.Rank" c:type="GstRank"/> + </parameter> + </parameters> + </method> + </record> + <callback name="FormatterLoadFromURIMethod" c:type="GESFormatterLoadFromURIMethod" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Virtual method for loading a timeline from a given URI. + +Every #GESFormatter subclass needs to implement this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully loaded from the URI, +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </callback> + <record name="FormatterPrivate" c:type="GESFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + </record> + <callback name="FormatterSaveToURIMethod" c:type="GESFormatterSaveToURIMethod" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.h">Virtual method for saving a timeline to a uri. + +Every #GESFormatter subclass needs to implement this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">TRUE if the timeline data was successfully saved to the URI +else FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESFormatter</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">a #gchar * pointing to a URI</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + <class name="Group" c:symbol-prefix="group" c:type="GESGroup" parent="Container" glib:type-name="GESGroup" glib:get-type="ges_group_get_type" glib:type-struct="GroupClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">A #GESGroup controls one or more #GESContainer-s (usually #GESClip-s, +but it can also control other #GESGroup-s). Its children must share +the same #GESTimeline, but can otherwise lie in separate #GESLayer-s +and have different timings. + +To initialise a group, you may want to use ges_container_group(), +and similarly use ges_container_ungroup() to dispose of it. + +A group will maintain the relative #GESTimelineElement:start times of +its children, as well as their relative layer #GESLayer:priority. +Therefore, if one of its children has its #GESTimelineElement:start +set, all other children will have their #GESTimelineElement:start +shifted by the same amount. Similarly, if one of its children moves to +a new layer, the other children will also change layers to maintain the +difference in their layer priorities. For example, if a child moves +from a layer with #GESLayer:priority 1 to a layer with priority 3, then +another child that was in a layer with priority 0 will move to the +layer with priority 2. + +The #GESGroup:start of a group refers to the earliest start +time of its children. If the group's #GESGroup:start is set, all the +children will be shifted equally such that the earliest start time +will match the set value. The #GESGroup:duration of a group is the +difference between the earliest start time and latest end time of its +children. If the group's #GESGroup:duration is increased, the children +whose end time matches the end of the group will be extended +accordingly. If it is decreased, then any child whose end time exceeds +the new end time will also have their duration decreased accordingly. + +A group may span several layers, but for methods such as +ges_timeline_element_get_layer_priority() and +ges_timeline_element_edit() a group is considered to have a layer +priority that is the highest #GESLayer:priority (numerically, the +smallest) of all the layers it spans.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_group_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">Created a new empty group. You may wish to use +ges_container_group() instead, which can return a different +#GESContainer subclass if possible.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">The new empty group.</doc> + <type name="Group" c:type="GESGroup*"/> + </return-value> + </constructor> + <property name="duration" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:duration property. For a +#GESGroup, this is the difference between the earliest +#GESTimelineElement:start time and the latest end time (given by +#GESTimelineElement:start + #GESTimelineElement:duration) amongst +its children.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="in-point" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:in-point property. This has +no meaning for a group and should not be set.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="max-duration" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:max-duration property. This +has no meaning for a group and should not be set.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="priority" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:priority property. +Setting #GESTimelineElement priorities is deprecated as all priority +management is now done by GES itself.</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="start" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-group.c">An overwrite of the #GESTimelineElement:start property. For a +#GESGroup, this is the earliest #GESTimelineElement:start time +amongst its children.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <field name="parent"> + <type name="Container" c:type="GESContainer"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="GroupPrivate" c:type="GESGroupPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="GroupClass" c:type="GESGroupClass" glib:is-gtype-struct-for="Group"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + <field name="parent_class"> + <type name="ContainerClass" c:type="GESContainerClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="GroupPrivate" c:type="GESGroupPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-group.h"/> + </record> + <class name="ImageSource" c:symbol-prefix="image_source" c:type="GESImageSource" deprecated="1" deprecated-version="1.18" parent="VideoSource" glib:type-name="GESImageSource" glib:get-type="ges_image_source_get_type" glib:type-struct="ImageSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-image-source.c">Outputs the video stream from a given file as a still frame. The frame chosen +will be determined by the in-point property on the track element. For image +files, do not set the in-point property.</doc> + <doc-deprecated xml:space="preserve">This won't be used anymore and has been replaced by +#GESUriSource instead which now plugs an `imagefreeze` element when +#ges_uri_source_asset_is_image returns %TRUE.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-image-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-image-source.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ImageSourcePrivate" c:type="GESImageSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="ImageSourceClass" c:type="GESImageSourceClass" glib:is-gtype-struct-for="ImageSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-image-source.h"/> + <field name="parent_class"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ImageSourcePrivate" c:type="GESImageSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-image-source.h"/> + </record> + <class name="Layer" c:symbol-prefix="layer" c:type="GESLayer" parent="GObject.InitiallyUnowned" glib:type-name="GESLayer" glib:get-type="ges_layer_get_type" glib:type-struct="LayerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">#GESLayer-s are responsible for collecting and ordering #GESClip-s. + +A layer within a timeline will have an associated priority, +corresponding to their index within the timeline. A layer with the +index/priority 0 will have the highest priority and the layer with the +largest index will have the lowest priority (the order of priorities, +in this sense, is the _reverse_ of the numerical ordering of the +indices). ges_timeline_move_layer() should be used if you wish to +change how layers are prioritised in a timeline. + +Layers with higher priorities will have their content priorities +over content from lower priority layers, similar to how layers are +used in image editing. For example, if two separate layers both +display video content, then the layer with the higher priority will +have its images shown first. The other layer will only have its image +shown if the higher priority layer has no content at the given +playtime, or is transparent in some way. Audio content in separate +layers will simply play in addition.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_layer_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Creates a new layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A new layer.</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + </constructor> + <virtual-method name="get_objects" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="object_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="object_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_asset" c:identifier="ges_layer_add_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">See ges_layer_add_asset_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The newly created clip.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The asset to extract the new clip from</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:start value to set on the new clip +If `start == #GST_CLOCK_TIME_NONE`, it will be added to the end +of @layer, i.e. it will be set to @layer's duration</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:in-point value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:duration value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="track_types" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESClip:supported-formats to set on the the new +clip, or #GES_TRACK_TYPE_UNKNOWN to use the default</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <method name="add_asset_full" c:identifier="ges_layer_add_asset_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Extracts a new clip from an asset and adds it to the layer with +the given properties.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The newly created clip.</doc> + <type name="Clip" c:type="GESClip*"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The asset to extract the new clip from</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:start value to set on the new clip +If `start == #GST_CLOCK_TIME_NONE`, it will be added to the end +of @layer, i.e. it will be set to @layer's duration</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:in-point value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTimelineElement:duration value to set on the new +clip</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="track_types" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESClip:supported-formats to set on the the new +clip, or #GES_TRACK_TYPE_UNKNOWN to use the default</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <method name="add_clip" c:identifier="ges_layer_add_clip"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">See ges_layer_add_clip_full(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @clip was properly added to @layer, or %FALSE +if @layer refused to add @clip.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip to add</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </method> + <method name="add_clip_full" c:identifier="ges_layer_add_clip_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Adds the given clip to the layer. If the method succeeds, the layer +will take ownership of the clip. + +This method will fail and return %FALSE if @clip already resides in +some layer. It can also fail if the additional clip breaks some +compositional rules (see #GESTimelineElement).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @clip was properly added to @layer, or %FALSE +if @layer refused to add @clip.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip to add</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </method> + <method name="get_active_for_track" c:identifier="ges_layer_get_active_for_track" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets whether the layer is active for the given track. See +ges_layer_set_active_for_tracks().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @layer is active for @track, or %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESTrack to check if @layer is currently active for</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="get_auto_transition" c:identifier="ges_layer_get_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets the #GESLayer:auto-transition of the layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if transitions are automatically added to @layer.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clips" c:identifier="ges_layer_get_clips"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Get the #GESClip-s contained in this layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A list of clips in +@layer.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Clip"/> + </type> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_clips_in_interval" c:identifier="ges_layer_get_clips_in_interval"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets the clips within the layer that appear between @start and @end.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A list of #GESClip-s +that intersect the interval `[start, end)` in @layer.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Clip"/> + </type> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Start of the interval</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">End of the interval</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="ges_layer_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Retrieves the duration of the layer, which is the difference +between the start of the layer (always time 0) and the end (which will +be the end time of the final clip).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The duration of @layer.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The layer to get the duration from</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_priority" c:identifier="ges_layer_get_priority"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Get the priority of the layer. When inside a timeline, this is its +index in the timeline. See ges_timeline_move_layer().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The priority of @layer within its timeline.</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline" c:identifier="ges_layer_get_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Gets the timeline that the layer is a part of.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The timeline that @layer +is currently part of, or %NULL if it is not associated with any +timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="ges_layer_is_empty"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Convenience method to check if the layer is empty (doesn't contain +any #GESClip), or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @layer is empty, %FALSE if it contains at least +one clip.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer to check</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_clip" c:identifier="ges_layer_remove_clip"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Removes the given clip from the layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if @clip was removed from @layer, or %FALSE if the +operation failed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip to remove</doc> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </method> + <method name="set_active_for_tracks" c:identifier="ges_layer_set_active_for_tracks" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Activate or deactivate track elements in @tracks (or in all tracks if @tracks +is %NULL). + +When a layer is deactivated for a track, all the #GESTrackElement-s in +the track that belong to a #GESClip in the layer will no longer be +active in the track, regardless of their individual +#GESTrackElement:active value. + +Note that by default a layer will be active for all of its +timeline's tracks.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">%TRUE if the operation worked %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether elements in @tracks should be active or not</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="tracks" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The list of +tracks @layer should be (de-)active in, or %NULL to include all the tracks +in the @layer's timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Track"/> + </type> + </parameter> + </parameters> + </method> + <method name="set_auto_transition" c:identifier="ges_layer_set_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Sets #GESLayer:auto-transition for the layer. Use +ges_timeline_set_auto_transition() if you want all layers within a +#GESTimeline to have #GESLayer:auto-transition set to %TRUE. Use this +method if you want different values for different layers (and make sure +to keep #GESTimeline:auto-transition as %FALSE for the corresponding +timeline).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="auto_transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether transitions should be automatically added to +the layer</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_priority" c:identifier="ges_layer_set_priority" deprecated="1" deprecated-version="1.16.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Sets the layer to the given priority. See #GESLayer:priority.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_move_layer instead. This deprecation means +that you will not need to handle layer priorities at all yourself, GES +will make sure there is never 'gaps' between layer priorities.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The #GESLayer</doc> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The priority to set</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_layer_set_timeline"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <property name="auto-transition" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether to automatically create a #GESTransitionClip whenever two +#GESSource-s that both belong to a #GESClip in the layer overlap. +See #GESTimeline for what counts as an overlap. + +When a layer is added to a #GESTimeline, if this property is left as +%FALSE, but the timeline's #GESTimeline:auto-transition is %TRUE, it +will be set to %TRUE as well.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="priority" deprecated="1" deprecated-version="1.16.0" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The priority of the layer in the #GESTimeline. 0 is the highest +priority. Conceptually, a timeline is a stack of layers, +and the priority of the layer represents its position in the stack. Two +layers should not have the same priority within a given GESTimeline. + +Note that the timeline needs to be committed (with #ges_timeline_commit) +for the change to be taken into account.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_move_layer instead. This deprecation means +that you will not need to handle layer priorities at all yourself, GES +will make sure there is never 'gaps' between layer priorities.</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <field name="parent"> + <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> + </field> + <field name="timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.h">the #GESTimeline where this layer is being used.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </field> + <field name="min_nle_priority"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="max_nle_priority"> + <type name="guint32" c:type="guint32"/> + </field> + <field name="priv"> + <type name="LayerPrivate" c:type="GESLayerPrivate*"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="active-changed" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Will be emitted whenever the layer is activated or deactivated +for some #GESTrack. See ges_layer_set_active_for_tracks().</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Whether @layer has been made active or de-active in the @tracks</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + <parameter name="tracks" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">A list of #GESTrack +which have been activated or deactivated</doc> + <array name="GLib.PtrArray"> + <type name="Track"/> + </array> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="clip-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Will be emitted after the clip is added to the layer.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip that was added</doc> + <type name="Clip"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="clip-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">Will be emitted after the clip is removed from the layer.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.c">The clip that was removed</doc> + <type name="Clip"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="LayerClass" c:type="GESLayerClass" glib:is-gtype-struct-for="Layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-layer.h">Subclasses can override the @get_objects if they can provide a more +efficient way of providing the list of contained #GESClip-s.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> + </field> + <field name="get_objects" introspectable="0"> + <callback name="get_objects" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="object_added"> + <callback name="object_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="object_removed"> + <callback name="object_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + <parameter name="object" transfer-ownership="none"> + <type name="Clip" c:type="GESClip*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="LayerPrivate" c:type="GESLayerPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-layer.h"/> + </record> + <constant name="META_DESCRIPTION" value="description" c:type="GES_META_DESCRIPTION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The description of the object, to be used in various contexts (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_EXTENSION" value="extension" c:type="GES_META_FORMATTER_EXTENSION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The file extension of files produced by a #GESFormatter (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_MIMETYPE" value="mimetype" c:type="GES_META_FORMATTER_MIMETYPE"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The mimetype used for the file produced by a #GESFormatter (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_NAME" value="name" c:type="GES_META_FORMATTER_NAME"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The name of a formatter, used as the #GESAsset:id for #GESFormatter +assets (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_RANK" value="rank" c:type="GES_META_FORMATTER_RANK"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The rank of a #GESFormatter (a #GstRank).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMATTER_VERSION" value="version" c:type="GES_META_FORMATTER_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The version of a #GESFormatter (double).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_FORMAT_VERSION" value="format-version" c:type="GES_META_FORMAT_VERSION"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The version of the format in which a project is serialized (string).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_MARKER_COLOR" value="marker-color" c:type="GES_META_MARKER_COLOR"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The ARGB color of a #GESMarker (an AARRGGBB hex as a uint).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_VOLUME" value="volume" c:type="GES_META_VOLUME"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The volume for a #GESTrack or a #GESLayer (float).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <constant name="META_VOLUME_DEFAULT" value="1.000000" c:type="GES_META_VOLUME_DEFAULT"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The default volume for a #GESTrack or a #GESLayer as a float.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <type name="gdouble" c:type="gdouble"/> + </constant> + <constant name="MULTI_FILE_URI_PREFIX" value="multifile://" c:type="GES_MULTI_FILE_URI_PREFIX"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <type name="utf8" c:type="gchar*"/> + </constant> + <class name="Marker" c:symbol-prefix="marker" c:type="GESMarker" version="1.18" parent="GObject.Object" glib:type-name="GESMarker" glib:get-type="ges_marker_get_type" glib:type-struct="MarkerClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.h">A timed #GESMetaContainer object.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <implements name="MetaContainer"/> + <property name="position" version="1.18" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Current position (in nanoseconds) of the #GESMarker</doc> + <type name="guint64" c:type="guint64"/> + </property> + </class> + <record name="MarkerClass" c:type="GESMarkerClass" glib:is-gtype-struct-for="Marker"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + </record> + <bitfield name="MarkerFlags" version="1.20" glib:type-name="GESMarkerFlags" glib:get-type="ges_marker_flags_get_type" c:type="GESMarkerFlags"> + <member name="none" value="0" c:identifier="GES_MARKER_FLAG_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Marker does not serve any special purpose.</doc> + </member> + <member name="snappable" value="1" c:identifier="GES_MARKER_FLAG_SNAPPABLE" glib:nick="snappable"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Marker can be a snapping target.</doc> + </member> + </bitfield> + <class name="MarkerList" c:symbol-prefix="marker_list" c:type="GESMarkerList" version="1.18" parent="GObject.Object" glib:type-name="GESMarkerList" glib:get-type="ges_marker_list_get_type" glib:type-struct="MarkerListClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">A #GESMarker can be colored by setting the #GES_META_MARKER_COLOR meta.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <constructor name="new" c:identifier="ges_marker_list_new" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Creates a new #GESMarkerList.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">A new #GESMarkerList</doc> + <type name="MarkerList" c:type="GESMarkerList*"/> + </return-value> + </constructor> + <method name="add" c:identifier="ges_marker_list_add" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">The newly-added marker, the list keeps ownership +of the marker</doc> + <type name="Marker" c:type="GESMarker*"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">The position of the new marker</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_markers" c:identifier="ges_marker_list_get_markers" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">a #GList +of the #GESMarker within the GESMarkerList. The user will have +to unref each #GESMarker and free the #GList.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Marker"/> + </type> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + </parameters> + </method> + <method name="move" c:identifier="ges_marker_list_move" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Moves a @marker in a @list to a new @position</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">%TRUE if the marker could be moved, %FALSE otherwise + (if the marker was not present in the list for example)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + <parameter name="marker" transfer-ownership="none"> + <type name="Marker" c:type="GESMarker*"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="remove" c:identifier="ges_marker_list_remove" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Removes @marker from @list, this decreases the refcount of the +marker by 1.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">%TRUE if the marker could be removed, %FALSE otherwise + (if the marker was not present in the list for example)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + <parameter name="marker" transfer-ownership="none"> + <type name="Marker" c:type="GESMarker*"/> + </parameter> + </parameters> + </method> + <method name="size" c:identifier="ges_marker_list_size" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">The number of markers in @list</doc> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <instance-parameter name="list" transfer-ownership="none"> + <type name="MarkerList" c:type="GESMarkerList*"/> + </instance-parameter> + </parameters> + </method> + <property name="flags" version="1.20" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Flags indicating how markers on the list should be treated.</doc> + <type name="MarkerFlags"/> + </property> + <glib:signal name="marker-added" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Will be emitted after the marker was added to the marker-list.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the position of the added marker</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="marker" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the #GESMarker that was added.</doc> + <type name="Marker"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="marker-moved" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Will be emitted after the marker was moved to.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="previous_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the previous position of the marker</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="new_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the new position of the marker</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + <parameter name="marker" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the #GESMarker that was moved.</doc> + <type name="Marker"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="marker-removed" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">Will be emitted after the marker was removed the marker-list.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="marker" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-marker-list.c">the #GESMarker that was removed.</doc> + <type name="Marker"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="MarkerListClass" c:type="GESMarkerListClass" glib:is-gtype-struct-for="MarkerList"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-marker-list.h"/> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + </record> + <interface name="MetaContainer" c:symbol-prefix="meta_container" c:type="GESMetaContainer" glib:type-name="GESMetaContainer" glib:get-type="ges_meta_container_get_type" glib:type-struct="MetaContainerInterface"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GObject that implements #GESMetaContainer can have metadata set on +it, that is data that is unimportant to its function within GES, but +may hold some useful information. In particular, +ges_meta_container_set_meta() can be used to store any #GValue under +any generic field (specified by a string key). The same method can also +be used to remove the field by passing %NULL. A number of convenience +methods are also provided to make it easier to set common value types. +The metadata can then be read with ges_meta_container_get_meta() and +similar convenience methods. + +## Registered Fields + +By default, any #GValue can be set for a metadata field. However, you +can register some fields as static, that is they only allow values of a +specific type to be set under them, using +ges_meta_container_register_meta() or +ges_meta_container_register_static_meta(). The set #GESMetaFlag will +determine whether the value can be changed, but even if it can be +changed, it must be changed to a value of the same type. + +Internally, some GES objects will be initialized with static metadata +fields. These will correspond to some standard keys, such as +#GES_META_VOLUME.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <method name="add_metas_from_string" c:identifier="ges_meta_container_add_metas_from_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Deserializes the given string, and adds and sets the found fields and +their values on the container. The string should be the return of +ges_meta_container_metas_to_string().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the fields in @str was successfully deserialized +and added to @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="str" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A string to deserialize and add to @container</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="check_meta_registered" c:identifier="ges_meta_container_check_meta_registered"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Checks whether the specified field has been registered as static, and +gets the registered type and flags of the field, as used in +ges_meta_container_register_meta() and +ges_meta_container_register_static_meta().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field has been registered on +@container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to check</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="flags" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A destination to get the registered flags of +the field, or %NULL to ignore</doc> + <type name="MetaFlag" c:type="GESMetaFlag*"/> + </parameter> + <parameter name="type" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A destination to get the registered type of +the field, or %NULL to ignore</doc> + <type name="GType" c:type="GType*"/> + </parameter> + </parameters> + </method> + <method name="foreach" c:identifier="ges_meta_container_foreach"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Calls the given function on each of the meta container's set metadata +fields.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="call" closure="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A function to call on each of @container's set +metadata fields</doc> + <type name="MetaForeachFunc" c:type="GESMetaForeachFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">User data to send to @func</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="get_boolean" c:identifier="ges_meta_container_get_boolean"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current boolean value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the boolean value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gboolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_date" c:identifier="ges_meta_container_get_date"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current date value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the date value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="GLib.Date" c:type="GDate**"/> + </parameter> + </parameters> + </method> + <method name="get_date_time" c:identifier="ges_meta_container_get_date_time"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current date time value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the date time value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="Gst.DateTime" c:type="GstDateTime**"/> + </parameter> + </parameters> + </method> + <method name="get_double" c:identifier="ges_meta_container_get_double"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current double value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the double value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gdouble" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_float" c:identifier="ges_meta_container_get_float"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current float value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the float value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gfloat" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_int" c:identifier="ges_meta_container_get_int"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current int value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the int value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_int64" c:identifier="ges_meta_container_get_int64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current int64 value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the int64 value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="gint64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_marker_list" c:identifier="ges_meta_container_get_marker_list" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current marker list value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A copy of the marker list value under @key, +or %NULL if it could not be fetched.</doc> + <type name="MarkerList" c:type="GESMarkerList*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_meta" c:identifier="ges_meta_container_get_meta"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current value of the specified field of the meta container.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value under @key, or %NULL if @container +does not have the field set.</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_string" c:identifier="ges_meta_container_get_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current string value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The string value under @meta_item, or %NULL +if it could not be fetched.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_uint" c:identifier="ges_meta_container_get_uint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current uint value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the uint value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64" c:identifier="ges_meta_container_get_uint64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Gets the current uint64 value of the specified field of the meta +container. If the field does not have a set value, or it is of the +wrong type, the method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the uint64 value under @meta_item was copied +to @dest.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="dest" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Destination into which the value under @meta_item +should be copied.</doc> + <type name="guint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="metas_to_string" c:identifier="ges_meta_container_metas_to_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Serializes the set metadata fields of the meta container to a string.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A serialized @container.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + </parameters> + </method> + <method name="register_meta" c:identifier="ges_meta_container_register_meta"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given value, and registers the field to only hold a value of the +same type. After calling this, only values of the same type as @value +can be set for this field. The given flags can be set to make this +field only readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold @value types, with the given @flags, and the +field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_boolean" c:identifier="ges_meta_container_register_meta_boolean"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given boolean value, and registers the field to only hold a boolean +typed value. After calling this, only boolean values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold boolean typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="register_meta_date" c:identifier="ges_meta_container_register_meta_date"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date value, and registers the field to only hold a date +typed value. After calling this, only date values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold date typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="GLib.Date" c:type="const GDate*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_date_time" c:identifier="ges_meta_container_register_meta_date_time"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date time value, and registers the field to only hold a date time +typed value. After calling this, only date time values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold date time typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="Gst.DateTime" c:type="const GstDateTime*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_double" c:identifier="ges_meta_container_register_meta_double"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given double value, and registers the field to only hold a double +typed value. After calling this, only double values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold double typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="register_meta_float" c:identifier="ges_meta_container_register_meta_float"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given float value, and registers the field to only hold a float +typed value. After calling this, only float values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold float typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="register_meta_int" c:identifier="ges_meta_container_register_meta_int"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int value, and registers the field to only hold an int +typed value. After calling this, only int values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold int typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="register_meta_int64" c:identifier="ges_meta_container_register_meta_int64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int64 value, and registers the field to only hold an int64 +typed value. After calling this, only int64 values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold int64 typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="register_meta_string" c:identifier="ges_meta_container_register_meta_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given string value, and registers the field to only hold a string +typed value. After calling this, only string values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold string typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="register_meta_uint" c:identifier="ges_meta_container_register_meta_uint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint value, and registers the field to only hold a uint +typed value. After calling this, only uint values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold uint typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="register_meta_uint64" c:identifier="ges_meta_container_register_meta_uint64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint64 value, and registers the field to only hold a uint64 +typed value. After calling this, only uint64 values can be set for +this field. The given flags can be set to make this field only +readable after calling this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold uint64 typed values, with the given @flags, +and the field was successfully set to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set for the registered field</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="register_static_meta" c:identifier="ges_meta_container_register_static_meta" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Registers a static metadata field on the container to only hold the +specified type. After calling this, setting a value under this field +can only succeed if its type matches the registered type of the field. + +Unlike ges_meta_container_register_meta(), no (initial) value is set +for this field, which means you can use this method to reserve the +space to be _optionally_ set later. + +Note that if a value has already been set for the field being +registered, then its type must match the registering type, and its +value will be left in place. If the field has no set value, then +you will likely want to include #GES_META_WRITABLE in @flags to allow +the value to be set later.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if the @meta_item field was successfully registered on +@container to only hold @type values, with the given @flags.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="flags" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Flags to be used for the registered field</doc> + <type name="MetaFlag" c:type="GESMetaFlag"/> + </parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to register</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The required value type for the registered field</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="set_boolean" c:identifier="ges_meta_container_set_boolean"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given boolean value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_date" c:identifier="ges_meta_container_set_date"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="GLib.Date" c:type="const GDate*"/> + </parameter> + </parameters> + </method> + <method name="set_date_time" c:identifier="ges_meta_container_set_date_time"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given date time value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="Gst.DateTime" c:type="const GstDateTime*"/> + </parameter> + </parameters> + </method> + <method name="set_double" c:identifier="ges_meta_container_set_double"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given double value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_float" c:identifier="ges_meta_container_set_float"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given float value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gfloat" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="set_int" c:identifier="ges_meta_container_set_int"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_int64" c:identifier="ges_meta_container_set_int64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given int64 value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="set_marker_list" c:identifier="ges_meta_container_set_marker_list" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given marker list value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="list" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="MarkerList" c:type="const GESMarkerList*"/> + </parameter> + </parameters> + </method> + <method name="set_meta" c:identifier="ges_meta_container_set_meta"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to a +copy of the given value. If the given @value is %NULL, the field +given by @meta_item is removed and %TRUE is returned.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item, or %NULL to +remove the corresponding field</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_string" c:identifier="ges_meta_container_set_string"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given string value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_uint" c:identifier="ges_meta_container_set_uint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_uint64" c:identifier="ges_meta_container_set_uint64"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">Sets the value of the specified field of the meta container to the +given uint64 value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">%TRUE if @value was set under @meta_item for @container.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="GESMetaContainer*"/> + </instance-parameter> + <parameter name="meta_item" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The value to set under @meta_item</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <glib:signal name="notify-meta" when="first" no-recurse="1" detailed="1" no-hooks="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">This is emitted for a meta container whenever the metadata under one +of its fields changes, is set for the first time, or is removed. In +the latter case, @value will be %NULL.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The key for the @container field that changed</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.c">The new value under @key</doc> + <type name="GObject.Value"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <record name="MetaContainerInterface" c:type="GESMetaContainerInterface" glib:is-gtype-struct-for="MetaContainer"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <field name="parent_iface"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="MetaFlag" glib:type-name="GESMetaFlag" glib:get-type="ges_meta_flag_get_type" c:type="GESMetaFlag"> + <member name="readable" value="1" c:identifier="GES_META_READABLE" glib:nick="readable"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The metadata is readable</doc> + </member> + <member name="writable" value="2" c:identifier="GES_META_WRITABLE" glib:nick="writable"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The metadata is writable</doc> + </member> + <member name="readwrite" value="3" c:identifier="GES_META_READ_WRITE" glib:nick="readwrite"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The metadata is readable and writable</doc> + </member> + </bitfield> + <callback name="MetaForeachFunc" c:type="GESMetaForeachFunc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">A method to be called on all of a meta container's fields.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-meta-container.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="container" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">A #GESMetaContainer</doc> + <type name="MetaContainer" c:type="const GESMetaContainer*"/> + </parameter> + <parameter name="key" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The key for one of @container's fields</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">The set value under @key</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-meta-container.h">User data</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="MultiFileSource" c:symbol-prefix="multi_file_source" c:type="GESMultiFileSource" deprecated="1" deprecated-version="1.18" parent="VideoSource" glib:type-name="GESMultiFileSource" glib:get-type="ges_multi_file_source_get_type" glib:type-struct="MultiFileSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.c">Outputs the video stream from a given image sequence. The start frame chosen +will be determined by the in-point property on the track element. + +This should not be used anymore, the `imagesequence://` protocol should be +used instead. Check the #imagesequencesrc GStreamer element for more +information.</doc> + <doc-deprecated xml:space="preserve">Use #GESUriSource instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_multi_file_source_new"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <return-value transfer-ownership="none"> + <type name="MultiFileSource" c:type="GESMultiFileSource*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </constructor> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.c">The uri of the file/resource to use. You can set a start index, +a stop index and a sequence pattern. +The format is <multifile://start:stop\@location-pattern>. +The pattern uses printf string formating. + +Example uris: + +multifile:///home/you/image\%03d.jpg + +multifile://20:50@/home/you/sequence/\%04d.png</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="MultiFileSourcePrivate" c:type="GESMultiFileSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="MultiFileSourceClass" c:type="GESMultiFileSourceClass" glib:is-gtype-struct-for="MultiFileSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + <field name="parent_class"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="MultiFileSourcePrivate" c:type="GESMultiFileSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-multi-file-source.h"/> + </record> + <class name="Operation" c:symbol-prefix="operation" c:type="GESOperation" parent="TrackElement" abstract="1" glib:type-name="GESOperation" glib:get-type="ges_operation_get_type" glib:type-struct="OperationClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-operation.h">Base class for overlays, transitions, and effects</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="TrackElement" c:type="GESTrackElement"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="OperationPrivate" c:type="GESOperationPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="OperationClass" c:type="GESOperationClass" glib:is-gtype-struct-for="Operation"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TrackElementClass" c:type="GESTrackElementClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="OperationClip" c:symbol-prefix="operation_clip" c:type="GESOperationClip" parent="Clip" abstract="1" glib:type-name="GESOperationClip" glib:get-type="ges_operation_clip_get_type" glib:type-struct="OperationClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-operation-clip.c">Operations are any kind of object that both outputs AND consumes data.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="Clip" c:type="GESClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="OperationClipPrivate" c:type="GESOperationClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="OperationClipClass" c:type="GESOperationClipClass" glib:is-gtype-struct-for="OperationClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="ClipClass" c:type="GESClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="OperationClipPrivate" c:type="GESOperationClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation-clip.h"/> + </record> + <record name="OperationPrivate" c:type="GESOperationPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-operation.h"/> + </record> + <class name="OverlayClip" c:symbol-prefix="overlay_clip" c:type="GESOverlayClip" parent="OperationClip" abstract="1" glib:type-name="GESOverlayClip" glib:get-type="ges_overlay_clip_get_type" glib:type-struct="OverlayClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.c">Overlays are objects which modify the underlying layer(s). + +Examples of overlays include text, image watermarks, or audio dubbing. + +Transitions, which change from one source to another over time, are +not considered overlays.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="OperationClip" c:type="GESOperationClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="OverlayClipPrivate" c:type="GESOverlayClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="OverlayClipClass" c:type="GESOverlayClipClass" glib:is-gtype-struct-for="OverlayClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h">parent class</doc> + <type name="OperationClipClass" c:type="GESOperationClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="OverlayClipPrivate" c:type="GESOverlayClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-overlay-clip.h"/> + </record> + <constant name="PADDING" value="4" c:type="GES_PADDING"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="PADDING_LARGE" value="20" c:type="GES_PADDING_LARGE"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-types.h"/> + <type name="gint" c:type="gint"/> + </constant> + <class name="Pipeline" c:symbol-prefix="pipeline" c:type="GESPipeline" parent="Gst.Pipeline" glib:type-name="GESPipeline" glib:get-type="ges_pipeline_get_type" glib:type-struct="PipelineClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline can take an audio-video #GESTimeline and conveniently +link its #GESTrack-s to an internal #playsink element, for +preview/playback, and an internal #encodebin element, for rendering. +You can switch between these modes using ges_pipeline_set_mode(). + +You can choose the specific audio and video sinks used for previewing +the timeline by setting the #GESPipeline:audio-sink and +#GESPipeline:video-sink properties. + +You can set the encoding and save location used in rendering by calling +ges_pipeline_set_render_settings().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <implements name="Gst.ChildProxy"/> + <implements name="GstVideo.VideoOverlay"/> + <constructor name="new" c:identifier="ges_pipeline_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Creates a new pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The newly created pipeline.</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </return-value> + </constructor> + <method name="get_mode" c:identifier="ges_pipeline_get_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets the #GESPipeline:mode of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The current mode of @pipeline.</doc> + <type name="PipelineFlags" c:type="GESPipelineFlags"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_thumbnail" c:identifier="ges_pipeline_get_thumbnail"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets a sample from the pipeline of the currently displayed image in +preview, in the specified format. + +Note that if you use "ANY" caps for @caps, then the current format of +the image is used. You can retrieve these caps from the returned sample +with gst_sample_get_caps().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A sample of @self's current image preview in +the format given by @caps, or %NULL if an error prevented fetching the +sample.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in #GST_STATE_PLAYING or #GST_STATE_PAUSED</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Some caps to specifying the desired format, or +#GST_CAPS_ANY to use the native format</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_thumbnail_rgb24" c:identifier="ges_pipeline_get_thumbnail_rgb24"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets a sample from the pipeline of the currently displayed image in +preview, in the 24-bit "RGB" format and of the desired width and +height. + +See ges_pipeline_get_thumbnail().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A sample of @self's current image preview in +the "RGB" format, scaled to @width and @height, or %NULL if an error +prevented fetching the sample.</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in %GST_STATE_PLAYING or %GST_STATE_PAUSED</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel width of the image, or -1 to use the native +size</doc> + <type name="gint" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel height of the image, or -1 to use the +native size</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="preview_get_audio_sink" c:identifier="ges_pipeline_preview_get_audio_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets the #GESPipeline:audio-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The audio sink used by @self for preview.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="preview_get_video_sink" c:identifier="ges_pipeline_preview_get_video_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Gets the #GESPipeline:video-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The video sink used by @self for preview.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="preview_set_audio_sink" c:identifier="ges_pipeline_preview_set_audio_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Sets the #GESPipeline:audio-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in #GST_STATE_NULL</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="sink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A audio sink for @self to use for preview</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="preview_set_video_sink" c:identifier="ges_pipeline_preview_set_video_sink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Sets the #GESPipeline:video-sink of the pipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in #GST_STATE_NULL</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="sink" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A video sink for @self to use for preview</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </method> + <method name="save_thumbnail" c:identifier="ges_pipeline_save_thumbnail" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Saves the currently displayed image of the pipeline in preview to the +given location, in the specified dimensions and format.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if @self's current image preview was successfully saved +to @location using the given @format, @height and @width.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline in %GST_STATE_PLAYING or %GST_STATE_PAUSED</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="width" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel width of the image, or -1 to use the native +size</doc> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The requested pixel height of the image, or -1 to use the +native size</doc> + <type name="gint" c:type="int"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The desired mime type (for example, "image/jpeg")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="location" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The path to save the thumbnail to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_mode" c:identifier="ges_pipeline_set_mode"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Sets the #GESPipeline:mode of the pipeline. + +Note that the pipeline will be set to #GST_STATE_NULL during this call to +perform the necessary changes. You will need to set the state again yourself +after calling this. + +> **NOTE**: [Rendering settings](ges_pipeline_set_render_settings) need to be +> set before setting @mode to #GES_PIPELINE_MODE_RENDER or +> #GES_PIPELINE_MODE_SMART_RENDER, the call to this method will fail +> otherwise.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if the mode of @pipeline was successfully set to @mode.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The mode to set for @pipeline</doc> + <type name="PipelineFlags" c:type="GESPipelineFlags"/> + </parameter> + </parameters> + </method> + <method name="set_render_settings" c:identifier="ges_pipeline_set_render_settings"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Specifies encoding setting to be used by the pipeline to render its +#GESPipeline:timeline, and where the result should be written to. + +This method **must** be called before setting the pipeline mode to +#GES_PIPELINE_MODE_RENDER.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if the settings were successfully set on @pipeline.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="output_uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The URI to save the #GESPipeline:timeline rendering +result to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The encoding to use for rendering the #GESPipeline:timeline</doc> + <type name="GstPbutils.EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_pipeline_set_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">Takes the given timeline and sets it as the #GESPipeline:timeline for +the pipeline. + +Note that you should only call this method once on a given pipeline +because a pipeline can not have its #GESPipeline:timeline changed after +it has been set.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">%TRUE if @timeline was successfully given to @pipeline.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="pipeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">A #GESPipeline</doc> + <type name="Pipeline" c:type="GESPipeline*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The timeline to set for @pipeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <property name="audio-filter" version="1.6.0" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The audio filter(s) to apply during playback in preview mode, +immediately before the #GESPipeline:audio-sink. This exposes the +#playsink:audio-filter property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <property name="audio-sink" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The audio sink used for preview. This exposes the +#playsink:audio-sink property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <property name="mode" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The pipeline's mode. In preview mode (for audio or video, or both) +the pipeline can display the timeline's content to an end user. In +rendering mode the pipeline can encode the timeline's content and +save it to a file.</doc> + <type name="PipelineFlags"/> + </property> + <property name="timeline" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The timeline used by this pipeline, whose content it will play and +render, or %NULL if the pipeline does not yet have a timeline. + +Note that after you set the timeline for the first time, subsequent +calls to change the timeline will fail.</doc> + <type name="Timeline"/> + </property> + <property name="video-filter" version="1.6.0" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The video filter(s) to apply during playback in preview mode, +immediately before the #GESPipeline:video-sink. This exposes the +#playsink:video-filter property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <property name="video-sink" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.c">The video sink used for preview. This exposes the +#playsink:video-sink property of the internal #playsink.</doc> + <type name="Gst.Element"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="Gst.Pipeline" c:type="GstPipeline"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="PipelinePrivate" c:type="GESPipelinePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="PipelineClass" c:type="GESPipelineClass" glib:is-gtype-struct-for="Pipeline"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + <field name="parent_class" readable="0" private="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pipeline.h">parent class</doc> + <type name="Gst.PipelineClass" c:type="GstPipelineClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <bitfield name="PipelineFlags" glib:type-name="GESPipelineFlags" glib:get-type="ges_pipeline_flags_get_type" c:type="GESPipelineFlags"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The various modes a #GESPipeline can be configured to.</doc> + <member name="audio_preview" value="1" c:identifier="GES_PIPELINE_MODE_PREVIEW_AUDIO" glib:nick="audio_preview"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Output the #GESPipeline:timeline's +audio to the soundcard</doc> + </member> + <member name="video_preview" value="2" c:identifier="GES_PIPELINE_MODE_PREVIEW_VIDEO" glib:nick="video_preview"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Output the #GESPipeline:timeline's +video to the screen</doc> + </member> + <member name="full_preview" value="3" c:identifier="GES_PIPELINE_MODE_PREVIEW" glib:nick="full_preview"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Output both the #GESPipeline:timeline's +audio and video to the soundcard and screen (default)</doc> + </member> + <member name="render" value="4" c:identifier="GES_PIPELINE_MODE_RENDER" glib:nick="render"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Render the #GESPipeline:timeline with +forced decoding (the underlying #encodebin has its +#encodebin:avoid-reencoding property set to %FALSE)</doc> + </member> + <member name="smart_render" value="8" c:identifier="GES_PIPELINE_MODE_SMART_RENDER" glib:nick="smart_render"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Render the #GESPipeline:timeline, +avoiding decoding/reencoding (the underlying #encodebin has its +#encodebin:avoid-reencoding property set to %TRUE). +> NOTE: Smart rendering can not work in tracks where #GESTrack:mixing +> is enabled.</doc> + </member> + </bitfield> + <record name="PipelinePrivate" c:type="GESPipelinePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pipeline.h"/> + </record> + <class name="PitiviFormatter" c:symbol-prefix="pitivi_formatter" c:type="GESPitiviFormatter" deprecated="1" deprecated-version="1.0" parent="Formatter" glib:type-name="GESPitiviFormatter" glib:get-type="ges_pitivi_formatter_get_type" glib:type-struct="PitiviFormatterClass"> + <attribute name="doc.skip" value="true"/> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.c">This is a legacy format and you should avoid to use it. The formatter +is really not in good shape and is deprecated.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + <implements name="Extractable"/> + <constructor name="new" c:identifier="ges_pitivi_formatter_new"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + <return-value transfer-ownership="none"> + <type name="PitiviFormatter" c:type="GESPitiviFormatter*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="Formatter" c:type="GESFormatter"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="PitiviFormatterPrivate" c:type="GESPitiviFormatterPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="PitiviFormatterClass" c:type="GESPitiviFormatterClass" glib:is-gtype-struct-for="PitiviFormatter"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="FormatterClass" c:type="GESFormatterClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="PitiviFormatterPrivate" c:type="GESPitiviFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-pitivi-formatter.h"/> + </record> + <class name="Project" c:symbol-prefix="project" c:type="GESProject" parent="Asset" glib:type-name="GESProject" glib:get-type="ges_project_get_type" glib:type-struct="ProjectClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESProject is used to control a set of #GESAsset and is a +#GESAsset with `GES_TYPE_TIMELINE` as @extractable_type itself. That +means that you can extract #GESTimeline from a project as followed: + +|[ + GESProject *project; + GESTimeline *timeline; + + project = ges_project_new ("file:///path/to/a/valid/project/uri"); + + // Here you can connect to the various signal to get more infos about + // what is happening and recover from errors if possible + ... + + timeline = ges_asset_extract (GES_ASSET (project)); +]| + +The #GESProject class offers a higher level API to handle #GESAsset-s. +It lets you request new asset, and it informs you about new assets through +a set of signals. Also it handles problem such as missing files/missing +#GstElement and lets you try to recover from those. + +## Subprojects + +In order to add a subproject, the only thing to do is to add the subproject +to the main project: + +``` c +ges_project_add_asset (project, GES_ASSET (subproject)); +``` +then the subproject will be serialized in the project files. To use +the subproject in a timeline, you should use a #GESUriClip with the +same subproject URI. + +When loading a project with subproject, subprojects URIs will be temporary +writable local files. If you want to edit the subproject timeline, +you should retrieve the subproject from the parent project asset list and +extract the timeline with ges_asset_extract() and save it at +the same temporary location.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <constructor name="new" c:identifier="ges_project_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Creates a new #GESProject and sets its uri to @uri if provided. Note that +if @uri is not valid or %NULL, the uri of the project will then be set +the first time you save the project. If you then save the project to +other locations, it will never be updated again and the first valid URI is +the URI it will keep refering to.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A newly created #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The uri to be set after creating the project.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="asset_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="asset_loading"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="asset_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="loaded"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="loading" version="1.18"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The self</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The loading timeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="loading_error"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="missing_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="wrong_asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_asset" c:identifier="ges_project_add_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Adds a #GESAsset to @project, the project will keep a reference on +@asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the asset could be added %FALSE it was already +in the project</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESAsset to add to @project</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="add_encoding_profile" c:identifier="ges_project_add_encoding_profile"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Adds @profile to the project. It lets you save in what format +the project has been renders and keep a reference to those formats. +Also, those formats will be saves to the project file when possible.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if @profile could be added, %FALSE otherwize</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="profile" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GstEncodingProfile to add to the project. If a profile with +the same name already exists, it will be replaced</doc> + <type name="GstPbutils.EncodingProfile" c:type="GstEncodingProfile*"/> + </parameter> + </parameters> + </method> + <method name="add_formatter" c:identifier="ges_project_add_formatter" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Adds a formatter as used to load @project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The project to add a formatter to</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="formatter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A formatter used by @project</doc> + <type name="Formatter" c:type="GESFormatter*"/> + </parameter> + </parameters> + </method> + <method name="create_asset" c:identifier="ges_project_create_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Create and add a #GESAsset to @project. You should connect to the +"asset-added" signal to get the asset when it finally gets added to +@project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the asset started to be added %FALSE it was already +in the project</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The id of the asset to create and add to @project</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GType of the asset to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="create_asset_sync" c:identifier="ges_project_create_asset_sync" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Create and add a #GESAsset to @project. You should connect to the +"asset-added" signal to get the asset when it finally gets added to +@project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The newly created #GESAsset or %NULL.</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The id of the asset to create and add to @project</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GType of the asset to create</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_asset" c:identifier="ges_project_get_asset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset with +@id or %NULL if no asset with @id as an ID</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The id of the asset to retrieve</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The extractable_type of the asset +to retrieve from @object</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="get_loading_assets" c:identifier="ges_project_get_loading_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Get the assets that are being loaded</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A set of loading asset +that will be added to @project. Note that those Asset are *not* loaded yet, +and thus can not be used</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_uri" c:identifier="ges_project_get_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Retrieve the uri that is currently set on @project</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">a newly allocated string representing uri.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_assets" c:identifier="ges_project_list_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">List all @asset contained in @project filtering per extractable_type +as defined by @filter. It copies the asset and thus will not be updated +in time.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The list of +#GESAsset the object contains</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Type of assets to list, `GES_TYPE_EXTRACTABLE` will list +all assets</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="list_encoding_profiles" c:identifier="ges_project_list_encoding_profiles"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Lists the encoding profile that have been set to @project. The first one +is the latest added.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The +list of #GstEncodingProfile used in @project</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="GstPbutils.EncodingProfile"/> + </type> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + </parameters> + </method> + <method name="load" c:identifier="ges_project_load" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Loads @project into @timeline</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the project could be loaded %FALSE otherwize.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject that has an @uri set already</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A blank timeline to load @project into</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <method name="remove_asset" c:identifier="ges_project_remove_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">remove a @asset to from @project.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the asset could be removed %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESAsset to remove from @project</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </method> + <method name="save" c:identifier="ges_project_save" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Save the timeline of @project to @uri. You should make sure that @timeline +is one of the timelines that have been extracted from @project +(using ges_asset_extract (@project);)</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE if the project could be save, %FALSE otherwize</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="project" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">A #GESProject to save</doc> + <type name="Project" c:type="GESProject*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESTimeline to save, it must have been extracted from @project</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The uri where to save @project and @timeline</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="formatter_asset" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The formatter asset to +use or %NULL. If %NULL, will try to save in the same format as the one +from which the timeline as been loaded or default to the best formatter +as defined in #ges_find_formatter_for_uri</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent"> + <type name="Asset" c:type="GESAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="ProjectPrivate" c:type="GESProjectPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="asset-added" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset that has been added to @project</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="asset-loading" when="last" version="1.8"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset that started loading</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="asset-removed" when="last"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESAsset that has been removed from @project</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="error-loading" when="last" version="1.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The timeline that failed loading</doc> + <type name="Timeline"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GError defining the error that occured</doc> + <type name="GLib.Error"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="error-loading-asset" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">Informs you that a #GESAsset could not be created. In case of +missing GStreamer plugins, the error will be set to #GST_CORE_ERROR +#GST_CORE_ERROR_MISSING_PLUGIN</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GError defining the error that occured, might be %NULL</doc> + <type name="GLib.Error"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The @id of the asset that failed loading</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The @extractable_type of the asset that +failed loading</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="loaded" when="first"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESTimeline that completed loading</doc> + <type name="Timeline"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="loading" when="first" version="1.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The #GESTimeline that started loading</doc> + <type name="Timeline"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="missing-uri" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">|[ +static gchar +source_moved_cb (GESProject *project, GError *error, GESAsset *asset_with_error) +{ + return g_strdup ("file:///the/new/uri.ogg"); +} + +static int +main (int argc, gchar ** argv) +{ + GESTimeline *timeline; + GESProject *project = ges_project_new ("file:///some/uri.xges"); + + g_signal_connect (project, "missing-uri", source_moved_cb, NULL); + timeline = ges_asset_extract (GES_ASSET (project)); +} +]|</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The new URI of @wrong_asset</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="error" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The error that happened</doc> + <type name="GLib.Error"/> + </parameter> + <parameter name="wrong_asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.c">The asset with the wrong ID, you should us it and its content +only to find out what the new location is.</doc> + <type name="Asset"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="ProjectClass" c:type="GESProjectClass" glib:is-gtype-struct-for="Project"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <field name="parent_class"> + <type name="AssetClass" c:type="GESAssetClass"/> + </field> + <field name="asset_added"> + <callback name="asset_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="asset_loading"> + <callback name="asset_loading"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="asset_removed"> + <callback name="asset_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="missing_uri"> + <callback name="missing_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="wrong_asset" transfer-ownership="none"> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="loading_error"> + <callback name="loading_error"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="error" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="id" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="extractable_type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </callback> + </field> + <field name="loaded"> + <callback name="loaded"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="loading"> + <callback name="loading"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The self</doc> + <type name="Project" c:type="GESProject*"/> + </parameter> + <parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-project.h">The loading timeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="ProjectPrivate" c:type="GESProjectPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + </record> + <class name="Source" c:symbol-prefix="source" c:type="GESSource" parent="TrackElement" glib:type-name="GESSource" glib:get-type="ges_source_get_type" glib:type-struct="SourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">Base class for single-media sources</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="create_source" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">Creates the GstElement to put in the source topbin. Other elements will be +queued, like a volume. In the case of a AudioUriSource, for example, the +subclass will return a decodebin, and we will append a volume.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The source element to use.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The #GESAudioSource</doc> + <type name="Source" c:type="GESSource*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="select_pad" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">Check whether @pad should be exposed/used.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">%TRUE if @pad should be used %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The @source for which to check if @pad should be used or not</doc> + <type name="Source" c:type="GESSource*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The pad to check</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent" readable="0" private="1"> + <type name="TrackElement" c:type="GESTrackElement"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="SourcePrivate" c:type="GESSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="SourceClass" c:type="GESSourceClass" glib:is-gtype-struct-for="Source"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TrackElementClass" c:type="GESTrackElementClass"/> + </field> + <field name="select_pad"> + <callback name="select_pad"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">%TRUE if @pad should be used %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The @source for which to check if @pad should be used or not</doc> + <type name="Source" c:type="GESSource*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The pad to check</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_source"> + <callback name="create_source"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The source element to use.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source.h">The #GESAudioSource</doc> + <type name="Source" c:type="GESSource*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="2"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="SourceClip" c:symbol-prefix="source_clip" c:type="GESSourceClip" parent="Clip" glib:type-name="GESSourceClip" glib:get-type="ges_source_clip_get_type" glib:type-struct="SourceClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source-clip.c">#GESSourceClip-s are clips whose core elements are #GESSource-s. + +## Effects + +#GESSourceClip-s can also have #GESBaseEffect-s added as non-core +elements. These effects are applied to the core sources of the clip +that they share a #GESTrack with. See #GESClip for how to add and move +these effects from the clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new_time_overlay" c:identifier="ges_source_clip_new_time_overlay" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-time-overlay-clip.c">Creates a new #GESSourceClip that renders a time overlay on top</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-time-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-time-overlay-clip.c">The newly created #GESSourceClip, +or %NULL if there was an error.</doc> + <type name="SourceClip" c:type="GESSourceClip*"/> + </return-value> + </constructor> + <field name="parent"> + <type name="Clip" c:type="GESClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="SourceClipPrivate" c:type="GESSourceClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="SourceClipAsset" c:symbol-prefix="source_clip_asset" c:type="GESSourceClipAsset" version="1.18" parent="ClipAsset" glib:type-name="GESSourceClipAsset" glib:get-type="ges_source_clip_asset_get_type" glib:type-struct="SourceClipAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-source-clip-asset.h">An asset types from which #GESSourceClip will be extracted</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <field name="parent_instance"> + <type name="ClipAsset" c:type="GESClipAsset"/> + </field> + </class> + <record name="SourceClipAssetClass" c:type="GESSourceClipAssetClass" glib:is-gtype-struct-for="SourceClipAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip-asset.h"/> + <field name="parent_class"> + <type name="ClipAssetClass" c:type="GESClipAssetClass"/> + </field> + </record> + <record name="SourceClipClass" c:type="GESSourceClipClass" glib:is-gtype-struct-for="SourceClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="ClipClass" c:type="GESClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="SourceClipPrivate" c:type="GESSourceClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source-clip.h"/> + </record> + <record name="SourcePrivate" c:type="GESSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-source.h"/> + </record> + <function-macro name="TIMELINE_ELEMENT_DURATION" c:identifier="GES_TIMELINE_ELEMENT_DURATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:duration of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_END" c:identifier="GES_TIMELINE_ELEMENT_END" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The end position of @obj: #GESTimelineElement:start + +#GESTimelineElement:duration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_INPOINT" c:identifier="GES_TIMELINE_ELEMENT_INPOINT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:in-point of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_LAYER_PRIORITY" c:identifier="GES_TIMELINE_ELEMENT_LAYER_PRIORITY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">See #ges_timeline_element_get_layer_priority.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The object to retrieve the layer priority from</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_MAX_DURATION" c:identifier="GES_TIMELINE_ELEMENT_MAX_DURATION" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:max-duration of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_NAME" c:identifier="GES_TIMELINE_ELEMENT_NAME" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:name of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <constant name="TIMELINE_ELEMENT_NO_LAYER_PRIORITY" value="4294967295" c:type="GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">Layer priority when a timeline element is not in any layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <type name="guint32" c:type="guint32"/> + </constant> + <function-macro name="TIMELINE_ELEMENT_PARENT" c:identifier="GES_TIMELINE_ELEMENT_PARENT" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:parent of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_PRIORITY" c:identifier="GES_TIMELINE_ELEMENT_PRIORITY" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:priority of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_START" c:identifier="GES_TIMELINE_ELEMENT_START" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:start of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_ELEMENT_TIMELINE" c:identifier="GES_TIMELINE_ELEMENT_TIMELINE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:timeline of @obj.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">A #GESTimelineElement</doc> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_GET_LAYERS" c:identifier="GES_TIMELINE_GET_LAYERS" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TIMELINE_GET_TRACKS" c:identifier="GES_TIMELINE_GET_TRACKS" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <parameters> + <parameter name="obj"> + </parameter> + </parameters> + </function-macro> + <function-macro name="TRACK_ELEMENT_CLASS_DEFAULT_HAS_INTERNAL_SOURCE" c:identifier="GES_TRACK_ELEMENT_CLASS_DEFAULT_HAS_INTERNAL_SOURCE" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">What the default #GESTrackElement:has-internal-source value should be +for new elements from this class.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <parameters> + <parameter name="klass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">A #GESTrackElementClass</doc> + </parameter> + </parameters> + </function-macro> + <class name="TestClip" c:symbol-prefix="test_clip" c:type="GESTestClip" parent="SourceClip" glib:type-name="GESTestClip" glib:get-type="ges_test_clip_get_type" glib:type-struct="TestClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Useful for testing purposes. + +## Asset + +The default asset ID is GESTestClip, but the framerate and video +size can be overridden using an ID of the form: + +``` +framerate=60/1, width=1920, height=1080, max-duration=5.0 +``` +Note: `max-duration` can be provided in seconds as float, or as GstClockTime +as guint64 or gint.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_test_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Creates a new #GESTestClip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The newly created #GESTestClip, +or %NULL if there was an error.</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </return-value> + </constructor> + <constructor name="new_for_nick" c:identifier="ges_test_clip_new_for_nick"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Creates a new #GESTestClip for the provided @nick.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The newly created #GESTestClip, +or %NULL if there was an error.</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the nickname for which to create the #GESTestClip</doc> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="get_frequency" c:identifier="ges_test_clip_get_frequency"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Get the frequency @self generates.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The frequency @self generates. See audiotestsrc element.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_volume" c:identifier="ges_test_clip_get_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Get the volume of the test audio signal applied on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The volume of the test audio signal applied on @self.</doc> + <type name="gdouble" c:type="gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_vpattern" c:identifier="ges_test_clip_get_vpattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Get the #GESVideoTestPattern which is applied on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The #GESVideoTestPattern which is applied on @self.</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_muted" c:identifier="ges_test_clip_is_muted"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Let you know if the audio track of @self is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Whether the audio track of @self is muted or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">a #GESTestClip</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_frequency" c:identifier="ges_test_clip_set_frequency"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets the frequency to generate. See audiotestsrc element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip to set the frequency on</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="freq" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the frequency you want to use on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_mute" c:identifier="ges_test_clip_set_mute"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets whether the audio track of this clip is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip on which to mute or unmute the audio track</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="mute" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">%TRUE to mute the audio track, %FALSE to unmute it</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_volume" c:identifier="ges_test_clip_set_volume"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets the volume of the test audio signal.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip to set the volume on</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="volume" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the volume of the audio signal you want to use on @self</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_vpattern" c:identifier="ges_test_clip_set_vpattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Sets which video pattern to display on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESTestClip to set the pattern on</doc> + <type name="TestClip" c:type="GESTestClip*"/> + </instance-parameter> + <parameter name="vpattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">the #GESVideoTestPattern to use on @self</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </parameter> + </parameters> + </method> + <property name="freq" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The frequency to generate for audio track elements.</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="mute" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Whether the sound will be played or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="volume" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">The volume for the audio track elements.</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="vpattern" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-test-clip.c">Video pattern to display in video track elements.</doc> + <type name="VideoTestPattern"/> + </property> + <field name="parent"> + <type name="SourceClip" c:type="GESSourceClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TestClipPrivate" c:type="GESTestClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TestClipClass" c:type="GESTestClipClass" glib:is-gtype-struct-for="TestClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClipClass" c:type="GESSourceClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TestClipPrivate" c:type="GESTestClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-test-clip.h"/> + </record> + <enumeration name="TextHAlign" glib:type-name="GESTextHAlign" glib:get-type="ges_text_halign_get_type" c:type="GESTextHAlign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Horizontal alignment of the text.</doc> + <member name="left" value="0" c:identifier="GES_TEXT_HALIGN_LEFT" glib:nick="left"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text left</doc> + </member> + <member name="center" value="1" c:identifier="GES_TEXT_HALIGN_CENTER" glib:nick="center"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text center</doc> + </member> + <member name="right" value="2" c:identifier="GES_TEXT_HALIGN_RIGHT" glib:nick="right"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text right</doc> + </member> + <member name="position" value="4" c:identifier="GES_TEXT_HALIGN_POSITION" glib:nick="position"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">align text on xpos position</doc> + </member> + <member name="absolute" value="5" c:identifier="GES_TEXT_HALIGN_ABSOLUTE" glib:nick="absolute"> + </member> + </enumeration> + <class name="TextOverlay" c:symbol-prefix="text_overlay" c:type="GESTextOverlay" parent="Operation" glib:type-name="GESTextOverlay" glib:get-type="ges_text_overlay_get_type" glib:type-struct="TextOverlayClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_text_overlay_new" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Creates a new #GESTextOverlay.</doc> + <doc-deprecated xml:space="preserve">This should never be called by applications as this will +be created by clips.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The newly created #GESTextOverlay or +%NULL if something went wrong.</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </return-value> + </constructor> + <method name="get_color" c:identifier="ges_text_overlay_get_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the color used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The color used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_text_overlay_get_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the pango font description currently set on @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The pango font description currently set on @source.</doc> + <type name="utf8" c:type="const char*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_text_overlay_get_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the horizontal aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The horizontal aligment used by @source.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_text_overlay_get_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the text currently set on @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The text currently set on @source.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_text_overlay_get_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the vertical aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The vertical aligment used by @source.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_text_overlay_get_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the horizontal position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The horizontal position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_text_overlay_get_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Get the vertical position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The vertical position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">a GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_color" c:identifier="ges_text_overlay_set_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the color of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_text_overlay_set_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the pango font description of the text this track element +will render.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halignment" c:identifier="ges_text_overlay_set_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the horizontal aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set text on</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The #GESTextHAlign defining the horizontal alignment +of the text render by @self.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_text_overlay_set_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the text this track element will render.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set text on</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_valignment" c:identifier="ges_text_overlay_set_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set text on</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The #GESTextVAlign defining the vertical alignment +of the text render by @self.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_text_overlay_set_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the horizontal position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_text_overlay_set_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">Sets the vertical position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">the #GESTextOverlay* to set</doc> + <type name="TextOverlay" c:type="GESTextOverlay*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay.c">The vertical position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="Operation" c:type="GESOperation"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TextOverlayPrivate" c:type="GESTextOverlayPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TextOverlayClass" c:type="GESTextOverlayClass" glib:is-gtype-struct-for="TextOverlay"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + <field name="parent_class"> + <type name="OperationClass" c:type="GESOperationClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TextOverlayClip" c:symbol-prefix="text_overlay_clip" c:type="GESTextOverlayClip" parent="OverlayClip" glib:type-name="GESTextOverlayClip" glib:get-type="ges_text_overlay_clip_get_type" glib:type-struct="TextOverlayClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Renders text onto the next lower priority stream using textrender.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_text_overlay_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Creates a new #GESTextOverlayClip</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The newly created +#GESTextOverlayClip, or %NULL if there was an error.</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </return-value> + </constructor> + <method name="get_color" c:identifier="ges_text_overlay_clip_get_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the color used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The color used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_text_overlay_clip_get_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the pango font description used by @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The pango font description used by @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_text_overlay_clip_get_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the horizontal aligment used by @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal aligment used by @self.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_text_overlay_clip_get_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the text currently set on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The text currently set on @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_text_overlay_clip_get_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the vertical aligment used by @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical aligment used by @self.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_text_overlay_clip_get_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the horizontal position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_text_overlay_clip_get_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Get the vertical position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">a #GESTextOverlayClip</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_color" c:identifier="ges_text_overlay_clip_set_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the color of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_text_overlay_clip_set_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the pango font description of the text</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip*</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halign" c:identifier="ges_text_overlay_clip_set_halign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the horizontal aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set horizontal alignement of text on</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">#GESTextHAlign</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_text_overlay_clip_set_text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the text this clip will render.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set text on</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_valign" c:identifier="ges_text_overlay_clip_set_valign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set vertical alignement of text on</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">#GESTextVAlign</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_text_overlay_clip_set_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the horizontal position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_text_overlay_clip_set_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Sets the vertical position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">the #GESTextOverlayClip* to set</doc> + <type name="TextOverlayClip" c:type="GESTextOverlayClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <property name="color" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The color of the text</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="font-desc" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Pango font description string</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="halignment" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Horizontal alignment of the text</doc> + <type name="TextHAlign"/> + </property> + <property name="text" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The text to diplay</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="valignment" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">Vertical alignent of the text</doc> + <type name="TextVAlign"/> + </property> + <property name="xpos" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The horizontal position of the text</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="ypos" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.c">The vertical position of the text</doc> + <type name="gdouble" c:type="gdouble"/> + </property> + <field name="parent"> + <type name="OverlayClip" c:type="GESOverlayClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TextOverlayClipPrivate" c:type="GESTextOverlayClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TextOverlayClipClass" c:type="GESTextOverlayClipClass" glib:is-gtype-struct-for="TextOverlayClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OverlayClipClass" c:type="GESOverlayClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TextOverlayClipPrivate" c:type="GESTextOverlayClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay-clip.h"/> + </record> + <record name="TextOverlayPrivate" c:type="GESTextOverlayPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-text-overlay.h"/> + </record> + <enumeration name="TextVAlign" glib:type-name="GESTextVAlign" glib:get-type="ges_text_valign_get_type" c:type="GESTextVAlign"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Vertical alignment of the text.</doc> + <member name="baseline" value="0" c:identifier="GES_TEXT_VALIGN_BASELINE" glib:nick="baseline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on the baseline</doc> + </member> + <member name="bottom" value="1" c:identifier="GES_TEXT_VALIGN_BOTTOM" glib:nick="bottom"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on the bottom</doc> + </member> + <member name="top" value="2" c:identifier="GES_TEXT_VALIGN_TOP" glib:nick="top"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on top</doc> + </member> + <member name="position" value="3" c:identifier="GES_TEXT_VALIGN_POSITION" glib:nick="position"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on ypos position</doc> + </member> + <member name="center" value="4" c:identifier="GES_TEXT_VALIGN_CENTER" glib:nick="center"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">draw text on the center</doc> + </member> + <member name="absolute" value="5" c:identifier="GES_TEXT_VALIGN_ABSOLUTE" glib:nick="absolute"> + </member> + </enumeration> + <class name="Timeline" c:symbol-prefix="timeline" c:type="GESTimeline" parent="Gst.Bin" glib:type-name="GESTimeline" glib:get-type="ges_timeline_get_type" glib:type-struct="TimelineClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">#GESTimeline is the central object for any multimedia timeline. + +A timeline is composed of a set of #GESTrack-s and a set of +#GESLayer-s, which are added to the timeline using +ges_timeline_add_track() and ges_timeline_append_layer(), respectively. + +The contained tracks define the supported types of the timeline +and provide the media output. Essentially, each track provides an +additional source #GstPad. + +Most usage of a timeline will likely only need a single #GESAudioTrack +and/or a single #GESVideoTrack. You can create such a timeline with +ges_timeline_new_audio_video(). After this, you are unlikely to need to +work with the tracks directly. + +A timeline's layers contain #GESClip-s, which in turn control the +creation of #GESTrackElement-s, which are added to the timeline's +tracks. See #GESTimeline::select-tracks-for-object if you wish to have +more control over which track a clip's elements are added to. + +The layers are ordered, with higher priority layers having their +content prioritised in the tracks. This ordering can be changed using +ges_timeline_move_layer(). + +## Editing + +See #GESTimelineElement for the various ways the elements of a timeline +can be edited. + +If you change the timing or ordering of a timeline's +#GESTimelineElement-s, then these changes will not actually be taken +into account in the output of the timeline's tracks until the +ges_timeline_commit() method is called. This allows you to move its +elements around, say, in response to an end user's mouse dragging, with +little expense before finalising their effect on the produced data. + +## Overlaps and Auto-Transitions + +There are certain restrictions placed on how #GESSource-s may overlap +in a #GESTrack that belongs to a timeline. These will be enforced by +GES, so the user will not need to keep track of them, but they should +be aware that certain edits will be refused as a result if the overlap +rules would be broken. + +Consider two #GESSource-s, `A` and `B`, with start times `startA` and +`startB`, and end times `endA` and `endB`, respectively. The start +time refers to their #GESTimelineElement:start, and the end time is +their #GESTimelineElement:start + #GESTimelineElement:duration. These +two sources *overlap* if: + ++ they share the same #GESTrackElement:track (non %NULL), which belongs + to the timeline; ++ they share the same #GES_TIMELINE_ELEMENT_LAYER_PRIORITY; and ++ `startA < endB` and `startB < endA `. + +Note that when `startA = endB` or `startB = endA` then the two sources +will *touch* at their edges, but are not considered overlapping. + +If, in addition, `startA < startB < endA`, then we can say that the +end of `A` overlaps the start of `B`. + +If, instead, `startA <= startB` and `endA >= endB`, then we can say +that `A` fully overlaps `B`. + +The overlap rules for a timeline are that: + +1. One source cannot fully overlap another source. +2. A source can only overlap the end of up to one other source at its + start. +3. A source can only overlap the start of up to one other source at its + end. + +The last two rules combined essentially mean that at any given timeline +position, only up to two #GESSource-s may overlap at that position. So +triple or more overlaps are not allowed. + +If you switch on #GESTimeline:auto-transition, then at any moment when +the end of one source (the first source) overlaps the start of another +(the second source), a #GESTransitionClip will be automatically created +for the pair in the same layer and it will cover their overlap. If the +two elements are edited in a way such that the end of the first source +no longer overlaps the start of the second, the transition will be +automatically removed from the timeline. However, if the two sources +still overlap at the same edges after the edit, then the same +transition object will be kept, but with its timing and layer adjusted +accordingly. + +NOTE: if you know what you are doing and want to be in full control of the +timeline layout, you can disable the edit APIs with +#ges_timeline_disable_edit_apis. + +## Saving + +To save/load a timeline, you can use the ges_timeline_load_from_uri() +and ges_timeline_save_to_uri() methods that use the default format. + +## Playing + +A timeline is a #GstBin with a source #GstPad for each of its +tracks, which you can fetch with ges_timeline_get_pad_for_track(). You +will likely want to link these to some compatible sink #GstElement-s to +be able to play or capture the content of the timeline. + +You can use a #GESPipeline to easily preview/play the timeline's +content, or render it to a file.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_timeline_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Creates a new empty timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The new timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + </constructor> + <constructor name="new_audio_video" c:identifier="ges_timeline_new_audio_video"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-utils.c">Creates a new timeline containing a single #GESAudioTrack and a +single #GESVideoTrack.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-utils.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-utils.c">The new timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + </constructor> + <constructor name="new_from_uri" c:identifier="ges_timeline_new_from_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Creates a timeline from the given URI.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A new timeline if the uri was loaded +successfully, or %NULL if the uri could not be loaded.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The URI to load from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="group_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="group_removed" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + <parameter name="children" transfer-ownership="none"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="layer_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="layer_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="track_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="track_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_layer" c:identifier="ges_timeline_add_layer" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Add a layer to the timeline. + +If the layer contains #GESClip-s, then this may trigger the creation of +their core track element children for the timeline's tracks, and the +placement of the clip's children in the tracks of the timeline using +#GESTimeline::select-tracks-for-object. Some errors may occur if this +would break one of the configuration rules of the timeline in one of +its tracks. In such cases, some track elements would fail to be added +to their tracks, but this method would still return %TRUE. As such, it +is advised that you only add clips to layers that already part of a +timeline. In such situations, ges_layer_add_clip() is able to fail if +adding the clip would cause such an error.</doc> + <doc-deprecated xml:space="preserve">This method requires you to ensure the layer's +#GESLayer:priority will be unique to the timeline. Use +ges_timeline_append_layer() and ges_timeline_move_layer() instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @layer was properly added.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer to add</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="add_track" c:identifier="ges_timeline_add_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Add a track to the timeline. + +If the timeline already contains clips, then this may trigger the +creation of their core track element children for the track, and the +placement of the clip's children in the track of the timeline using +#GESTimeline::select-tracks-for-object. Some errors may occur if this +would break one of the configuration rules for the timeline in the +track. In such cases, some track elements would fail to be added to the +track, but this method would still return %TRUE. As such, it is advised +that you avoid adding tracks to timelines that already contain clips.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @track was properly added.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track to add</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="append_layer" c:identifier="ges_timeline_append_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Append a newly created layer to the timeline. The layer will +be added at the lowest #GESLayer:priority (numerically, the highest).</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The newly created layer.</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="commit" c:identifier="ges_timeline_commit"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Commit all the pending changes of the clips contained in the +timeline. + +When changes happen in a timeline, they are not immediately executed +internally, in a way that effects the output data of the timeline. You +should call this method when you are done with a set of changes and you +want them to be executed. + +Any pending changes will be executed in the backend. The +#GESTimeline::commited signal will be emitted once this has completed. +You should not try to change the state of the timeline, seek it or add +tracks to it before receiving this signal. You can use +ges_timeline_commit_sync() if you do not want to perform other tasks in +the mean time. + +Note that all the pending changes will automatically be executed when +the timeline goes from #GST_STATE_READY to #GST_STATE_PAUSED, which is +usually triggered by a corresponding state changes in a containing +#GESPipeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if pending changes were committed, or %FALSE if nothing +needed to be committed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="commit_sync" c:identifier="ges_timeline_commit_sync"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Commit all the pending changes of the clips contained in the +timeline and wait for the changes to complete. + +See ges_timeline_commit().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if pending changes were committed, or %FALSE if nothing +needed to be committed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="disable_edit_apis" c:identifier="ges_timeline_disable_edit_apis" version="1.22"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">WARNING: When using that mode, GES won't guarantee the coherence of the +timeline. You need to ensure that the rules described in the [Overlaps and +auto transitions](#overlaps-and-autotransitions) section are respected any time +the timeline is [commited](ges_timeline_commit) (otherwise playback will most +probably fail in different ways). + +When disabling editing APIs, GES won't be able to enforce the rules that +makes the timeline overall state to be valid but some feature won't be +usable: + * #GESTimeline:snapping-distance + * #GESTimeline:auto-transition</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="disable_edit_apis" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE to disable all the edit APIs so the user is in full +control of ensuring timeline state validity %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="freeze_commit" c:identifier="ges_timeline_freeze_commit" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Freezes the timeline from being committed. This is usually needed while the +timeline is being rendered to ensure that not change to the timeline are +taken into account during that moment. Once the rendering is done, you +should call #ges_timeline_thaw_commit so that committing becomes possible +again and any call to `commit()` that happened during the rendering is +actually taken into account.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_auto_transition" c:identifier="ges_timeline_get_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Gets #GESTimeline:auto-transition for the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The auto-transition of @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="ges_timeline_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the current #GESTimeline:duration of the timeline</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The current duration of @timeline.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_edit_apis_disabled" c:identifier="ges_timeline_get_edit_apis_disabled" version="1.22"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if edit APIs are disabled, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_element" c:identifier="ges_timeline_get_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Gets the element contained in the timeline with the given name.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The timeline element in @timeline +with the given @name, or %NULL if it was not found.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The name of the element to find</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_frame_at" c:identifier="ges_timeline_get_frame_at" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This method allows you to convert a timeline #GstClockTime into its +corresponding #GESFrameNumber in the timeline's output.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The frame number @timestamp corresponds to.</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="timestamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The timestamp to get the corresponding frame number of</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_frame_time" c:identifier="ges_timeline_get_frame_time" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This method allows you to convert a timeline output frame number into a +timeline #GstClockTime. For example, this time could be used to seek to a +particular frame in the timeline's output, or as the edit position for +an element within the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The timestamp corresponding to @frame_number in the output of @self.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The self on which to retrieve the timestamp for @frame_number</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="frame_number" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The frame number to get the corresponding timestamp of in the + timeline coordinates</doc> + <type name="FrameNumber" c:type="GESFrameNumber"/> + </parameter> + </parameters> + </method> + <method name="get_groups" c:identifier="ges_timeline_get_groups"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the list of #GESGroup-s present in the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The list of +groups that contain clips present in @timeline's layers. +Must not be changed.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Group"/> + </type> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_layer" c:identifier="ges_timeline_get_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Retrieve the layer whose index in the timeline matches the given +priority.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer with the given +@priority, or %NULL if none was found. + +Since 1.6</doc> + <type name="Layer" c:type="GESLayer*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline to retrieve a layer from</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The priority/index of the layer to find</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_layers" c:identifier="ges_timeline_get_layers"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the list of #GESLayer-s present in the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The list of +layers present in @timeline sorted by priority.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_pad_for_track" c:identifier="ges_timeline_get_pad_for_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Search for the #GstPad corresponding to the given timeline's track. +You can link to this pad to receive the output data of the given track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The pad corresponding to @track, +or %NULL if there is an error.</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A track</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="get_snapping_distance" c:identifier="ges_timeline_get_snapping_distance"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Gets the #GESTimeline:snapping-distance for the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The snapping distance (in nanoseconds) of @timeline.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track_for_pad" c:identifier="ges_timeline_get_track_for_pad"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Search for the #GESTrack corresponding to the given timeline's pad.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track corresponding to @pad, +or %NULL if there is an error.</doc> + <type name="Track" c:type="GESTrack*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="pad" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A pad</doc> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="get_tracks" c:identifier="ges_timeline_get_tracks"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Get the list of #GESTrack-s used by the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The list of tracks +used by @timeline.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Track"/> + </type> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_empty" c:identifier="ges_timeline_is_empty"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Check whether the timeline is empty or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @timeline is empty.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <method name="load_from_uri" c:identifier="ges_timeline_load_from_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Loads the contents of URI into the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if the timeline was loaded successfully from @uri.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">An empty #GESTimeline into which to load the formatter</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The URI to load from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="move_layer" c:identifier="ges_timeline_move_layer" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Moves a layer within the timeline to the index given by +@new_layer_priority. +An index of 0 corresponds to the layer with the highest priority in a +timeline. If @new_layer_priority is greater than the number of layers +present in the timeline, it will become the lowest priority layer.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A layer within @timeline, whose priority should be changed</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The new index for @layer</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="paste_element" c:identifier="ges_timeline_paste_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Paste an element inside the timeline. @element **must** be the return of +ges_timeline_element_copy() with `deep=TRUE`, +and it should not be changed before pasting. @element itself is not +placed in the timeline, instead a new element is created, alike to the +originally copied element. Note that the originally copied element must +also lie within @timeline, at both the point of copying and pasting. + +Pasting may fail if it would place the timeline in an unsupported +configuration. + +After calling this function @element should not be used. In particular, +@element can **not** be pasted again. Instead, you can copy the +returned element and paste that copy (although, this is only possible +if the paste was successful). + +See also ges_timeline_element_paste().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The newly created element, or +%NULL if pasting fails.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline onto which @element should be pasted</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The element to paste</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The position in the timeline @element should be pasted to, +i.e. the #GESTimelineElement:start value for the pasted element.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer into which the element should be pasted. +-1 means paste to the same layer from which @element has been copied from</doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="remove_layer" c:identifier="ges_timeline_remove_layer"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Removes a layer from the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @layer was properly removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer to remove</doc> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </method> + <method name="remove_track" c:identifier="ges_timeline_remove_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Remove a track from the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @track was properly removed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track to remove</doc> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </method> + <method name="save_to_uri" c:identifier="ges_timeline_save_to_uri" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Saves the timeline to the given location. If @formatter_asset is %NULL, +the method will attempt to save in the same format the timeline was +loaded from, before defaulting to the formatter with highest rank.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE if @timeline was successfully saved to @uri.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The location to save to</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="formatter_asset" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The formatter asset to use, or %NULL</doc> + <type name="Asset" c:type="GESAsset*"/> + </parameter> + <parameter name="overwrite" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">%TRUE to overwrite file if it exists</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_auto_transition" c:identifier="ges_timeline_set_auto_transition"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Sets #GESTimeline:auto-transition for the timeline. This will also set +the corresponding #GESLayer:auto-transition for all of the timeline's +layers to the same value. See ges_layer_set_auto_transition() if you +wish to set the layer's #GESLayer:auto-transition individually.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="auto_transition" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Whether transitions should be automatically added +to @timeline's layers</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_snapping_distance" c:identifier="ges_timeline_set_snapping_distance"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Sets #GESTimeline:snapping-distance for the timeline. This new value +will only effect future snappings and will not be used to snap the +current element positions within the timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + <parameter name="snapping_distance" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The snapping distance to use (in nanoseconds)</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="thaw_commit" c:identifier="ges_timeline_thaw_commit" version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Thaw the timeline so that comiting becomes possible +again and any call to `commit()` that happened during the rendering is +actually taken into account.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="timeline" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The #GESTimeline</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </instance-parameter> + </parameters> + </method> + <property name="auto-transition" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Whether to automatically create a transition whenever two +#GESSource-s overlap in a track of the timeline. See +#GESLayer:auto-transition if you want this to only happen in some +layers.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The current duration (in nanoseconds) of the timeline. A timeline +'starts' at time 0, so this is the maximum end time of all of its +#GESTimelineElement-s.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="snapping-distance" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The distance (in nanoseconds) at which a #GESTimelineElement being +moved within the timeline should snap one of its #GESSource-s with +another #GESSource-s edge. See #GESEditMode for which edges can +snap during an edit. 0 means no snapping.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <field name="parent"> + <type name="Gst.Bin" c:type="GstBin"/> + </field> + <field name="layers"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">A list of #GESLayer-s sorted by +priority. NOTE: Do not modify.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </field> + <field name="tracks"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">Deprecated:1.10: (element-type GES.Track): This is not thread +safe, use #ges_timeline_get_tracks instead.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="gpointer" c:type="gpointer"/> + </type> + </field> + <field name="priv" readable="0" private="1"> + <type name="TimelinePrivate" c:type="GESTimelinePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="commited" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This signal will be emitted once the changes initiated by +ges_timeline_commit() have been executed in the backend. Use +ges_timeline_commit_sync() if you do not want to have to connect +to this signal.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="group-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the group is added to to the timeline. This can +happen when grouping with `ges_container_group`, or by adding +containers to a newly created group. + +Note that this should not be emitted whilst a timeline is being +loaded from its #GESProject asset. You should connect to the +project's #GESProject::loaded signal if you want to know which groups +were created for the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="group" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The group that was added to @timeline</doc> + <type name="Group"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="group-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the group is removed from the timeline through +`ges_container_ungroup`. Note that @group will no longer contain its +former children, these are held in @children. + +Note that if a group is emptied, then it will no longer belong to the +timeline, but this signal will **not** be emitted in such a case.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="group" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The group that was removed from @timeline</doc> + <type name="Group"/> + </parameter> + <parameter name="children" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A list +of #GESContainer-s that _were_ the children of the removed @group</doc> + <array name="GLib.PtrArray"> + <type name="Container"/> + </array> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="layer-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the layer is added to the timeline. + +Note that this should not be emitted whilst a timeline is being +loaded from its #GESProject asset. You should connect to the +project's #GESProject::loaded signal if you want to know which +layers were created for the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer that was added to @timeline</doc> + <type name="Layer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="layer-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the layer is removed from the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="layer" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The layer that was removed from @timeline</doc> + <type name="Layer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="select-element-track" when="last" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Simplified version of #GESTimeline::select-tracks-for-object which only +allows @track_element to be added to a single #GESTrack.</doc> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">A track to put @track_element into, or %NULL if +it should be discarded.</doc> + <type name="Track"/> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The clip that @track_element is being added to</doc> + <type name="Clip"/> + </parameter> + <parameter name="track_element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The element being added</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="select-tracks-for-object" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">This will be emitted whenever the timeline needs to determine which +tracks a clip's children should be added to. The track element will +be added to each of the tracks given in the return. If a track +element is selected to go into multiple tracks, it will be copied +into the additional tracks, under the same clip. Note that the copy +will *not* keep its properties or state in sync with the original. + +Connect to this signal once if you wish to control which element +should be added to which track. Doing so will overwrite the default +behaviour, which adds @track_element to all tracks whose +#GESTrack:track-type includes the @track_element's +#GESTrackElement:track-type. + +Note that under the default track selection, if a clip would produce +multiple core children of the same #GESTrackType, it will choose +one of the core children arbitrarily to place in the corresponding +tracks, with a warning for the other core children that are not +placed in the track. For example, this would happen for a #GESUriClip +that points to a file that contains multiple audio streams. If you +wish to choose the stream, you could connect to this signal, and use, +say, ges_uri_source_asset_get_stream_info() to choose which core +source to add. + +When a clip is first added to a timeline, its core elements will +be created for the current tracks in the timeline if they have not +already been created. Then this will be emitted for each of these +core children to select which tracks, if any, they should be added +to. It will then be called for any non-core children in the clip. + +In addition, if a new track element is ever added to a clip in a +timeline (and it is not already part of a track) this will be emitted +to select which tracks the element should be added to. + +Finally, as a special case, if a track is added to the timeline +*after* it already contains clips, then it will request the creation +of the clips' core elements of the corresponding type, if they have +not already been created, and this signal will be emitted for each of +these newly created elements. In addition, this will also be released +for all other track elements in the timeline's clips that have not +yet been assigned a track. However, in this final case, the timeline +will only check whether the newly added track appears in the track +list. If it does appear, the track element will be added to the newly +added track. All other tracks in the returned track list are ignored. + +In this latter case, track elements that are already part of a track +will not be asked if they want to be copied into the new track. If +you wish to do this, you can use ges_clip_add_child_to_track(). + +Note that the returned #GPtrArray should own a new reference to each +of its contained #GESTrack. The timeline will set the #GDestroyNotify +free function on the #GPtrArray to dereference the elements.</doc> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">An array of +#GESTrack-s that @track_element should be added to, or %NULL to +not add the element to any track.</doc> + <array name="GLib.PtrArray"> + <type name="Track"/> + </array> + </return-value> + <parameters> + <parameter name="clip" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The clip that @track_element is being added to</doc> + <type name="Clip"/> + </parameter> + <parameter name="track_element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The element being added</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="snapping-ended" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted whenever a snapping event ends. After a snap event +has started (see #GESTimeline::snapping-started), it can later end +because either another timeline edit has occurred (which may or may +not have created a new snapping event), or because the timeline has +been committed.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="obj1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The first element that was snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="obj2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The second element that was snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The position where the two objects were to be snapped to</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="snapping-started" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted whenever an element's movement invokes a snapping +event during an edit (usually of one of its ancestors) because its +start or end point lies within the #GESTimeline:snapping-distance of +another element's start or end point. + +See #GESEditMode to see what can snap during an edit. + +Note that only up to one snapping-started signal will be emitted per +element edit within a timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="obj1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The first element that is snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="obj2" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The second element that is snapping</doc> + <type name="TrackElement"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The position where the two objects will snap to</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="track-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the track is added to the timeline. + +Note that this should not be emitted whilst a timeline is being +loaded from its #GESProject asset. You should connect to the +project's #GESProject::loaded signal if you want to know which +tracks were created for the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track that was added to @timeline</doc> + <type name="Track"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="track-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">Will be emitted after the track is removed from the timeline.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.c">The track that was removed from @timeline</doc> + <type name="Track"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TimelineClass" c:type="GESTimelineClass" glib:is-gtype-struct-for="Timeline"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">parent class</doc> + <type name="Gst.BinClass" c:type="GstBinClass"/> + </field> + <field name="track_added"> + <callback name="track_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="track_removed"> + <callback name="track_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="layer_added"> + <callback name="layer_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="layer_removed"> + <callback name="layer_removed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="layer" transfer-ownership="none"> + <type name="Layer" c:type="GESLayer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="group_added"> + <callback name="group_added"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="group_removed" introspectable="0"> + <callback name="group_removed" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + <parameter name="group" transfer-ownership="none"> + <type name="Group" c:type="GESGroup*"/> + </parameter> + <parameter name="children" transfer-ownership="none"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TimelineElement" c:symbol-prefix="timeline_element" c:type="GESTimelineElement" parent="GObject.InitiallyUnowned" abstract="1" glib:type-name="GESTimelineElement" glib:get-type="ges_timeline_element_get_type" glib:type-struct="TimelineElementClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement will have some temporal extent in its +corresponding #GESTimelineElement:timeline, controlled by its +#GESTimelineElement:start and #GESTimelineElement:duration. This +determines when its content will be displayed, or its effect applied, +in the timeline. Several objects may overlap within a given +#GESTimeline, in which case their #GESTimelineElement:priority is used +to determine their ordering in the timeline. Priority is mostly handled +internally by #GESLayer-s and #GESClip-s. + +A timeline element can have a #GESTimelineElement:parent, +such as a #GESClip, which is responsible for controlling its timing. + +## Editing + +Elements can be moved around in their #GESTimelineElement:timeline by +setting their #GESTimelineElement:start and +#GESTimelineElement:duration using ges_timeline_element_set_start() +and ges_timeline_element_set_duration(). Additionally, which parts of +the underlying content are played in the timeline can be adjusted by +setting the #GESTimelineElement:in-point using +ges_timeline_element_set_inpoint(). The library also provides +ges_timeline_element_edit(), with various #GESEditMode-s, which can +adjust these properties in a convenient way, as well as introduce +similar changes in neighbouring or later elements in the timeline. + +However, a timeline may refuse a change in these properties if they +would place the timeline in an unsupported configuration. See +#GESTimeline for its overlap rules. + +Additionally, an edit may be refused if it would place one of the +timing properties out of bounds (such as a negative time value for +#GESTimelineElement:start, or having insufficient internal +content to last for the desired #GESTimelineElement:duration). + +## Time Coordinates + +There are three main sets of time coordinates to consider when using +timeline elements: + ++ Timeline coordinates: these are the time coordinates used in the + output of the timeline in its #GESTrack-s. Each track share the same + coordinates, so there is only one set of coordinates for the + timeline. These extend indefinitely from 0. The times used for + editing (including setting #GESTimelineElement:start and + #GESTimelineElement:duration) use these coordinates, since these + define when an element is present and for how long the element lasts + for in the timeline. ++ Internal source coordinates: these are the time coordinates used + internally at the element's output. This is only really defined for + #GESTrackElement-s, where it refers to time coordinates used at the + final source pad of the wrapped #GstElement-s. However, these + coordinates may also be used in a #GESClip in reference to its + children. In particular, these are the coordinates used for + #GESTimelineElement:in-point and #GESTimelineElement:max-duration. ++ Internal sink coordinates: these are the time coordinates used + internally at the element's input. A #GESSource has no input, so + these would be undefined. Otherwise, for most #GESTrackElement-s + these will be the same set of coordinates as the internal source + coordinates because the element does not change the timing + internally. Only #GESBaseEffect can support elements where these + are different. See #GESBaseEffect for more information. + +You can determine the timeline time for a given internal source time +in a #GESTrack in a #GESClip using +ges_clip_get_timeline_time_from_internal_time(), and vice versa using +ges_clip_get_internal_time_from_timeline_time(), for the purposes of +editing and setting timings properties. + +## Children Properties + +If a timeline element owns another #GstObject and wishes to expose +some of its properties, it can do so by registering the property as one +of the timeline element's children properties using +ges_timeline_element_add_child_property(). The registered property of +the child can then be read and set using the +ges_timeline_element_get_child_property() and +ges_timeline_element_set_child_property() methods, respectively. Some +sub-classed objects will be created with pre-registered children +properties; for example, to expose part of an underlying #GstElement +that is used internally. The registered properties can be listed with +ges_timeline_element_list_children_properties().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="deep_copy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="copy" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_layer_priority" invoker="get_layer_priority" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the priority of the layer the element is in. A #GESGroup may span +several layers, so this would return the highest priority (numerically, +the smallest) amongst them.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the layer @self is in, or +#GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY if @self does not exist in a +layer.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="get_natural_framerate" invoker="get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Get the "natural" framerate of @self. This is to say, for example +for a #GESVideoUriSource the framerate of the source. + +Note that a #GESAudioSource may also have a natural framerate if it derives +from the same #GESSourceClip asset as a #GESVideoSource, and its value will +be that of the video source. For example, if the uri of a #GESUriClip points +to a file that contains both a video and audio stream, then the corresponding +#GESAudioUriSource will share the natural framerate of the corresponding +#GESVideoUriSource.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether @self has a natural framerate or not, @framerate_n +and @framerate_d will be set to, respectively, 0 and -1 if it is +not the case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get "natural" framerate from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_track_types" invoker="get_track_types" version="1.6.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the track types that the element can interact with, i.e. the type +of #GESTrack it can exist in, or will create #GESTrackElement-s for.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The track types that @self supports.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="list_children_properties" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="lookup_child" invoker="lookup_child"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Looks up a child property of the element. + +@prop_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to look up (as used in g_object_get()), and "TypeName" is the type name +of the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will be passed to @child, and the +registered specification of this property will be passed to @pspec.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if a child corresponding to the property was found, in +which case @child and @pspec are set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of a child property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="child" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +found child</doc> + <type name="GObject.Object" c:type="GObject**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +specification of the child property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="paste" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="ref_element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="paste_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="ripple" invoker="ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_NONE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="ripple_end" invoker="ripple_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="roll_end" invoker="roll_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="roll_start" invoker="roll_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_child_property" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">Method for setting the child property given by +@pspec on @child to @value. Default implementation will use +g_object_set_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_child_property_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">Similar to @set_child_property, except setting can fail, with the @error +being optionally set. Default implementation will call @set_child_property +and return %TRUE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_duration" invoker="set_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:duration for the element. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_TRIM with #GES_EDGE_END. In particular, the +#GESTimelineElement:duration of the element may be snapped to a +different timeline time difference from the one given. In addition, +setting may fail if it would place the timeline in an unsupported +configuration, or the element does not have enough internal content to +last the desired duration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @duration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired duration in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_inpoint" invoker="set_inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:in-point for the element. If the new in-point +is above the current #GESTimelineElement:max-duration of the element, +this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @inpoint could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_max_duration" invoker="set_max_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:max-duration for the element. If the new +maximum duration is below the current #GESTimelineElement:in-point of +the element, this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @maxduration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="maxduration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The maximum duration, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_parent" invoker="set_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:parent for the element. + +This is used internally and you should normally not call this. A +#GESContainer will set the #GESTimelineElement:parent of its children +in ges_container_add() and ges_container_remove(). + +Note, if @parent is not %NULL, @self must not already have a parent +set. Therefore, if you wish to switch parents, you will need to call +this function twice: first to set the parent to %NULL, and then to the +new parent. + +If @parent is not %NULL, you must ensure it already has a +(non-floating) reference to @self before calling this.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @parent could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@parent (nullable): New parent of @self</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_priority" invoker="set_priority" deprecated="1" deprecated-version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the priority of the element within the containing layer.</doc> + <doc-deprecated xml:space="preserve">All priority management is done by GES itself now. +To set #GESEffect priorities #ges_clip_set_top_effect_index should +be used.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @priority could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_start" invoker="set_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:start for the element. If the element has a +parent, this will also move its siblings with the same shift. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_NORMAL with #GES_EDGE_NONE. In particular, the +#GESTimelineElement:start of the element may be snapped to a different +timeline time from the one given. In addition, setting may fail if it +would place the timeline in an unsupported configuration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @start could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired start position of the element in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="trim" invoker="trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in trim mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_TRIM and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the trim edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to trim</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in trim mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_child_property" c:identifier="ges_timeline_element_add_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Register a property of a child of the element to allow it to be +written with ges_timeline_element_set_child_property() and read with +ges_timeline_element_get_child_property(). A change in the property +will also appear in the #GESTimelineElement::deep-notify signal. + +@pspec should be unique from other children properties that have been +registered on @self.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was successfully registered.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property to add</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GstObject who the property belongs to</doc> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + </parameters> + </method> + <method name="copy" c:identifier="ges_timeline_element_copy"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Create a copy of @self. All the properties of @self are copied into +a new element, with the exception of #GESTimelineElement:parent, +#GESTimelineElement:timeline and #GESTimelineElement:name. Other data, +such the list of a #GESContainer's children, is **not** copied. + +If @deep is %TRUE, then the new element is prepared so that it can be +used in ges_timeline_element_paste() or ges_timeline_paste_element(). +In the case of copying a #GESContainer, this ensures that the children +of @self will also be pasted. The new element should not be used for +anything else and can only be used **once** in a pasting operation. In +particular, the new element itself is not an actual 'deep' copy of +@self, but should be thought of as an intermediate object used for a +single paste operation.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The newly create element, copied from @self.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to copy</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="deep" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether the copy is needed for pasting</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="edit" c:identifier="ges_timeline_element_edit" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">See ges_timeline_element_edit_full(), which also gives an error. + +Note that the @layers argument is currently ignored, so you should +just pass %NULL.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to edit</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority/index of the layer @self should be +moved to. -1 means no move</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edge of @self where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit position: a new location for the edge of @self +(in nanoseconds) in the timeline coordinates</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="edit_full" c:identifier="ges_timeline_element_edit_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the element within its timeline by adjusting its +#GESTimelineElement:start, #GESTimelineElement:duration or +#GESTimelineElement:in-point, and potentially doing the same for +other elements in the timeline. See #GESEditMode for details about each +edit mode. An edit may fail if it would place one of these properties +out of bounds, or if it would place the timeline in an unsupported +configuration. + +Note that if you act on a #GESTrackElement, this will edit its parent +#GESClip instead. Moreover, for any #GESTimelineElement, if you select +#GES_EDGE_NONE for #GES_EDIT_MODE_NORMAL or #GES_EDIT_MODE_RIPPLE, this +will edit the toplevel instead, but still in such a way as to make the +#GESTimelineElement:start of @self reach the edit @position. + +Note that if the element's timeline has a +#GESTimeline:snapping-distance set, then the edit position may be +snapped to the edge of some element under the edited element. + +@new_layer_priority can be used to switch @self, and other elements +moved by the edit, to a new layer. New layers may be be created if the +the corresponding layer priority/index does not yet exist for the +timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to edit</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="new_layer_priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority/index of the layer @self should be +moved to. -1 means no move</doc> + <type name="gint64" c:type="gint64"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edge of @self where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The edit position: a new location for the edge of @self +(in nanoseconds) in the timeline coordinates</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_child_properties" c:identifier="ges_timeline_element_get_child_properties" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets several of the children properties of the element. See +ges_timeline_element_get_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the first property, followed +optionally by more name/return location pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_child_property" c:identifier="ges_timeline_element_get_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the property of a child of the element. + +@property_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to get (as used in g_object_get()), and "TypeName" is the type name of +the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will have the corresponding +property copied into @value. + +Note that ges_timeline_element_get_child_properties() may be more +convenient for C programming.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was found and copied to @value.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the child property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_by_pspec" c:identifier="ges_timeline_element_get_child_property_by_pspec"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the property of a child of the element. Specifically, the property +corresponding to the @pspec used in +ges_timeline_element_add_child_property() is copied into @value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification of a registered child property to get</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_valist" c:identifier="ges_timeline_element_get_child_property_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets several of the children properties of the element. See +ges_timeline_element_get_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the first property, followed +optionally by more name/return location pairs, followed by %NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="get_duration" c:identifier="ges_timeline_element_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:duration for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The duration of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_inpoint" c:identifier="ges_timeline_element_get_inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:in-point for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_layer_priority" c:identifier="ges_timeline_element_get_layer_priority" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the priority of the layer the element is in. A #GESGroup may span +several layers, so this would return the highest priority (numerically, +the smallest) amongst them.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the layer @self is in, or +#GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY if @self does not exist in a +layer.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_duration" c:identifier="ges_timeline_element_get_max_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:max-duration for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The max-duration of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_name" c:identifier="ges_timeline_element_get_name"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:name for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of @self.</doc> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_natural_framerate" c:identifier="ges_timeline_element_get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Get the "natural" framerate of @self. This is to say, for example +for a #GESVideoUriSource the framerate of the source. + +Note that a #GESAudioSource may also have a natural framerate if it derives +from the same #GESSourceClip asset as a #GESVideoSource, and its value will +be that of the video source. For example, if the uri of a #GESUriClip points +to a file that contains both a video and audio stream, then the corresponding +#GESAudioUriSource will share the natural framerate of the corresponding +#GESVideoUriSource.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether @self has a natural framerate or not, @framerate_n +and @framerate_d will be set to, respectively, 0 and -1 if it is +not the case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get "natural" framerate from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_parent" c:identifier="ges_timeline_element_get_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:parent for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The parent of @self, or %NULL if +@self has no parent.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_priority" c:identifier="ges_timeline_element_get_priority"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:priority for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of @self.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_start" c:identifier="ges_timeline_element_get_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:start for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The start of @self (in nanoseconds).</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline" c:identifier="ges_timeline_element_get_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the #GESTimelineElement:timeline for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The timeline of @self, or %NULL +if @self has no timeline.</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_toplevel_parent" c:identifier="ges_timeline_element_get_toplevel_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the toplevel #GESTimelineElement:parent of the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The toplevel parent of @self.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get the toplevel parent from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track_types" c:identifier="ges_timeline_element_get_track_types" version="1.6.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Gets the track types that the element can interact with, i.e. the type +of #GESTrack it can exist in, or will create #GESTrackElement-s for.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The track types that @self supports.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_children_properties" c:identifier="ges_timeline_element_list_children_properties"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Get a list of children properties of the element, which is a list of +all the specifications passed to +ges_timeline_element_add_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">An array of +#GParamSpec corresponding to the child properties of @self, or %NULL if +something went wrong.</doc> + <array length="0" zero-terminated="0" c:type="GParamSpec**"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </array> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="n_properties" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the length of the +returned array</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="lookup_child" c:identifier="ges_timeline_element_lookup_child"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Looks up a child property of the element. + +@prop_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to look up (as used in g_object_get()), and "TypeName" is the type name +of the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will be passed to @child, and the +registered specification of this property will be passed to @pspec.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if a child corresponding to the property was found, in +which case @child and @pspec are set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of a child property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="child" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +found child</doc> + <type name="GObject.Object" c:type="GObject**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +specification of the child property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </method> + <method name="paste" c:identifier="ges_timeline_element_paste" version="1.6.0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Paste an element inside the same timeline and layer as @self. @self +**must** be the return of ges_timeline_element_copy() with `deep=TRUE`, +and it should not be changed before pasting. +@self is not placed in the timeline, instead a new element is created, +alike to the originally copied element. Note that the originally +copied element must stay within the same timeline and layer, at both +the point of copying and pasting. + +Pasting may fail if it would place the timeline in an unsupported +configuration. + +After calling this function @element should not be used. In particular, +@element can **not** be pasted again. Instead, you can copy the +returned element and paste that copy (although, this is only possible +if the paste was successful). + +See also ges_timeline_paste_element().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The newly created element, or +%NULL if pasting fails.</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to paste</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="paste_position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The position in the timeline @element should be pasted +to, i.e. the #GESTimelineElement:start value for the pasted element.</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="remove_child_property" c:identifier="ges_timeline_element_remove_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Remove a child property from the element. @pspec should be a +specification that was passed to +ges_timeline_element_add_child_property(). The corresponding property +will no longer be registered as a child property for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was successfully un-registered for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property to remove</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </method> + <method name="ripple" c:identifier="ges_timeline_element_ripple"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_NONE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in ripple mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="ripple_end" c:identifier="ges_timeline_element_ripple_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in ripple mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_RIPPLE and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in ripple mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="roll_end" c:identifier="ges_timeline_element_roll_end"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the end time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_END.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in roll mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="roll_start" c:identifier="ges_timeline_element_roll_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in roll mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_ROLL and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in roll mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_child_properties" c:identifier="ges_timeline_element_set_child_properties" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets several of the children properties of the element. See +ges_timeline_element_set_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value for the first property, followed optionally by more +name/value pairs, followed by %NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_child_property" c:identifier="ges_timeline_element_set_child_property"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">See ges_timeline_element_set_child_property_full(), which also gives an +error. + +Note that ges_timeline_element_set_child_properties() may be more +convenient for C programming.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was found and set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value to set the property to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_by_pspec" c:identifier="ges_timeline_element_set_child_property_by_pspec"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the property of a child of the element. Specifically, the property +corresponding to the @pspec used in +ges_timeline_element_add_child_property() is set to @value.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification of a registered child property to set</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value to set the property to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_full" c:identifier="ges_timeline_element_set_child_property_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the property of a child of the element. + +@property_name can either be in the format "prop-name" or +"TypeName::prop-name", where "prop-name" is the name of the property +to set (as used in g_object_set()), and "TypeName" is the type name of +the child (as returned by G_OBJECT_TYPE_NAME()). The latter format is +useful when two children of different types share the same property +name. + +The first child found with the given "prop-name" property that was +registered with ges_timeline_element_add_child_property() (and of the +type "TypeName", if it was given) will have the corresponding +property set to @value. Other children that may have also matched the +property name (and type name) are left unchanged!</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the property was found and set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value to set the property to</doc> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_valist" c:identifier="ges_timeline_element_set_child_property_valist" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets several of the children properties of the element. See +ges_timeline_element_set_child_property().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the first child property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The value for the first property, followed optionally by more +name/value pairs, followed by %NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="set_duration" c:identifier="ges_timeline_element_set_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:duration for the element. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_TRIM with #GES_EDGE_END. In particular, the +#GESTimelineElement:duration of the element may be snapped to a +different timeline time difference from the one given. In addition, +setting may fail if it would place the timeline in an unsupported +configuration, or the element does not have enough internal content to +last the desired duration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @duration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired duration in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_inpoint" c:identifier="ges_timeline_element_set_inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:in-point for the element. If the new in-point +is above the current #GESTimelineElement:max-duration of the element, +this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @inpoint could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_max_duration" c:identifier="ges_timeline_element_set_max_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:max-duration for the element. If the new +maximum duration is below the current #GESTimelineElement:in-point of +the element, this method will fail.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @maxduration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="maxduration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The maximum duration, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_name" c:identifier="ges_timeline_element_set_name"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:name for the element. If %NULL is given +for @name, then the library will instead generate a new name based on +the type name of the element, such as the name "uriclip3" for a +#GESUriClip, and will set that name instead. + +If @self already has a #GESTimelineElement:timeline, you should not +call this function with @name set to %NULL. + +You should ensure that, within each #GESTimeline, every element has a +unique name. If you call this function with @name as %NULL, then +the library should ensure that the set generated name is unique from +previously **generated** names. However, if you choose a @name that +interferes with the naming conventions of the library, the library will +attempt to ensure that the generated names will not conflict with the +chosen name, which may lead to a different name being set instead, but +the uniqueness between generated and user-chosen names is not +guaranteed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @name or a generated name for @self could be set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="name" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name @self should take</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_parent" c:identifier="ges_timeline_element_set_parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:parent for the element. + +This is used internally and you should normally not call this. A +#GESContainer will set the #GESTimelineElement:parent of its children +in ges_container_add() and ges_container_remove(). + +Note, if @parent is not %NULL, @self must not already have a parent +set. Therefore, if you wish to switch parents, you will need to call +this function twice: first to set the parent to %NULL, and then to the +new parent. + +If @parent is not %NULL, you must ensure it already has a +(non-floating) reference to @self before calling this.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @parent could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@parent (nullable): New parent of @self</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="parent" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </method> + <method name="set_priority" c:identifier="ges_timeline_element_set_priority" deprecated="1" deprecated-version="1.10"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the priority of the element within the containing layer.</doc> + <doc-deprecated xml:space="preserve">All priority management is done by GES itself now. +To set #GESEffect priorities #ges_clip_set_top_effect_index should +be used.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @priority could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_start" c:identifier="ges_timeline_element_set_start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets #GESTimelineElement:start for the element. If the element has a +parent, this will also move its siblings with the same shift. + +Whilst the element is part of a #GESTimeline, this is the same as +editing the element with ges_timeline_element_edit() under +#GES_EDIT_MODE_NORMAL with #GES_EDGE_NONE. In particular, the +#GESTimelineElement:start of the element may be snapped to a different +timeline time from the one given. In addition, setting may fail if it +would place the timeline in an unsupported configuration.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @start could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired start position of the element in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_timeline_element_set_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Sets the #GESTimelineElement:timeline of the element. + +This is used internally and you should normally not call this. A +#GESClip will have its #GESTimelineElement:timeline set through its +#GESLayer. A #GESTrack will similarly take care of setting the +#GESTimelineElement:timeline of its #GESTrackElement-s. A #GESGroup +will adopt the same #GESTimelineElement:timeline as its children. + +If @timeline is %NULL, this will stop its current +#GESTimelineElement:timeline from tracking it, otherwise @timeline will +start tracking @self. Note, in the latter case, @self must not already +have a timeline set. Therefore, if you wish to switch timelines, you +will need to call this function twice: first to set the timeline to +%NULL, and then to the new timeline.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @timeline could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@timeline (nullable): The #GESTimeline @self should be in</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <method name="trim" c:identifier="ges_timeline_element_trim"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Edits the start time of an element within its timeline in trim mode. +See ges_timeline_element_edit() with #GES_EDIT_MODE_TRIM and +#GES_EDGE_START.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the trim edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to trim</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </instance-parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in trim mode</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <property name="duration" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The duration that the element is in effect for in the timeline (a +time difference in nanoseconds using the time coordinates of the +timeline). For example, for a source element, this would determine +for how long it should output its internal content for. For an +operation element, this would determine for how long its effect +should be applied to any source content.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="in-point" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The initial offset to use internally when outputting content (in +nanoseconds, but in the time coordinates of the internal content). + +For example, for a #GESVideoUriSource that references some media +file, the "internal content" is the media file data, and the +in-point would correspond to some timestamp in the media file. +When playing the timeline, and when the element is first reached at +timeline-time #GESTimelineElement:start, it will begin outputting the +data from the timestamp in-point **onwards**, until it reaches the +end of its #GESTimelineElement:duration in the timeline. + +For elements that have no internal content, this should be kept +as 0.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="max-duration" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The full duration of internal content that is available (a time +difference in nanoseconds using the time coordinates of the internal +content). + +This will act as a cap on the #GESTimelineElement:in-point of the +element (which is in the same time coordinates), and will sometimes +be used to limit the #GESTimelineElement:duration of the element in +the timeline. + +For example, for a #GESVideoUriSource that references some media +file, this would be the length of the media file. + +For elements that have no internal content, or whose content is +indefinite, this should be kept as #GST_CLOCK_TIME_NONE.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="name" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of the element. This should be unique within its timeline.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="parent" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The parent container of the element.</doc> + <type name="TimelineElement"/> + </property> + <property name="priority" deprecated="1" deprecated-version="1.10" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the element.</doc> + <doc-deprecated xml:space="preserve">Priority management is now done by GES itself.</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <property name="serialize" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether the element should be serialized.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="start" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The starting position of the element in the timeline (in nanoseconds +and in the time coordinates of the timeline). For example, for a +source element, this would determine the time at which it should +start outputting its internal content. For an operation element, this +would determine the time at which it should start applying its effect +to any source content.</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="timeline" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The timeline that the element lies within.</doc> + <type name="Timeline"/> + </property> + <field name="parent_instance"> + <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/> + </field> + <field name="parent"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:parent of the element</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </field> + <field name="asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESAsset from which the object has been extracted</doc> + <type name="Asset" c:type="GESAsset*"/> + </field> + <field name="start"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:start of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="inpoint"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:in-point of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:duration of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="maxduration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:max-duration of the element</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="priority"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:priority of the element</doc> + <type name="guint32" c:type="guint32"/> + </field> + <field name="timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:timeline of the element</doc> + <type name="Timeline" c:type="GESTimeline*"/> + </field> + <field name="name"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement:name of the element</doc> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TimelineElementPrivate" c:type="GESTimelineElementPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="child-property-added" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Emitted when the element has a new child property registered. See +ges_timeline_element_add_child_property(). + +Note that some GES elements will be automatically created with +pre-registered children properties. You can use +ges_timeline_element_list_children_properties() to list these.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The child whose property has been registered</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="prop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property that has been registered</doc> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="child-property-removed" when="first" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Emitted when the element has a child property unregistered. See +ges_timeline_element_remove_child_property().</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The child whose property has been unregistered</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="prop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property that has been unregistered</doc> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="deep-notify" when="first" no-recurse="1" detailed="1" no-hooks="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Emitted when a child of the element has one of its registered +properties set. See ges_timeline_element_add_child_property(). +Note that unlike #GObject::notify, a child property name can not be +used as a signal detail.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The child whose property has been set</doc> + <type name="GObject.Object"/> + </parameter> + <parameter name="prop" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The specification for the property that been set</doc> + <type name="GObject.ParamSpec"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TimelineElementClass" c:type="GESTimelineElementClass" glib:is-gtype-struct-for="TimelineElement"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h">The #GESTimelineElement base class. Subclasses should override at least +@set_start @set_inpoint @set_duration @ripple @ripple_end @roll_start +@roll_end and @trim. + +Vmethods in subclasses should apply all the operation they need to but +the real method implementation is in charge of setting the proper field, +and emitting the notify signal.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <field name="parent_class"> + <type name="GObject.InitiallyUnownedClass" c:type="GInitiallyUnownedClass"/> + </field> + <field name="set_parent"> + <callback name="set_parent"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @parent could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement +@parent (nullable): New parent of @self</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="parent" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_start"> + <callback name="set_start"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @start could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired start position of the element in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_inpoint"> + <callback name="set_inpoint"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @inpoint could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="inpoint" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The in-point, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_duration"> + <callback name="set_duration"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @duration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The desired duration in its timeline</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_max_duration"> + <callback name="set_max_duration"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @maxduration could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="maxduration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The maximum duration, in internal time coordinates</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_priority"> + <callback name="set_priority"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if @priority could be set for @self.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="priority" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </callback> + </field> + <field name="ripple"> + <callback name="ripple"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="ripple_end"> + <callback name="ripple_end"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the ripple edit of @self completed, %FALSE on +failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to ripple</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in ripple mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="roll_start"> + <callback name="roll_start"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="roll_end"> + <callback name="roll_end"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the roll edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to roll</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new end time of @self in roll mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="trim"> + <callback name="trim"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if the trim edit of @self completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to trim</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The new start time of @self in trim mode</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="deep_copy"> + <callback name="deep_copy"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="copy" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="paste" introspectable="0"> + <callback name="paste" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="ref_element" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="paste_position" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </callback> + </field> + <field name="list_children_properties" introspectable="0"> + <callback name="list_children_properties" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="lookup_child"> + <callback name="lookup_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">%TRUE if a child corresponding to the property was found, in +which case @child and @pspec are set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The name of a child property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="child" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +found child</doc> + <type name="GObject.Object" c:type="GObject**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The return location for the +specification of the child property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_track_types"> + <callback name="get_track_types"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The track types that @self supports.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_child_property"> + <callback name="set_child_property"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_layer_priority"> + <callback name="get_layer_priority"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The priority of the layer @self is in, or +#GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY if @self does not exist in a +layer.</doc> + <type name="guint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">A #GESTimelineElement</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_natural_framerate"> + <callback name="get_natural_framerate"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">Whether @self has a natural framerate or not, @framerate_n +and @framerate_d will be set to, respectively, 0 and -1 if it is +not the case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The #GESTimelineElement to get "natural" framerate from</doc> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline-element.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_child_property_full"> + <callback name="set_child_property_full" throws="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="TimelineElement" c:type="GESTimelineElement*"/> + </parameter> + <parameter name="child" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="const GValue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="14"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TimelineElementPrivate" c:type="GESTimelineElementPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline-element.h"/> + </record> + <record name="TimelinePrivate" c:type="GESTimelinePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + </record> + <class name="TitleClip" c:symbol-prefix="title_clip" c:type="GESTitleClip" parent="SourceClip" glib:type-name="GESTitleClip" glib:get-type="ges_title_clip_get_type" glib:type-struct="TitleClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Renders the given text in the specified font, at specified position, and +with the specified background pattern.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_title_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Creates a new #GESTitleClip</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The newly created #GESTitleClip, +or %NULL if there was an error.</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </return-value> + </constructor> + <method name="get_background_color" c:identifier="ges_title_clip_get_background_color" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the background used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color used by @self.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_title_clip_get_font_desc" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the pango font description used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The pango font description used by @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_title_clip_get_halignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the horizontal aligment used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal aligment used by @self.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_title_clip_get_text" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the text currently set on @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The text currently set on @self.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text_color" c:identifier="ges_title_clip_get_text_color" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the color used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color used by @self.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_title_clip_get_valignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the vertical aligment used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical aligment used by @self.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_title_clip_get_xpos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the horizontal position used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal position used by @self.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_title_clip_get_ypos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Get the vertical position used by @self.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_get_children_property instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical position used by @self.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">a #GESTitleClip</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_background" c:identifier="ges_title_clip_set_background" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the background of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="background" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_color" c:identifier="ges_title_clip_set_color" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the color of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_title_clip_set_font_desc" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the pango font description of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip*</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halignment" c:identifier="ges_title_clip_set_halignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the horizontal aligment of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set horizontal alignement of text on</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">#GESTextHAlign</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_title_clip_set_text" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the text this clip will render.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set text on</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_valignment" c:identifier="ges_title_clip_set_valignment" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the vertical aligment of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set vertical alignement of text on</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">#GESTextVAlign</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_title_clip_set_xpos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the horizontal position of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_title_clip_set_ypos" deprecated="1" deprecated-version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Sets the vertical position of the text.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">the #GESTitleClip* to set</doc> + <type name="TitleClip" c:type="GESTitleClip*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <property name="background" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The background of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <property name="color" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The color of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="guint" c:type="guint"/> + </property> + <property name="font-desc" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Pango font description string</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="halignment" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Horizontal alignment of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="TextHAlign"/> + </property> + <property name="text" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The text to diplay</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="valignment" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">Vertical alignent of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="TextVAlign"/> + </property> + <property name="xpos" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The horizontal position of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="gdouble" c:type="gdouble"/> + </property> + <property name="ypos" deprecated="1" deprecated-version="1.6" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-clip.c">The vertical position of the text</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_children_properties or +#ges_timeline_element_get_children_properties instead. +See #GESTitleSource for more information about exposed properties</doc-deprecated> + <type name="gdouble" c:type="gdouble"/> + </property> + <field name="parent"> + <type name="SourceClip" c:type="GESSourceClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TitleClipPrivate" c:type="GESTitleClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TitleClipClass" c:type="GESTitleClipClass" glib:is-gtype-struct-for="TitleClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClipClass" c:type="GESSourceClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TitleClipPrivate" c:type="GESTitleClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-clip.h"/> + </record> + <class name="TitleSource" c:symbol-prefix="title_source" c:type="GESTitleSource" parent="VideoSource" glib:type-name="GESTitleSource" glib:get-type="ges_title_source_get_type" glib:type-struct="TitleSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">#GESTitleSource is a GESTimelineElement that implements the notion +of titles in GES.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_background_color" c:identifier="ges_title_source_get_background_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the background used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The background used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_font_desc" c:identifier="ges_title_source_get_font_desc" deprecated="1" deprecated-version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the pango font description used by @source.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead +(this actually returns a newly allocated string)</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The pango font description used by this +@source.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_halignment" c:identifier="ges_title_source_get_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the horizontal aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The horizontal aligment used by @source.</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text" c:identifier="ges_title_source_get_text" deprecated="1" deprecated-version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the text currently set on the @source.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead +(this actually returns a newly allocated string)</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The text currently set on the @source.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_text_color" c:identifier="ges_title_source_get_text_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the color used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The color used by @source.</doc> + <type name="guint32" c:type="const guint32"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_valignment" c:identifier="ges_title_source_get_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the vertical aligment used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The vertical aligment used by @source.</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_xpos" c:identifier="ges_title_source_get_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the horizontal position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The horizontal position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_ypos" c:identifier="ges_title_source_get_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Get the vertical position used by @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">The vertical position used by @source.</doc> + <type name="gdouble" c:type="const gdouble"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">a #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_background_color" c:identifier="ges_title_source_set_background_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the color of the background</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_font_desc" c:identifier="ges_title_source_set_font_desc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Set the pango font description this source will use to render +the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="font_desc" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the pango font description</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_halignment" c:identifier="ges_title_source_set_halignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set text on</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="halign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">#GESTextHAlign</doc> + <type name="TextHAlign" c:type="GESTextHAlign"/> + </parameter> + </parameters> + </method> + <method name="set_text" c:identifier="ges_title_source_set_text" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the text this track element will render.</doc> + <doc-deprecated xml:space="preserve">use ges_track_element_get/set_children_properties on the +GESTrackElement instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set text on</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="text" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the text to render. an internal copy of this text will be +made.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_text_color" c:identifier="ges_title_source_set_text_color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the color of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="color" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the color @self is being set to</doc> + <type name="guint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_valignment" c:identifier="ges_title_source_set_valignment"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the vertical aligment of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set text on</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="valign" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">#GESTextVAlign</doc> + <type name="TextVAlign" c:type="GESTextVAlign"/> + </parameter> + </parameters> + </method> + <method name="set_xpos" c:identifier="ges_title_source_set_xpos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the horizontal position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the horizontal position @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="set_ypos" c:identifier="ges_title_source_set_ypos"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">Sets the vertical position of the text.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the #GESTitleSource* to set</doc> + <type name="TitleSource" c:type="GESTitleSource*"/> + </instance-parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.c">the color @self is being set to</doc> + <type name="gdouble" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TitleSourcePrivate" c:type="GESTitleSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TitleSourceClass" c:type="GESTitleSourceClass" glib:is-gtype-struct-for="TitleSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-title-source.h">parent class</doc> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TitleSourcePrivate" c:type="GESTitleSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-title-source.h"/> + </record> + <class name="Track" c:symbol-prefix="track" c:type="GESTrack" parent="Gst.Bin" glib:type-name="GESTrack" glib:get-type="ges_track_get_type" glib:type-struct="TrackClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack acts an output source for a #GESTimeline. Each one +essentially provides an additional #GstPad for the timeline, with +#GESTrack:restriction-caps capabilities. Internally, a track +wraps an #nlecomposition filtered by a #capsfilter. + +A track will contain a number of #GESTrackElement-s, and its role is +to select and activate these elements according to their timings when +the timeline in played. For example, a track would activate a +#GESSource when its #GESTimelineElement:start is reached by outputting +its data for its #GESTimelineElement:duration. Similarly, a +#GESOperation would be activated by applying its effect to the source +data, starting from its #GESTimelineElement:start time and lasting for +its #GESTimelineElement:duration. + +For most users, it will usually be sufficient to add newly created +tracks to a timeline, but never directly add an element to a track. +Whenever a #GESClip is added to a timeline, the clip adds its +elements to the timeline's tracks and assumes responsibility for +updating them.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_track_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Creates a new track with the given track-type and caps. + +If @type is #GES_TRACK_TYPE_VIDEO, and @caps is a subset of +"video/x-raw(ANY)", then a #GESVideoTrack is created. This will +automatically choose a gap creation method suitable for video data. You +will likely want to set #GESTrack:restriction-caps separately. You may +prefer to use the ges_video_track_new() method instead. + +If @type is #GES_TRACK_TYPE_AUDIO, and @caps is a subset of +"audio/x-raw(ANY)", then a #GESAudioTrack is created. This will +automatically choose a gap creation method suitable for audio data, and +will set the #GESTrack:restriction-caps to the default for +#GESAudioTrack. You may prefer to use the ges_audio_track_new() method +instead. + +Otherwise, a plain #GESTrack is returned. You will likely want to set +the #GESTrack:restriction-caps and call +ges_track_set_create_element_for_gap_func() on the returned track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A new track.</doc> + <type name="Track" c:type="GESTrack*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The #GESTrack:track-type for the track</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + <parameter name="caps" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The #GESTrack:caps for the track</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </constructor> + <virtual-method name="get_mixing_element" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </virtual-method> + <method name="add_element" c:identifier="ges_track_add_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">See ges_track_add_element(), which also gives an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully added to @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to add</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="add_element_full" c:identifier="ges_track_add_element_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Adds the given track element to the track, which takes ownership of the +element. + +Note that this can fail if it would break a configuration rule of the +track's #GESTimeline. + +Note that a #GESTrackElement can only be added to one track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully added to @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to add</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="commit" c:identifier="ges_track_commit"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Commits all the pending changes for the elements contained in the +track. + +When changes are made to the timing or priority of elements within a +track, they are not directly executed for the underlying +#nlecomposition and its children. This method will finally execute +these changes so they are reflected in the data output of the track. + +Any pending changes will be executed in the backend. The +#GESTimeline::commited signal will be emitted once this has completed. + +Note that ges_timeline_commit() will call this method on all of its +tracks, so you are unlikely to need to use this directly.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if pending changes were committed, or %FALSE if nothing +needed to be committed.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_caps" c:identifier="ges_track_get_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Get the #GESTrack:caps of the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The caps of @track.</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_elements" c:identifier="ges_track_get_elements"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Gets the track elements contained in the track. The returned list is +sorted by the element's #GESTimelineElement:priority and +#GESTimelineElement:start.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A list of +all the #GESTrackElement-s in @track.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="TrackElement"/> + </type> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_mixing" c:identifier="ges_track_get_mixing"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Gets the #GESTrack:mixing of the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Whether @track is mixing.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_restriction_caps" c:identifier="ges_track_get_restriction_caps" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Gets the #GESTrack:restriction-caps of the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The restriction-caps of @track.</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_timeline" c:identifier="ges_track_get_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Get the timeline this track belongs to.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The timeline that @track belongs to, or %NULL if +it does not belong to a timeline.</doc> + <type name="Timeline" c:type="const GESTimeline*"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + </parameters> + </method> + <method name="remove_element" c:identifier="ges_track_remove_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">See ges_track_remove_element_full(), which also returns an error.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully removed from @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to remove</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="remove_element_full" c:identifier="ges_track_remove_element_full" version="1.18" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Removes the given track element from the track, which revokes +ownership of the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">%TRUE if @object was successfully removed from @track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element to remove</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </method> + <method name="set_create_element_for_gap_func" c:identifier="ges_track_set_create_element_for_gap_func" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Sets the function that will be used to create a #GstElement that can be +used as a source to fill the gaps of the track. A gap is a timeline +region where the track has no #GESTrackElement sources. Therefore, you +are likely to want the #GstElement returned by the function to always +produce 'empty' content, defined relative to the stream type, such as +transparent frames for a video, or mute samples for audio. + +#GESAudioTrack and #GESVideoTrack objects are created with such a +function already set appropriately.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="func" transfer-ownership="none" scope="notified"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The function to be used to create a source +#GstElement that can fill gaps in @track</doc> + <type name="CreateElementForGapFunc" c:type="GESCreateElementForGapFunc"/> + </parameter> + </parameters> + </method> + <method name="set_mixing" c:identifier="ges_track_set_mixing"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Sets the #GESTrack:mixing for the track.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="mixing" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Whether @track should be mixing</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_restriction_caps" c:identifier="ges_track_set_restriction_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Sets the #GESTrack:restriction-caps for the track. + +> **NOTE**: Restriction caps are **not** taken into account when +> using #GESPipeline:mode=#GES_PIPELINE_MODE_SMART_RENDER.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The new restriction-caps for @track</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="set_timeline" c:identifier="ges_track_set_timeline"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Informs the track that it belongs to the given timeline. Calling this +does not actually add the track to the timeline. For that, you should +use ges_timeline_add_track(), which will also take care of informing +the track that it belongs to the timeline. As such, there is no need +for you to call this method.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack +@timeline (nullable): A #GESTimeline</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="timeline" transfer-ownership="none"> + <type name="Timeline" c:type="GESTimeline*"/> + </parameter> + </parameters> + </method> + <method name="update_restriction_caps" c:identifier="ges_track_update_restriction_caps"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Updates the #GESTrack:restriction-caps of the track using the fields +found in the given caps. Each of the #GstStructure-s in @caps is +compared against the existing structure with the same index in the +current #GESTrack:restriction-caps. If there is no corresponding +existing structure at that index, then the new structure is simply +copied to that index. Otherwise, any fields in the new structure are +copied into the existing structure. This will replace existing values, +and may introduce new ones, but any fields 'missing' in the new +structure are left unchanged in the existing structure. + +For example, if the existing #GESTrack:restriction-caps are +"video/x-raw, width=480, height=360", and the updating caps is +"video/x-raw, format=I420, width=500; video/x-bayer, width=400", then +the new #GESTrack:restriction-caps after calling this will be +"video/x-raw, width=500, height=360, format=I420; video/x-bayer, +width=400".</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">A #GESTrack</doc> + <type name="Track" c:type="GESTrack*"/> + </instance-parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The caps to update the restriction-caps with</doc> + <type name="Gst.Caps" c:type="const GstCaps*"/> + </parameter> + </parameters> + </method> + <property name="caps" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The capabilities used to choose the output of the #GESTrack's +elements. Internally, this is used to select output streams when +several may be available, by determining whether its #GstPad is +compatible (see #NleObject:caps for #nlecomposition). As such, +this is used as a weaker indication of the desired output type of the +track, **before** the #GESTrack:restriction-caps is applied. +Therefore, this should be set to a *generic* superset of the +#GESTrack:restriction-caps, such as "video/x-raw(ANY)". In addition, +it should match with the track's #GESTrack:track-type. + +Note that when you set this property, the #GstCapsFeatures of all its +#GstStructure-s will be automatically set to #GST_CAPS_FEATURES_ANY. + +Once a track has been added to a #GESTimeline, you should not change +this. + +Default value: #GST_CAPS_ANY.</doc> + <type name="Gst.Caps"/> + </property> + <property name="duration" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Current duration of the track + +Default value: O</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="id" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The #nlecomposition:id of the underlying #nlecomposition.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <property name="mixing" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Whether the track should support the mixing of #GESLayer data, such +as composing the video data of each layer (when part of the video +data is transparent, the next layer will become visible) or adding +together the audio data. As such, for audio and video tracks, you'll +likely want to keep this set to %TRUE.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="restriction-caps" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The capabilities that specifies the final output format of the +#GESTrack. For example, for a video track, it would specify the +height, width, framerate and other properties of the stream. + +You may change this property after the track has been added to a +#GESTimeline, but it must remain compatible with the track's +#GESTrack:caps. + +Default value: #GST_CAPS_ANY.</doc> + <type name="Gst.Caps"/> + </property> + <property name="track-type" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The track type of the track. This controls the type of +#GESTrackElement-s that can be added to the track. This should +match with the track's #GESTrack:caps. + +Once a track has been added to a #GESTimeline, you should not change +this.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Gst.Bin" c:type="GstBin"/> + </field> + <field name="type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.h">The #GESTrack:track-type of the track</doc> + <type name="TrackType" c:type="GESTrackType"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TrackPrivate" c:type="GESTrackPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="commited" when="last"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">This signal will be emitted once the changes initiated by +ges_track_commit() have been executed in the backend. In particular, +this will be emitted whenever the underlying #nlecomposition has been +committed (see #nlecomposition::commited).</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="track-element-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Will be emitted after a track element is added to the track.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element that was added</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="track-element-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">Will be emitted after a track element is removed from the track.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="effect" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track.c">The element that was removed</doc> + <type name="TrackElement"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TrackClass" c:type="GESTrackClass" glib:is-gtype-struct-for="Track"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="Gst.BinClass" c:type="GstBinClass"/> + </field> + <field name="get_mixing_element" introspectable="0"> + <callback name="get_mixing_element" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="Track" c:type="GESTrack*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TrackElement" c:symbol-prefix="track_element" c:type="GESTrackElement" parent="TimelineElement" abstract="1" glib:type-name="GESTrackElement" glib:get-type="ges_track_element_get_type" glib:type-struct="TrackElementClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement is a #GESTimelineElement that specifically belongs +to a single #GESTrack of its #GESTimelineElement:timeline. Its +#GESTimelineElement:start and #GESTimelineElement:duration specify its +temporal extent in the track. Specifically, a track element wraps some +nleobject, such as an #nlesource or #nleoperation, which can be +retrieved with ges_track_element_get_nleobject(), and its +#GESTimelineElement:start, #GESTimelineElement:duration, +#GESTimelineElement:in-point, #GESTimelineElement:priority and +#GESTrackElement:active properties expose the corresponding nleobject +properties. When a track element is added to a track, its nleobject is +added to the corresponding #nlecomposition that the track wraps. + +Most users will not have to work directly with track elements since a +#GESClip will automatically create track elements for its timeline's +tracks and take responsibility for updating them. The only track +elements that are not automatically created by clips, but a user is +likely to want to create, are #GESEffect-s. + +## Control Bindings for Children Properties + +You can set up control bindings for a track element child property +using ges_track_element_set_control_source(). A +#GstTimedValueControlSource should specify the timed values using the +internal source coordinates (see #GESTimelineElement). By default, +these will be updated to lie between the #GESTimelineElement:in-point +and out-point of the element. This can be switched off by setting +#GESTrackElement:auto-clamp-control-sources to %FALSE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <virtual-method name="active_changed"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Notify when the #GESTrackElement:active property changes</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Whether the element is active or not inside the #nlecomposition</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="changed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="create_element"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #GstElement that the underlying nleobject +controls.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="create_gnl_object"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #NLEObject to use in the #nlecomposition</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </virtual-method> + <virtual-method name="list_children_properties" introspectable="0" deprecated="1" deprecated-version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Listing children properties is handled by +ges_timeline_element_list_children_properties() instead.</doc> + <doc-deprecated xml:space="preserve">Use #GESTimelineElementClass::list_children_properties +instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="lookup_child" invoker="lookup_child" deprecated="1" deprecated-version="1.14"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Looks up which @element and @pspec would be effected by the given @name. If various +contained elements have this property name you will get the first one, unless you +specify the class name in @name.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_lookup_child</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">TRUE if @element and @pspec could be found. FALSE otherwise. In that +case the values for @pspec and @element are not modified. Unref @element after +usage.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Object to lookup the property in</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Name of the property to look up. You can specify the name of the + class as such: "ClassName::property-name", to guarantee that you get the + proper GParamSpec in case various GstElement-s contain the same property + name. If you don't do so, you will get the first element found, having + this property and the and the corresponding GParamSpec.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to a #GstElement that + takes the real object to set property on</doc> + <type name="Gst.Element" c:type="GstElement**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to take the specification + describing the property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </virtual-method> + <method name="add_children_props" c:identifier="ges_track_element_add_children_props"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Adds all the properties of a #GstElement that match the criteria as +children properties of the track element. If the name of @element's +#GstElementFactory is not in @blacklist, and the factory's +#GST_ELEMENT_METADATA_KLASS contains at least one member of +@wanted_categories (e.g. #GST_ELEMENT_FACTORY_KLASS_DECODER), then +all the properties of @element that are also in @whitelist are added as +child properties of @self using +ges_timeline_element_add_child_property(). + +This is intended to be used by subclasses when constructing.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="element" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The child object to retrieve properties from</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="wanted_categories" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c"> +An array of element factory "klass" categories to whitelist, or %NULL +to accept all categories</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="blacklist" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A +blacklist of element factory names, or %NULL to not blacklist any +element factory</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + <parameter name="whitelist" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A +whitelist of element property names, or %NULL to whitelist all +writeable properties</doc> + <array c:type="const gchar**"> + <type name="utf8" c:type="gchar*"/> + </array> + </parameter> + </parameters> + </method> + <method name="clamp_control_source" c:identifier="ges_track_element_clamp_control_source" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Clamp the #GstTimedValueControlSource for the specified child property +to lie between the #GESTimelineElement:in-point and out-point of the +element. The out-point is the #GES_TIMELINE_ELEMENT_END of the element +translated from the timeline coordinates to the internal source +coordinates of the element. + +If the property does not have a #GstTimedValueControlSource set by +ges_track_element_set_control_source(), nothing happens. Otherwise, if +a timed value for the control source lies before the in-point of the +element, or after its out-point, then it will be removed. At the +in-point and out-point times, a new interpolated value will be placed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to clamp the control +source of</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="edit" c:identifier="ges_track_element_edit" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Edits the element within its track.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_edit instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the edit of @object completed, %FALSE on failure.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement to edit</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="layers" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A whitelist of layers +where the edit can be performed, %NULL allows all layers in the +timeline</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Layer"/> + </type> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The edit mode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The edge of @object where the edit should occur</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The edit position: a new location for the edge of @object +(in nanoseconds)</doc> + <type name="guint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_all_control_bindings" c:identifier="ges_track_element_get_all_control_bindings"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get all the control bindings that have been created for the children +properties of the track element using +ges_track_element_set_control_source(). The keys used in the returned +hash table are the child property names that were passed to +ges_track_element_set_control_source(), and their values are the +corresponding created #GstControlBinding.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A +hash table containing all child-property-name/control-binding pairs +for @trackelement.</doc> + <type name="GLib.HashTable" c:type="GHashTable*"> + <type name="utf8"/> + <type name="Gst.ControlBinding"/> + </type> + </return-value> + <parameters> + <instance-parameter name="trackelement" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_auto_clamp_control_sources" c:identifier="ges_track_element_get_auto_clamp_control_sources" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets #GESTrackElement:auto-clamp-control-sources.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the control sources for the child properties of +@object are automatically clamped.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_child_properties" c:identifier="ges_track_element_get_child_properties" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets properties of a child of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The origin #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="get_child_property" c:identifier="ges_track_element_get_child_property" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">In general, a copy is made of the property contents and +the caller is responsible for freeing the memory by calling +g_value_unset(). + +Gets a property of a GstElement contained in @object. + +Note that #ges_track_element_get_child_property is really +intended for language bindings, #ges_track_element_get_child_properties +is much more convenient for C programming.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_property</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the property was found, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The origin #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the property value, it will +be initialized if it is initialized with 0</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_by_pspec" c:identifier="ges_track_element_get_child_property_by_pspec" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets a property of a child of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_property_by_pspec</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GParamSpec that specifies the property you want to get</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" direction="out" caller-allocates="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_child_property_valist" c:identifier="ges_track_element_get_child_property_valist" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets a property of a child of @object. If there are various child elements +that have the same property name, you can distinguish them using the following +syntax: 'ClasseName::property_name' as property name. If you don't, the +corresponding property of the first element found will be set.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_get_child_property_valist</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement parent object</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to get</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Value for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="get_control_binding" c:identifier="ges_track_element_get_control_binding"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets the control binding that was created for the specified child +property of the track element using +ges_track_element_set_control_source(). The given @property_name must +be the same name of the child property that was passed to +ges_track_element_set_control_source().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control binding that was +created for the specified child property of @object, or %NULL if +@property_name does not correspond to any control binding.</doc> + <type name="Gst.ControlBinding" c:type="GstControlBinding*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to return the control +binding of</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_element" c:identifier="ges_track_element_get_element"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the #GstElement that the track element's underlying nleobject +controls.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GstElement being controlled by the +nleobject that @object wraps.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_gnlobject" c:identifier="ges_track_element_get_gnlobject" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the GNonLin object this object is controlling.</doc> + <doc-deprecated xml:space="preserve">use #ges_track_element_get_nleobject instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The GNonLin object this object is controlling.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_nleobject" c:identifier="ges_track_element_get_nleobject" version="1.6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the nleobject that this element wraps.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The nleobject that @object wraps.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track" c:identifier="ges_track_element_get_track"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get the #GESTrackElement:track for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track that @object belongs to, +or %NULL if it does not belong to a track.</doc> + <type name="Track" c:type="GESTrack*"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_track_type" c:identifier="ges_track_element_get_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets the #GESTrackElement:track-type for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track-type of @object.</doc> + <type name="TrackType" c:type="GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="has_internal_source" c:identifier="ges_track_element_has_internal_source" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets #GESTrackElement:has-internal-source for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if @object can have its 'internal time' properties set.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_active" c:identifier="ges_track_element_is_active"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets #GESTrackElement:active for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if @object is active in its track.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_core" c:identifier="ges_track_element_is_core" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Get whether the given track element is a core track element. That is, +it was created by the @create_track_elements #GESClipClass method for +some #GESClip. + +Note that such a track element can only be added to a clip that shares +the same #GESAsset as the clip that created it. For example, you are +allowed to move core children between clips that resulted from +ges_container_ungroup(), but you could not move the core child from a +#GESUriClip to a #GESTitleClip or another #GESUriClip with a different +#GESUriClip:uri. + +Moreover, if a core track element is added to a clip, it will always be +added as a core child. Therefore, if this returns %TRUE, then @element +will be a core child of its parent clip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if @element is a core track element.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + </parameters> + </method> + <method name="list_children_properties" c:identifier="ges_track_element_list_children_properties" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Gets an array of #GParamSpec* for all configurable properties of the +children of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_list_children_properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">An array of #GParamSpec* which should be freed after use or +%NULL if something went wrong.</doc> + <array length="0" zero-terminated="0" c:type="GParamSpec**"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </array> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement to get the list of children properties from</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="n_properties" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">return location for the length of the returned array</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="lookup_child" c:identifier="ges_track_element_lookup_child" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Looks up which @element and @pspec would be effected by the given @name. If various +contained elements have this property name you will get the first one, unless you +specify the class name in @name.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_lookup_child</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">TRUE if @element and @pspec could be found. FALSE otherwise. In that +case the values for @pspec and @element are not modified. Unref @element after +usage.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Object to lookup the property in</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Name of the property to look up. You can specify the name of the + class as such: "ClassName::property-name", to guarantee that you get the + proper GParamSpec in case various GstElement-s contain the same property + name. If you don't do so, you will get the first element found, having + this property and the and the corresponding GParamSpec.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to a #GstElement that + takes the real object to set property on</doc> + <type name="Gst.Element" c:type="GstElement**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to take the specification + describing the property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </method> + <method name="remove_control_binding" c:identifier="ges_track_element_remove_control_binding"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Removes the #GstControlBinding that was created for the specified child +property of the track element using +ges_track_element_set_control_source(). The given @property_name must +be the same name of the child property that was passed to +ges_track_element_set_control_source().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the control binding was removed from the specified +child property of @object, or %FALSE if an error occurred.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to remove the control +binding from</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_active" c:identifier="ges_track_element_set_active"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets #GESTrackElement:active for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the property was *toggled*.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether @object should be active in its track</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_auto_clamp_control_sources" c:identifier="ges_track_element_set_auto_clamp_control_sources" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets #GESTrackElement:auto-clamp-control-sources. If set to %TRUE, this +will immediately clamp all the control sources.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="auto_clamp" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether to automatically clamp the control sources for the +child properties of @object</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_child_properties" c:identifier="ges_track_element_set_child_properties" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a child of @object. If there are various child elements +that have the same property name, you can distinguish them using the following +syntax: 'ClasseName::property_name' as property name. If you don't, the +corresponding property of the first element found will be set.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_set_child_properties</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement parent object</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="..." transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">value for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <varargs/> + </parameter> + </parameters> + </method> + <method name="set_child_property" c:identifier="ges_track_element_set_child_property" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a GstElement contained in @object. + +Note that #ges_track_element_set_child_property is really +intended for language bindings, #ges_track_element_set_child_properties +is much more convenient for C programming.</doc> + <doc-deprecated xml:space="preserve">use #ges_timeline_element_set_child_property instead</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the property was set, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The origin #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the property</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_by_pspec" c:identifier="ges_track_element_set_child_property_by_pspec" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a child of @object.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_set_child_property_by_spec</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="pspec" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GParamSpec that specifies the property you want to set</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The value</doc> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_child_property_valist" c:identifier="ges_track_element_set_child_property_valist" introspectable="0" deprecated="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets a property of a child of @object. If there are various child elements +that have the same property name, you can distinguish them using the following +syntax: 'ClasseName::property_name' as property name. If you don't, the +corresponding property of the first element found will be set.</doc> + <doc-deprecated xml:space="preserve">Use #ges_timeline_element_set_child_property_valist</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-deprecated.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The #GESTrackElement parent object</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="first_property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the first property to set</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="var_args" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Value for the first property, followed optionally by more +name/return location pairs, followed by NULL</doc> + <type name="va_list" c:type="va_list"/> + </parameter> + </parameters> + </method> + <method name="set_control_source" c:identifier="ges_track_element_set_control_source"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Creates a #GstControlBinding for the specified child property of the +track element using the given control source. The given @property_name +should refer to an existing child property of the track element, as +used in ges_timeline_element_lookup_child(). + +If @binding_type is "direct", then the control binding is created with +gst_direct_control_binding_new() using the given control source. If +@binding_type is "direct-absolute", it is created with +gst_direct_control_binding_new_absolute() instead.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%TRUE if the specified child property could be bound to +@source, or %FALSE if an error occurred.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control source to bind the child property to</doc> + <type name="Gst.ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The name of the child property to control</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="binding_type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The type of binding to create ("direct" or +"direct-absolute")</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_has_internal_source" c:identifier="ges_track_element_set_has_internal_source" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets #GESTrackElement:has-internal-source for the element. If this is +set to %FALSE, this method will also set the +#GESTimelineElement:in-point of the element to 0 and its +#GESTimelineElement:max-duration to #GST_CLOCK_TIME_NONE.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">%FALSE if @has_internal_source is forbidden for @object and +%TRUE in any other case.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="has_internal_source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the @object should be allowed to have its +'internal time' properties set.</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_track_type" c:identifier="ges_track_element_set_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Sets the #GESTrackElement:track-type for the element.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The new track-type for @object</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <property name="active" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the effect of the element should be applied in its +#GESTrackElement:track. If set to %FALSE, it will not be used in +the output of the track.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="auto-clamp-control-sources" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Whether the control sources on the element (see +ges_track_element_set_control_source()) will be automatically +updated whenever the #GESTimelineElement:in-point or out-point of the +element change in value. + +See ges_track_element_clamp_control_source() for how this is done +per control source. + +Default value: %TRUE</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="has-internal-source" version="1.18" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">This property is used to determine whether the 'internal time' +properties of the element have any meaning. In particular, unless +this is set to %TRUE, the #GESTimelineElement:in-point and +#GESTimelineElement:max-duration can not be set to any value other +than the default 0 and #GST_CLOCK_TIME_NONE, respectively. + +If an element has some *internal* *timed* source #GstElement that it +reads stream data from as part of its function in a #GESTrack, then +you'll likely want to set this to %TRUE to allow the +#GESTimelineElement:in-point and #GESTimelineElement:max-duration to +be set. + +The default value is determined by the #GESTrackElementClass +@default_has_internal_source class property. For most +#GESSourceClass-es, this will be %TRUE, with the exception of those +that have a potentially *static* source, such as #GESImageSourceClass +and #GESTitleSourceClass. Otherwise, this will usually be %FALSE. + +For most #GESOperation-s you will likely want to leave this set to +%FALSE. The exception may be for an operation that reads some stream +data from some private internal source as part of manipulating the +input data from the usual linked upstream #GESTrackElement. + +For example, you may want to set this to %TRUE for a +#GES_TRACK_TYPE_VIDEO operation that wraps a #textoverlay that reads +from a subtitle file and places its text on top of the received video +data. The #GESTimelineElement:in-point of the element would be used +to shift the initial seek time on the #textoverlay away from 0, and +the #GESTimelineElement:max-duration could be set to reflect the +time at which the subtitle file runs out of data. + +Note that GES can not support track elements that have both internal +content and manipulate the timing of their data streams (time +effects).</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="track" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track that this element belongs to, or %NULL if it does not +belong to a track.</doc> + <type name="Track"/> + </property> + <property name="track-type" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The track type of the element, which determines the type of track the +element can be added to (see #GESTrack:track-type). This should +correspond to the type of data that the element can produce or +process.</doc> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="TimelineElement" c:type="GESTimelineElement"/> + </field> + <field name="active" readable="0" private="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TrackElementPrivate" c:type="GESTrackElementPrivate*"/> + </field> + <field name="asset" readable="0" private="1"> + <type name="Asset" c:type="GESAsset*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <glib:signal name="control-binding-added" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">This is emitted when a control binding is added to a child property +of the track element.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="control_binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control binding that has been added</doc> + <type name="Gst.ControlBinding"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="control-binding-removed" when="first"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">This is emitted when a control binding is removed from a child +property of the track element.</doc> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="control_binding" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">The control binding that has been removed</doc> + <type name="Gst.ControlBinding"/> + </parameter> + </parameters> + </glib:signal> + </class> + <class name="TrackElementAsset" c:symbol-prefix="track_element_asset" c:type="GESTrackElementAsset" parent="Asset" glib:type-name="GESTrackElementAsset" glib:get-type="ges_track_element_asset_get_type" glib:type-struct="TrackElementAssetClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <virtual-method name="get_natural_framerate" invoker="get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_natural_framerate" c:identifier="ges_track_element_asset_get_natural_framerate" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Result: %TRUE if @self has a natural framerate %FALSE otherwise</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_track_type" c:identifier="ges_track_element_asset_get_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Get the GESAssetTrackType the #GESTrackElement extracted from @self +should get into</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">a #GESTrackType</doc> + <type name="TrackType" c:type="const GESTrackType"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_track_type" c:identifier="ges_track_element_asset_set_track_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">Set the #GESTrackType the #GESTrackElement extracted from @self +should get into</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESTrackType</doc> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </method> + <property name="track-type" writable="1" construct="1" transfer-ownership="none"> + <type name="TrackType"/> + </property> + <field name="parent"> + <type name="Asset" c:type="GESAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TrackElementAssetPrivate" c:type="GESTrackElementAssetPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TrackElementAssetClass" c:type="GESTrackElementAssetClass" glib:is-gtype-struct-for="TrackElementAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <field name="parent_class"> + <type name="AssetClass" c:type="GESAssetClass"/> + </field> + <field name="get_natural_framerate"> + <callback name="get_natural_framerate"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h">%TRUE if @self has a natural framerate @FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">A #GESAsset</doc> + <type name="TrackElementAsset" c:type="GESTrackElementAsset*"/> + </parameter> + <parameter name="framerate_n" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate numerator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="framerate_d" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.c">The framerate denominator</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TrackElementAssetPrivate" c:type="GESTrackElementAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element-asset.h"/> + </record> + <record name="TrackElementClass" c:type="GESTrackElementClass" glib:is-gtype-struct-for="TrackElement"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="TimelineElementClass" c:type="GESTimelineElementClass"/> + </field> + <field name="nleobject_factorytype"> + <type name="utf8" c:type="const gchar*"/> + </field> + <field name="create_gnl_object"> + <callback name="create_gnl_object"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #NLEObject to use in the #nlecomposition</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_element"> + <callback name="create_element"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">the #GstElement that the underlying nleobject +controls.</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">The #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="active_changed"> + <callback name="active_changed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">A #GESTrackElement</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.h">Whether the element is active or not inside the #nlecomposition</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="changed"> + <callback name="changed"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="list_children_properties" introspectable="0"> + <callback name="list_children_properties" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="n_properties" transfer-ownership="none"> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="lookup_child"> + <callback name="lookup_child"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">TRUE if @element and @pspec could be found. FALSE otherwise. In that +case the values for @pspec and @element are not modified. Unref @element after +usage.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Object to lookup the property in</doc> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + <parameter name="prop_name" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">Name of the property to look up. You can specify the name of the + class as such: "ClassName::property-name", to guarantee that you get the + proper GParamSpec in case various GstElement-s contain the same property + name. If you don't do so, you will get the first element found, having + this property and the and the corresponding GParamSpec.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="element" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to a #GstElement that + takes the real object to set property on</doc> + <type name="Gst.Element" c:type="GstElement**"/> + </parameter> + <parameter name="pspec" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-track-element.c">pointer to take the specification + describing the property</doc> + <type name="GObject.ParamSpec" c:type="GParamSpec**"/> + </parameter> + </parameters> + </callback> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <field name="_ges_reserved" writable="1"> + <array zero-terminated="0" fixed-size="20"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + <field name="default_has_internal_source" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="default_track_type" writable="1"> + <type name="TrackType" c:type="GESTrackType"/> + </field> + </record> + </union> + </record> + <record name="TrackElementPrivate" c:type="GESTrackElementPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track-element.h"/> + </record> + <record name="TrackPrivate" c:type="GESTrackPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-track.h"/> + </record> + <bitfield name="TrackType" glib:type-name="GESTrackType" glib:get-type="ges_track_type_get_type" c:type="GESTrackType"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Types of content handled by a track. If the content is not one of +@GES_TRACK_TYPE_AUDIO, @GES_TRACK_TYPE_VIDEO or @GES_TRACK_TYPE_TEXT, +the user of the #GESTrack must set the type to @GES_TRACK_TYPE_CUSTOM. + +@GES_TRACK_TYPE_UNKNOWN is for internal purposes and should not be used +by users</doc> + <member name="unknown" value="1" c:identifier="GES_TRACK_TYPE_UNKNOWN" glib:nick="unknown"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A track of unknown type (i.e. invalid)</doc> + </member> + <member name="audio" value="2" c:identifier="GES_TRACK_TYPE_AUDIO" glib:nick="audio"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">An audio track</doc> + </member> + <member name="video" value="4" c:identifier="GES_TRACK_TYPE_VIDEO" glib:nick="video"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A video track</doc> + </member> + <member name="text" value="8" c:identifier="GES_TRACK_TYPE_TEXT" glib:nick="text"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A text (subtitle) track</doc> + </member> + <member name="custom" value="16" c:identifier="GES_TRACK_TYPE_CUSTOM" glib:nick="custom"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A custom-content track</doc> + </member> + <function name="name" c:identifier="ges_track_type_name"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </function> + </bitfield> + <class name="Transition" c:symbol-prefix="transition" c:type="GESTransition" parent="Operation" abstract="1" glib:type-name="GESTransition" glib:get-type="ges_transition_get_type" glib:type-struct="TransitionClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition.h">Base class for media transitions.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <field name="parent" readable="0" private="1"> + <type name="Operation" c:type="GESOperation"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TransitionPrivate" c:type="GESTransitionPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TransitionClass" c:type="GESTransitionClass" glib:is-gtype-struct-for="Transition"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="OperationClass" c:type="GESOperationClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <class name="TransitionClip" c:symbol-prefix="transition_clip" c:type="GESTransitionClip" parent="BaseTransitionClip" glib:type-name="GESTransitionClip" glib:get-type="ges_transition_clip_get_type" glib:type-struct="TransitionClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">Creates an object that mixes together the two underlying objects, A and B. +The A object is assumed to have a higher prioirity (lower number) than the +B object. At the transition in point, only A will be visible, and by the +end only B will be visible. + +The shape of the video transition depends on the value of the "vtype" +property. The default value is "crossfade". For audio, only "crossfade" is +supported. + +The ID of the ExtractableType is the nickname of the vtype property value. Note +that this value can be changed after creation and the GESExtractable.asset value +will be updated when needed.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_transition_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">Creates a new #GESTransitionClip.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">a newly created #GESTransitionClip, +or %NULL if something went wrong.</doc> + <type name="TransitionClip" c:type="GESTransitionClip*"/> + </return-value> + <parameters> + <parameter name="vtype" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">the type of transition to create</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_for_nick" c:identifier="ges_transition_clip_new_for_nick"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">Creates a new #GESTransitionClip for the provided @nick.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">The newly created #GESTransitionClip, +or %NULL if something went wrong</doc> + <type name="TransitionClip" c:type="GESTransitionClip*"/> + </return-value> + <parameters> + <parameter name="nick" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">a string representing the type of transition to create</doc> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </constructor> + <property name="vtype" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.c">a #GESVideoStandardTransitionType representing the wipe to use</doc> + <type name="VideoStandardTransitionType"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="BaseTransitionClip" c:type="GESBaseTransitionClip"/> + </field> + <field name="vtype"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h">a #GESVideoStandardTransitionType indicating the type of video transition +to apply.</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="TransitionClipPrivate" c:type="GESTransitionClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="TransitionClipClass" c:type="GESTransitionClipClass" glib:is-gtype-struct-for="TransitionClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="BaseTransitionClipClass" c:type="GESBaseTransitionClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="TransitionClipPrivate" c:type="GESTransitionClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition-clip.h"/> + </record> + <record name="TransitionPrivate" c:type="GESTransitionPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-transition.h"/> + </record> + <class name="UriClip" c:symbol-prefix="uri_clip" c:type="GESUriClip" parent="SourceClip" glib:type-name="GESUriClip" glib:get-type="ges_uri_clip_get_type" glib:type-struct="UriClipClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Represents all the output streams from a particular uri. It is assumed that +the URI points to a file of some type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_uri_clip_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Creates a new #GESUriClip for the provided @uri. + +> **WARNING**: This function might 'discover` @uri **synchrounously**, it is +> an IO and processing intensive task that you probably don't want to run in +> an application mainloop. Have a look at #ges_asset_request_async to see how +> to make that operation happen **asynchronously**.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">The newly created #GESUriClip, or +%NULL if there was an error.</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the URI the source should control</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </constructor> + <method name="get_uri" c:identifier="ges_uri_clip_get_uri"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Get the location of the resource.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">The location of the resource.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_image" c:identifier="ges_uri_clip_is_image"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Lets you know if @self is an image or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE if @self is a still image %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_muted" c:identifier="ges_uri_clip_is_muted"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Lets you know if the audio track of @self is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE if the audio track of @self is muted, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_is_image" c:identifier="ges_uri_clip_set_is_image"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Sets whether the clip is a still image or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + <parameter name="is_image" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE if @self is a still image, %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_mute" c:identifier="ges_uri_clip_set_mute"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Sets whether the audio track of this clip is muted or not.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">the #GESUriClip on which to mute or unmute the audio track</doc> + <type name="UriClip" c:type="GESUriClip*"/> + </instance-parameter> + <parameter name="mute" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">%TRUE to mute @self audio track, %FALSE to unmute it</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <property name="is-image" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Whether this uri clip represents a still image or not. This must be set +before create_track_elements is called.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="mute" writable="1" construct="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">Whether the sound will be played or not.</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="supported-formats" writable="1" construct="1" transfer-ownership="none"> + <type name="TrackType"/> + </property> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-clip.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent"> + <type name="SourceClip" c:type="GESSourceClip"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriClipPrivate" c:type="GESUriClipPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <class name="UriClipAsset" c:symbol-prefix="uri_clip_asset" c:type="GESUriClipAsset" parent="SourceClipAsset" glib:type-name="GESUriClipAsset" glib:get-type="ges_uri_clip_asset_get_type" glib:type-struct="UriClipAssetClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <function name="finish" c:identifier="ges_uri_clip_asset_finish" version="1.16" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Finalize the request of an async #GESUriClipAsset</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The #GESUriClipAsset previously requested</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </return-value> + <parameters> + <parameter name="res" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The #GAsyncResult from which to get the newly created #GESUriClipAsset</doc> + <type name="Gio.AsyncResult" c:type="GAsyncResult*"/> + </parameter> + </parameters> + </function> + <function name="new" c:identifier="ges_uri_clip_asset_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Creates a #GESUriClipAsset for @uri + +Example of request of a GESUriClipAsset: +|[ +// The request callback +static void +filesource_asset_loaded_cb (GESAsset * source, GAsyncResult * res, gpointer user_data) +{ + GError *error = NULL; + GESUriClipAsset *filesource_asset; + + filesource_asset = ges_uri_clip_asset_finish (res, &error); + if (filesource_asset) { + gst_print ("The file: %s is usable as a FileSource, it is%s an image and lasts %" GST_TIME_FORMAT, + ges_asset_get_id (GES_ASSET (filesource_asset)) + ges_uri_clip_asset_is_image (filesource_asset) ? "" : " not", + GST_TIME_ARGS (ges_uri_clip_asset_get_duration (filesource_asset)); + } else { + gst_print ("The file: %s is *not* usable as a FileSource because: %s", + ges_asset_get_id (source), error->message); + } + + gst_object_unref (mfs); +} + +// The request: +ges_uri_clip_asset_new (uri, (GAsyncReadyCallback) filesource_asset_loaded_cb, user_data); +]|</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The URI of the file for which to create a #GESUriClipAsset</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="cancellable" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">optional %GCancellable object, %NULL to ignore.</doc> + <type name="Gio.Cancellable" c:type="GCancellable*"/> + </parameter> + <parameter name="callback" transfer-ownership="none" nullable="1" allow-none="1" scope="async" closure="3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GAsyncReadyCallback to call when the initialization is finished</doc> + <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The user data to pass when @callback is called</doc> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="request_sync" c:identifier="ges_uri_clip_asset_request_sync" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Creates a #GESUriClipAsset for @uri syncronously. You should avoid +to use it in application, and rather create #GESUriClipAsset asynchronously</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A reference to the requested asset or %NULL if +an error happened</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The URI of the file for which to create a #GESUriClipAsset. +You can also use multi file uris for #GESMultiFileSource.</doc> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <method name="get_duration" c:identifier="ges_uri_clip_asset_get_duration"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets duration of the file represented by @self</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The duration of @self</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_info" c:identifier="ges_uri_clip_asset_get_info"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets #GstDiscovererInfo about the file</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">#GstDiscovererInfo of specified asset</doc> + <type name="GstPbutils.DiscovererInfo" c:type="GstDiscovererInfo*"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Target asset</doc> + <type name="UriClipAsset" c:type="const GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_max_duration" c:identifier="ges_uri_clip_asset_get_max_duration" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets maximum duration of the file represented by @self, +it is usually the same as GESUriClipAsset::duration, +but in the case of nested timelines, for example, they +are different as those can be extended 'infinitely'.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The maximum duration of @self</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_assets" c:identifier="ges_uri_clip_asset_get_stream_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Get the GESUriSourceAsset @self containes</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a +#GList of #GESUriSourceAsset</doc> + <type name="GLib.List" c:type="const GList*"> + <type name="UriSourceAsset"/> + </type> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_image" c:identifier="ges_uri_clip_asset_is_image" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Gets Whether the file represented by @self is an image or not</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Whether the file represented by @self is an image or not</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="GESUriClipAsset*"/> + </instance-parameter> + </parameters> + </method> + <property name="duration" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The duration (in nanoseconds) of the media file</doc> + <type name="guint64" c:type="guint64"/> + </property> + <property name="is-nested-timeline" version="1.18" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The duration (in nanoseconds) of the media file</doc> + <type name="gboolean" c:type="gboolean"/> + </property> + <field name="parent"> + <type name="SourceClipAsset" c:type="GESSourceClipAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriClipAssetPrivate" c:type="GESUriClipAssetPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="UriClipAssetClass" c:type="GESUriClipAssetClass" glib:is-gtype-struct-for="UriClipAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <field name="parent_class"> + <type name="SourceClipAssetClass" c:type="GESSourceClipAssetClass"/> + </field> + <field name="discoverer" readable="0" private="1"> + <type name="GstPbutils.Discoverer" c:type="GstDiscoverer*"/> + </field> + <field name="sync_discoverer" readable="0" private="1"> + <type name="GstPbutils.Discoverer" c:type="GstDiscoverer*"/> + </field> + <field name="discovered"> + <callback name="discovered"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="discoverer" transfer-ownership="none"> + <type name="GstPbutils.Discoverer" c:type="GstDiscoverer*"/> + </parameter> + <parameter name="info" transfer-ownership="none"> + <type name="GstPbutils.DiscovererInfo" c:type="GstDiscovererInfo*"/> + </parameter> + <parameter name="err" transfer-ownership="none"> + <type name="GLib.Error" c:type="GError*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="3"> + <type name="gpointer" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="3"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <method name="set_timeout" c:identifier="ges_uri_clip_asset_class_set_timeout"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Sets the timeout of #GESUriClipAsset loading</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="klass" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The #GESUriClipAssetClass on which to set the discoverer timeout</doc> + <type name="UriClipAssetClass" c:type="GESUriClipAssetClass*"/> + </instance-parameter> + <parameter name="timeout" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">The timeout to set</doc> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + </record> + <record name="UriClipAssetPrivate" c:type="GESUriClipAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + </record> + <record name="UriClipClass" c:type="GESUriClipClass" glib:is-gtype-struct-for="UriClip"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClipClass" c:type="GESSourceClipClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="UriClipPrivate" c:type="GESUriClipPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-clip.h"/> + </record> + <record name="UriSource" c:type="GESUriSource" disguised="1"> + <attribute name="doc.skip" value="true"/> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + </record> + <class name="UriSourceAsset" c:symbol-prefix="uri_source_asset" c:type="GESUriSourceAsset" parent="TrackElementAsset" glib:type-name="GESUriSourceAsset" glib:get-type="ges_uri_source_asset_get_type" glib:type-struct="UriSourceAssetClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h">Asset to create a stream specific #GESSource for a media file. + +NOTE: You should never request such a #GESAsset as they will be created automatically +by #GESUriClipAsset-s.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <implements name="MetaContainer"/> + <implements name="Gio.AsyncInitable"/> + <implements name="Gio.Initable"/> + <method name="get_filesource_asset" c:identifier="ges_uri_source_asset_get_filesource_asset"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Get the #GESUriClipAsset @self is contained in</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="UriClipAsset" c:type="const GESUriClipAsset*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_info" c:identifier="ges_uri_source_asset_get_stream_info"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Get the #GstDiscovererStreamInfo user by @asset</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">a #GESUriClipAsset</doc> + <type name="GstPbutils.DiscovererStreamInfo" c:type="GstDiscovererStreamInfo*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_stream_uri" c:identifier="ges_uri_source_asset_get_stream_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_image" c:identifier="ges_uri_source_asset_is_image" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">Check if @asset contains a single image</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">%TRUE if the video stream corresponds to an image (i.e. only +contains one frame)</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="asset" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-uri-asset.c">A #GESUriClipAsset</doc> + <type name="UriSourceAsset" c:type="GESUriSourceAsset*"/> + </instance-parameter> + </parameters> + </method> + <field name="parent"> + <type name="TrackElementAsset" c:type="GESTrackElementAsset"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriSourceAssetPrivate" c:type="GESUriSourceAssetPrivate*"/> + </field> + <field name="__ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="UriSourceAssetClass" c:type="GESUriSourceAssetClass" glib:is-gtype-struct-for="UriSourceAsset"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + <field name="parent_class"> + <type name="TrackElementAssetClass" c:type="GESTrackElementAssetClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="UriSourceAssetPrivate" c:type="GESUriSourceAssetPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-uri-asset.h"/> + </record> + <constant name="VERSION_MAJOR" value="1" c:type="GES_VERSION_MAJOR"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_MICRO" value="0" c:type="GES_VERSION_MICRO"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_MINOR" value="23" c:type="GES_VERSION_MINOR"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <constant name="VERSION_NANO" value="1" c:type="GES_VERSION_NANO"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/> + <type name="gint" c:type="gint"/> + </constant> + <class name="VideoSource" c:symbol-prefix="video_source" c:type="GESVideoSource" parent="Source" abstract="1" glib:type-name="GESVideoSource" glib:get-type="ges_video_source_get_type" glib:type-struct="VideoSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.h">Base class for video sources</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_natural_size" c:identifier="ges_video_source_get_natural_size" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">Retrieves the natural size of the video stream. The natural size, is +the size at which it will be displayed if no scaling is being applied. + +NOTE: The sources take into account the potential video rotation applied +by the #videoflip element that is inside the source, effects applied on +the clip which potentially also rotate the element are not taken into +account.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">%TRUE if the object has a natural size, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">A #GESVideoSource</doc> + <type name="VideoSource" c:type="GESVideoSource*"/> + </instance-parameter> + <parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">The natural width of the underlying source</doc> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-source.c">The natural height of the underlying source</doc> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="Source" c:type="GESSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoSourcePrivate" c:type="GESVideoSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoSourceClass" c:type="GESVideoSourceClass" glib:is-gtype-struct-for="VideoSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="SourceClass" c:type="GESSourceClass"/> + </field> + <field name="create_source" introspectable="0"> + <callback name="create_source" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TrackElement" c:type="GESTrackElement*"/> + </parameter> + </parameters> + </callback> + </field> + <union name="ABI" c:type="ABI"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <field name="_ges_reserved" writable="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <record name="abi" c:type="abi"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <field name="disable_scale_in_compositor" writable="1"> + <type name="gboolean" c:type="gboolean"/> + </field> + <field name="needs_converters"> + <callback name="needs_converters"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="VideoSource" c:type="GESVideoSource*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_natural_size"> + <callback name="get_natural_size"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="VideoSource" c:type="GESVideoSource*"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="gint" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create_filters" introspectable="0"> + <callback name="create_filters" introspectable="0"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="VideoSource" c:type="GESVideoSource*"/> + </parameter> + <parameter name="filters" transfer-ownership="none"> + <array name="GLib.PtrArray" c:type="GPtrArray*"> + <type name="gpointer" c:type="gpointer"/> + </array> + </parameter> + <parameter name="needs_converters" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + </record> + </union> + </record> + <record name="VideoSourcePrivate" c:type="GESVideoSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-source.h"/> + </record> + <enumeration name="VideoStandardTransitionType" glib:type-name="GESVideoStandardTransitionType" glib:get-type="ges_video_standard_transition_type_get_type" c:type="GESVideoStandardTransitionType"> + <member name="none" value="0" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE" glib:nick="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Transition type has not been set,</doc> + </member> + <member name="bar_wipe_lr" value="1" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR" glib:nick="bar-wipe-lr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A bar moves from left to right,</doc> + </member> + <member name="bar_wipe_tb" value="2" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB" glib:nick="bar-wipe-tb"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A bar moves from top to bottom,</doc> + </member> + <member name="box_wipe_tl" value="3" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL" glib:nick="box-wipe-tl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the upper-left corner to the lower-right corner,</doc> + </member> + <member name="box_wipe_tr" value="4" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR" glib:nick="box-wipe-tr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the upper-right corner to the lower-left corner,</doc> + </member> + <member name="box_wipe_br" value="5" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR" glib:nick="box-wipe-br"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the lower-right corner to the upper-left corner,</doc> + </member> + <member name="box_wipe_bl" value="6" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL" glib:nick="box-wipe-bl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the lower-left corner to the upper-right corner,</doc> + </member> + <member name="four_box_wipe_ci" value="7" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI" glib:nick="four-box-wipe-ci"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box shape expands from each of the four corners toward the center,</doc> + </member> + <member name="four_box_wipe_co" value="8" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO" glib:nick="four-box-wipe-co"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box shape expands from the center of each quadrant toward the corners of each quadrant,</doc> + </member> + <member name="barndoor_v" value="21" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V" glib:nick="barndoor-v"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A central, vertical line splits and expands toward the left and right edges,</doc> + </member> + <member name="barndoor_h" value="22" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H" glib:nick="barndoor-h"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A central, horizontal line splits and expands toward the top and bottom edges,</doc> + </member> + <member name="box_wipe_tc" value="23" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC" glib:nick="box-wipe-tc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the top edge's midpoint to the bottom corners,</doc> + </member> + <member name="box_wipe_rc" value="24" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC" glib:nick="box-wipe-rc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the right edge's midpoint to the left corners,</doc> + </member> + <member name="box_wipe_bc" value="25" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC" glib:nick="box-wipe-bc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the bottom edge's midpoint to the top corners,</doc> + </member> + <member name="box_wipe_lc" value="26" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC" glib:nick="box-wipe-lc"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A box expands from the left edge's midpoint to the right corners,</doc> + </member> + <member name="diagonal_tl" value="41" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL" glib:nick="diagonal-tl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line moves from the upper-left corner to the lower-right corner,</doc> + </member> + <member name="diagonal_tr" value="42" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR" glib:nick="diagonal-tr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line moves from the upper right corner to the lower-left corner,</doc> + </member> + <member name="bowtie_v" value="43" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V" glib:nick="bowtie-v"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two wedge shapes slide in from the top and bottom edges toward the center,</doc> + </member> + <member name="bowtie_h" value="44" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H" glib:nick="bowtie-h"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two wedge shapes slide in from the left and right edges toward the center,</doc> + </member> + <member name="barndoor_dbl" value="45" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL" glib:nick="barndoor-dbl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,</doc> + </member> + <member name="barndoor_dtl" value="46" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL" glib:nick="barndoor-dtl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,</doc> + </member> + <member name="misc_diagonal_dbd" value="47" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD" glib:nick="misc-diagonal-dbd"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Four wedge shapes split from the center and retract toward the four edges,</doc> + </member> + <member name="misc_diagonal_dd" value="48" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD" glib:nick="misc-diagonal-dd"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,</doc> + </member> + <member name="vee_d" value="61" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D" glib:nick="vee-d"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from top to bottom,</doc> + </member> + <member name="vee_l" value="62" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L" glib:nick="vee-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from right to left,</doc> + </member> + <member name="vee_u" value="63" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U" glib:nick="vee-u"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from bottom to top,</doc> + </member> + <member name="vee_r" value="64" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R" glib:nick="vee-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A wedge shape moves from left to right,</doc> + </member> + <member name="barnvee_d" value="65" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D" glib:nick="barnvee-d"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the bottom edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="barnvee_l" value="66" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L" glib:nick="barnvee-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the left edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="barnvee_u" value="67" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U" glib:nick="barnvee-u"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the top edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="barnvee_r" value="68" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R" glib:nick="barnvee-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A 'V' shape extending from the right edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,</doc> + </member> + <member name="iris_rect" value="101" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT" glib:nick="iris-rect"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A rectangle expands from the center.,</doc> + </member> + <member name="clock_cw12" value="201" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12" glib:nick="clock-cw12"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the twelve o'clock position,</doc> + </member> + <member name="clock_cw3" value="202" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3" glib:nick="clock-cw3"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the three o'clock position,</doc> + </member> + <member name="clock_cw6" value="203" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6" glib:nick="clock-cw6"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the six o'clock position,</doc> + </member> + <member name="clock_cw9" value="204" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9" glib:nick="clock-cw9"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the nine o'clock position,</doc> + </member> + <member name="pinwheel_tbv" value="205" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV" glib:nick="pinwheel-tbv"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise from the twelve and six o'clock positions,</doc> + </member> + <member name="pinwheel_tbh" value="206" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH" glib:nick="pinwheel-tbh"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise from the nine and three o'clock positions,</doc> + </member> + <member name="pinwheel_fb" value="207" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB" glib:nick="pinwheel-fb"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Four radial hands sweep clockwise,</doc> + </member> + <member name="fan_ct" value="211" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT" glib:nick="fan-ct"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the top edge, the fan axis at the center,</doc> + </member> + <member name="fan_cr" value="212" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR" glib:nick="fan-cr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the right edge, the fan axis at the center,</doc> + </member> + <member name="doublefan_fov" value="213" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV" glib:nick="doublefan-fov"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the center, unfold from the top and bottom,</doc> + </member> + <member name="doublefan_foh" value="214" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH" glib:nick="doublefan-foh"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the center, unfold from the left and right,</doc> + </member> + <member name="singlesweep_cwt" value="221" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT" glib:nick="singlesweep-cwt"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the top edge's midpoint,</doc> + </member> + <member name="singlesweep_cwr" value="222" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR" glib:nick="singlesweep-cwr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the right edge's midpoint,</doc> + </member> + <member name="singlesweep_cwb" value="223" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB" glib:nick="singlesweep-cwb"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the bottom edge's midpoint,</doc> + </member> + <member name="singlesweep_cwl" value="224" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL" glib:nick="singlesweep-cwl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the left edge's midpoint,</doc> + </member> + <member name="doublesweep_pv" value="225" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV" glib:nick="doublesweep-pv"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges' midpoints,</doc> + </member> + <member name="doublesweep_pd" value="226" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD" glib:nick="doublesweep-pd"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands sweep clockwise and counter-clockwise from the left and right edges' midpoints,</doc> + </member> + <member name="doublesweep_ov" value="227" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV" glib:nick="doublesweep-ov"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the top and bottom edges' midpoints sweep from right to left,</doc> + </member> + <member name="doublesweep_oh" value="228" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH" glib:nick="doublesweep-oh"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the left and right edges' midpoints sweep from top to bottom,</doc> + </member> + <member name="fan_t" value="231" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T" glib:nick="fan-t"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the bottom, the fan axis at the top edge's midpoint,</doc> + </member> + <member name="fan_r" value="232" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R" glib:nick="fan-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the left, the fan axis at the right edge's midpoint,</doc> + </member> + <member name="fan_b" value="233" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B" glib:nick="fan-b"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the top, the fan axis at the bottom edge's midpoint,</doc> + </member> + <member name="fan_l" value="234" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L" glib:nick="fan-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A fan unfolds from the right, the fan axis at the left edge's midpoint,</doc> + </member> + <member name="doublefan_fiv" value="235" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV" glib:nick="doublefan-fiv"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the top and bottom, unfold from the center,</doc> + </member> + <member name="doublefan_fih" value="236" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH" glib:nick="doublefan-fih"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two fans, their axes at the left and right, unfold from the center,</doc> + </member> + <member name="singlesweep_cwtl" value="241" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL" glib:nick="singlesweep-cwtl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the upper-left corner,</doc> + </member> + <member name="singlesweep_cwbl" value="242" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL" glib:nick="singlesweep-cwbl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps counter-clockwise from the lower-left corner.,</doc> + </member> + <member name="singlesweep_cwbr" value="243" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR" glib:nick="singlesweep-cwbr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps clockwise from the lower-right corner,</doc> + </member> + <member name="singlesweep_cwtr" value="244" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR" glib:nick="singlesweep-cwtr"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A radial hand sweeps counter-clockwise from the upper-right corner,</doc> + </member> + <member name="doublesweep_pdtl" value="245" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL" glib:nick="doublesweep-pdtl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-left and lower-right corners sweep down and up,</doc> + </member> + <member name="doublesweep_pdbl" value="246" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL" glib:nick="doublesweep-pdbl"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the lower-left and upper-right corners sweep down and up,</doc> + </member> + <member name="saloondoor_t" value="251" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T" glib:nick="saloondoor-t"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-left and upper-right corners sweep down,</doc> + </member> + <member name="saloondoor_l" value="252" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L" glib:nick="saloondoor-l"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-left and lower-left corners sweep to the right,</doc> + </member> + <member name="saloondoor_b" value="253" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B" glib:nick="saloondoor-b"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the lower-left and lower-right corners sweep up,</doc> + </member> + <member name="saloondoor_r" value="254" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R" glib:nick="saloondoor-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the upper-right and lower-right corners sweep to the left,</doc> + </member> + <member name="windshield_r" value="261" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R" glib:nick="windshield-r"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,</doc> + </member> + <member name="windshield_u" value="262" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U" glib:nick="windshield-u"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,</doc> + </member> + <member name="windshield_v" value="263" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V" glib:nick="windshield-v"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,</doc> + </member> + <member name="windshield_h" value="264" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H" glib:nick="windshield-h"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,</doc> + </member> + <member name="crossfade" value="512" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE" glib:nick="crossfade"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Crossfade</doc> + </member> + <member name="fade_in" value="513" c:identifier="GES_VIDEO_STANDARD_TRANSITION_TYPE_FADE_IN" glib:nick="fade-in"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Similar to crossfade, but fade in the front video without fading out the background one (Since: 1.22)</doc> + </member> + </enumeration> + <enumeration name="VideoTestPattern" glib:type-name="GESVideoTestPattern" glib:get-type="ges_video_test_pattern_get_type" c:type="GESVideoTestPattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">The test pattern to produce</doc> + <member name="smpte" value="0" c:identifier="GES_VIDEO_TEST_PATTERN_SMPTE" glib:nick="smpte"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A standard SMPTE test pattern</doc> + </member> + <member name="snow" value="1" c:identifier="GES_VIDEO_TEST_PATTERN_SNOW" glib:nick="snow"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Random noise</doc> + </member> + <member name="black" value="2" c:identifier="GES_VIDEO_TEST_PATTERN_BLACK" glib:nick="black"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A black image</doc> + </member> + <member name="white" value="3" c:identifier="GES_VIDEO_TEST_PATTERN_WHITE" glib:nick="white"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A white image</doc> + </member> + <member name="red" value="4" c:identifier="GES_VIDEO_TEST_PATTERN_RED" glib:nick="red"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A red image</doc> + </member> + <member name="green" value="5" c:identifier="GES_VIDEO_TEST_PATTERN_GREEN" glib:nick="green"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A green image</doc> + </member> + <member name="blue" value="6" c:identifier="GES_VIDEO_TEST_PATTERN_BLUE" glib:nick="blue"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">A blue image</doc> + </member> + <member name="checkers_1" value="7" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS1" glib:nick="checkers-1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (1px)</doc> + </member> + <member name="checkers_2" value="8" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS2" glib:nick="checkers-2"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (2px)</doc> + </member> + <member name="checkers_4" value="9" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS4" glib:nick="checkers-4"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (4px)</doc> + </member> + <member name="checkers_8" value="10" c:identifier="GES_VIDEO_TEST_PATTERN_CHECKERS8" glib:nick="checkers-8"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Checkers pattern (8px)</doc> + </member> + <member name="circular" value="11" c:identifier="GES_VIDEO_TEST_PATTERN_CIRCULAR" glib:nick="circular"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Circular pattern</doc> + </member> + <member name="blink" value="12" c:identifier="GES_VIDEO_TEST_PATTERN_BLINK" glib:nick="blink"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Alternate between black and white</doc> + </member> + <member name="smpte75" value="13" c:identifier="GES_VIDEO_TEST_PATTERN_SMPTE75" glib:nick="smpte75"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">SMPTE test pattern (75% color bars)</doc> + </member> + <member name="zone_plate" value="14" c:identifier="GES_VIDEO_TEST_ZONE_PLATE" glib:nick="zone-plate"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Zone plate</doc> + </member> + <member name="gamut" value="15" c:identifier="GES_VIDEO_TEST_GAMUT" glib:nick="gamut"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Gamut checkers</doc> + </member> + <member name="chroma_zone_plate" value="16" c:identifier="GES_VIDEO_TEST_CHROMA_ZONE_PLATE" glib:nick="chroma-zone-plate"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Chroma zone plate</doc> + </member> + <member name="solid_color" value="17" c:identifier="GES_VIDEO_TEST_PATTERN_SOLID" glib:nick="solid-color"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Solid color</doc> + </member> + </enumeration> + <class name="VideoTestSource" c:symbol-prefix="video_test_source" c:type="GESVideoTestSource" parent="VideoSource" glib:type-name="GESVideoTestSource" glib:get-type="ges_video_test_source_get_type" glib:type-struct="VideoTestSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h">### Children Properties + + {{ libs/GESVideoTestSource-children-props.md }}</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <method name="get_pattern" c:identifier="ges_video_test_source_get_pattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">Get the video pattern used by the @source.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">The video pattern used by the @source.</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </return-value> + <parameters> + <instance-parameter name="source" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">a #GESVideoTestPattern</doc> + <type name="VideoTestSource" c:type="GESVideoTestSource*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_pattern" c:identifier="ges_video_test_source_set_pattern"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">Sets the source to use the given @pattern.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">a #GESVideoTestSource</doc> + <type name="VideoTestSource" c:type="GESVideoTestSource*"/> + </instance-parameter> + <parameter name="pattern" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-test-source.c">a #GESVideoTestPattern</doc> + <type name="VideoTestPattern" c:type="GESVideoTestPattern"/> + </parameter> + </parameters> + </method> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoTestSourcePrivate" c:type="GESVideoTestSourcePrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoTestSourceClass" c:type="GESVideoTestSourceClass" glib:is-gtype-struct-for="VideoTestSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + <field name="parent_class"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoTestSourcePrivate" c:type="GESVideoTestSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-test-source.h"/> + </record> + <class name="VideoTrack" c:symbol-prefix="video_track" c:type="GESVideoTrack" parent="Track" glib:type-name="GESVideoTrack" glib:get-type="ges_video_track_get_type" glib:type-struct="VideoTrackClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-track.c">A #GESVideoTrack is a default video #GESTrack, with a +#GES_TRACK_TYPE_VIDEO #GESTrack:track-type and "video/x-raw(ANY)" +#GESTrack:caps. + +By default, a video track will have its #GESTrack:restriction-caps +set to "video/x-raw" with the following properties: + +- width: 1280 +- height: 720 +- framerate: 30/1 + +These fields are needed for negotiation purposes, but you can change +their values if you wish. It is advised that you do so using +ges_track_update_restriction_caps() with new values for the fields you +wish to change, and any additional fields you may want to add. Unlike +using ges_track_set_restriction_caps(), this will ensure that these +default fields will at least have some value set.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + <implements name="MetaContainer"/> + <implements name="Gst.ChildProxy"/> + <constructor name="new" c:identifier="ges_video_track_new"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-track.c">Creates a new video track, with a #GES_TRACK_TYPE_VIDEO +#GESTrack:track-type and "video/x-raw(ANY)" #GESTrack:caps, and +"video/x-raw" #GESTrack:restriction-caps with the properties: + +- width: 1280 +- height: 720 +- framerate: 30/1 + +You should use ges_track_update_restriction_caps() if you wish to +modify these fields, or add additional ones.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-track.c">The newly created video track.</doc> + <type name="VideoTrack" c:type="GESVideoTrack*"/> + </return-value> + </constructor> + <field name="parent_instance"> + <type name="Track" c:type="GESTrack"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoTrackPrivate" c:type="GESVideoTrackPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoTrackClass" c:type="GESVideoTrackClass" glib:is-gtype-struct-for="VideoTrack"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + <field name="parent_class"> + <type name="TrackClass" c:type="GESTrackClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoTrackPrivate" c:type="GESVideoTrackPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-track.h"/> + </record> + <class name="VideoTransition" c:symbol-prefix="video_transition" c:type="GESVideoTransition" parent="Transition" glib:type-name="GESVideoTransition" glib:get-type="ges_video_transition_get_type" glib:type-struct="VideoTransitionClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <constructor name="new" c:identifier="ges_video_transition_new"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </return-value> + </constructor> + <method name="get_border" c:identifier="ges_video_transition_get_border" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Get the border property of @self, this value represents +the border width of the transition.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The border values of @self or -1 if not meaningful +(this will happen when not using a smpte transition).</doc> + <type name="gint" c:type="gint"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to get the border from</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + </parameters> + </method> + <method name="get_transition_type" c:identifier="ges_video_transition_get_transition_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Get the transition type used by @trans.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The transition type used by @trans.</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </return-value> + <parameters> + <instance-parameter name="trans" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">a #GESVideoTransition</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + </parameters> + </method> + <method name="is_inverted" c:identifier="ges_video_transition_is_inverted" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Get the invert property of @self, this value represents +the direction of the transition.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_get_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The invert value of @self</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to get the inversion from</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + </parameters> + </method> + <method name="set_border" c:identifier="ges_video_transition_set_border" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Set the border property of @self, this value represents +the border width of the transition. In case this value does +not make sense for the current transition type, it is cached +for later use.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_set_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to set the border to</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + <parameter name="value" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The value of the border to set on @object</doc> + <type name="guint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_inverted" c:identifier="ges_video_transition_set_inverted" deprecated="1" deprecated-version="1.20"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Set the invert property of @self, this value represents +the direction of the transition. In case this value does +not make sense for the current transition type, it is cached +for later use.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_set_child_property instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">The #GESVideoTransition to set invert on</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + <parameter name="inverted" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">%TRUE if the transition should be inverted %FALSE otherwise</doc> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_transition_type" c:identifier="ges_video_transition_set_transition_type"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">Sets the transition being used to @type.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">%TRUE if the transition type was properly changed, else %FALSE.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <instance-parameter name="self" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">a #GESVideoTransition</doc> + <type name="VideoTransition" c:type="GESVideoTransition*"/> + </instance-parameter> + <parameter name="type" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">a #GESVideoStandardTransitionType</doc> + <type name="VideoStandardTransitionType" c:type="GESVideoStandardTransitionType"/> + </parameter> + </parameters> + </method> + <property name="border" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">This value represents the border width of the transition.</doc> + <type name="guint" c:type="guint"/> + </property> + <property name="invert" deprecated="1" deprecated-version="1.20" writable="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.c">This value represents the direction of the transition.</doc> + <doc-deprecated xml:space="preserve">Use ges_timeline_element_[sg]et_child_property instead.</doc-deprecated> + <type name="gboolean" c:type="gboolean"/> + </property> + <property name="transition-type" writable="1" transfer-ownership="none"> + <type name="VideoStandardTransitionType"/> + </property> + <field name="parent"> + <type name="Transition" c:type="GESTransition"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="VideoTransitionPrivate" c:type="GESVideoTransitionPrivate*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoTransitionClass" c:type="GESVideoTransitionClass" glib:is-gtype-struct-for="VideoTransition"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + <field name="parent_class"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-transition.h">parent class</doc> + <type name="TransitionClass" c:type="GESTransitionClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoTransitionPrivate" c:type="GESVideoTransitionPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-transition.h"/> + </record> + <class name="VideoUriSource" c:symbol-prefix="video_uri_source" c:type="GESVideoUriSource" parent="VideoSource" glib:type-name="GESVideoUriSource" glib:get-type="ges_video_uri_source_get_type" glib:type-struct="VideoUriSourceClass"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h">### Children Properties + + {{ libs/GESVideoUriSource-children-props.md }}</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + <implements name="Extractable"/> + <implements name="MetaContainer"/> + <property name="uri" writable="1" construct-only="1" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.c">The location of the file/resource to use.</doc> + <type name="utf8" c:type="gchar*"/> + </property> + <field name="parent" readable="0" private="1"> + <type name="VideoSource" c:type="GESVideoSource"/> + </field> + <field name="uri" readable="0" private="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="priv" readable="0" private="1"> + <type name="UriSource" c:type="GESUriSource*"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="VideoUriSourceClass" c:type="GESVideoUriSourceClass" glib:is-gtype-struct-for="VideoUriSource"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + <field name="parent_class" readable="0" private="1"> + <type name="VideoSourceClass" c:type="GESVideoSourceClass"/> + </field> + <field name="_ges_reserved" readable="0" private="1"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="VideoUriSourcePrivate" c:type="GESVideoUriSourcePrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-video-uri-source.h"/> + </record> + <class name="XmlFormatter" c:symbol-prefix="xml_formatter" c:type="GESXmlFormatter" parent="BaseXmlFormatter" glib:type-name="GESXmlFormatter" glib:get-type="ges_xml_formatter_get_type" glib:type-struct="XmlFormatterClass"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-xml-formatter.h"/> + <implements name="Extractable"/> + <field name="parent"> + <type name="BaseXmlFormatter" c:type="GESBaseXmlFormatter"/> + </field> + <field name="priv"> + <type name="XmlFormatterPrivate" c:type="GESXmlFormatterPrivate*"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </class> + <record name="XmlFormatterClass" c:type="GESXmlFormatterClass" glib:is-gtype-struct-for="XmlFormatter"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-xml-formatter.h"/> + <field name="parent"> + <type name="BaseXmlFormatterClass" c:type="GESBaseXmlFormatterClass"/> + </field> + <field name="_ges_reserved"> + <array zero-terminated="0" fixed-size="4"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + </record> + <record name="XmlFormatterPrivate" c:type="GESXmlFormatterPrivate" disguised="1"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-xml-formatter.h"/> + </record> + <function name="add_missing_uri_relocation_uri" c:identifier="ges_add_missing_uri_relocation_uri"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-project.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + <parameter name="recurse" transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="deinit" c:identifier="ges_deinit"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Clean up any resources created by GES in ges_init(). + +It is normally not needed to call this function in a normal application as the +resources will automatically be freed when the program terminates. +This function is therefore mostly used by testsuites and other memory profiling tools. +This function should be called from the thread where ges_init() was called. + +After this call GES should not be used until another ges_init() call.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="edge_name" c:identifier="ges_edge_name" moved-to="Edge.name" version="1.16"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">A human friendly name for @edge</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="edge" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.c">The #GESEdge to get the name of</doc> + <type name="Edge" c:type="GESEdge"/> + </parameter> + </parameters> + </function> + <function name="edit_mode_name" c:identifier="ges_edit_mode_name" moved-to="EditMode.name" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">Return a string representation of @mode.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a string representation of @mode.</doc> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-enums.h">a #GESEditMode</doc> + <type name="EditMode" c:type="GESEditMode"/> + </parameter> + </parameters> + </function> + <function name="find_formatter_for_uri" c:identifier="ges_find_formatter_for_uri" version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">Get the best formatter for @uri. It tries to find a formatter +compatible with @uri extension, if none is found, it returns the default +formatter asset.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-formatter.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-formatter.c">The #GESAsset for the best formatter to save to @uri</doc> + <type name="Asset" c:type="GESAsset*"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="ges_init"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Initialize the GStreamer Editing Service. Call this before any usage of +GES. You should take care of initilizing GStreamer before calling this +function. + +MT safety. +GStreamer Editing Services do not guarantee MT safety. +An application is required to use GES APIs (including ges_deinit()) +in the thread where ges_init() was called.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="init_check" c:identifier="ges_init_check" throws="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Initializes the GStreamer Editing Services library, setting up internal path lists, +and loading evrything needed. + +This function will return %FALSE if GES could not be initialized +for some reason.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">%TRUE if GES could be initialized.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="argc" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to application's argc</doc> + <type name="gint" c:type="int*"/> + </parameter> + <parameter name="argv" direction="inout" caller-allocates="0" transfer-ownership="full" nullable="1" allow-none="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to application's argv</doc> + <array length="0" zero-terminated="0" c:type="char***"> + <type name="utf8" c:type="char**"/> + </array> + </parameter> + </parameters> + </function> + <function name="init_get_option_group" c:identifier="ges_init_get_option_group" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Returns a #GOptionGroup with GES's argument specifications. The +group is set up to use standard GOption callbacks, so when using this +group in combination with GOption parsing methods, all argument parsing +and initialization is automated. + +This function is useful if you want to integrate GES with other +libraries that use GOption (see g_option_context_add_group() ). + +If you use this function, you should make sure you initialise the GStreamer +as one of the very first things in your program. That means you need to +use gst_init_get_option_group() and add it to the option context before +using the ges_init_get_option_group() result.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">a pointer to GES's option group.</doc> + <type name="GLib.OptionGroup" c:type="GOptionGroup*"/> + </return-value> + </function> + <function name="is_initialized" c:identifier="ges_is_initialized" version="1.16"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Use this function to check if GES has been initialized with ges_init() +or ges_init_check().</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">%TRUE if initialization has been done, %FALSE otherwise.</doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="list_assets" c:identifier="ges_list_assets"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">List all the assets in the current cache whose +#GESAsset:extractable-type are of the given type (including +subclasses). + +Note that, since only a #GESExtractable can be extracted from an asset, +using `GES_TYPE_EXTRACTABLE` as @filter will return all the assets in +the current cache.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-asset.h"/> + <return-value transfer-ownership="container"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">A list of all +#GESAsset-s currently in the cache whose #GESAsset:extractable-type is +of the @filter type.</doc> + <type name="GLib.List" c:type="GList*"> + <type name="Asset"/> + </type> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-asset.c">The type of object that can be extracted from the asset</doc> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </function> + <function name="play_sink_convert_frame" c:identifier="ges_play_sink_convert_frame" deprecated="1" deprecated-version="1.18"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">Get the last buffer @playsink showed</doc> + <doc-deprecated xml:space="preserve">Use the "convert-sample" action signal of +#playsink instead.</doc-deprecated> + <source-position filename="../subprojects/gst-editing-services/ges/ges-screenshot.h"/> + <return-value transfer-ownership="full" nullable="1"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">A #GstSample containing the last frame from +@playsink in the format defined by the @caps</doc> + <type name="Gst.Sample" c:type="GstSample*"/> + </return-value> + <parameters> + <parameter name="playsink" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">The playsink to get last frame from</doc> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-screenshot.c">The caps defining the format the return value will have</doc> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pspec_equal" c:identifier="ges_pspec_equal"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-utils.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="key_spec_1" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + <parameter name="key_spec_2" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + </parameters> + </function> + <function name="pspec_hash" c:identifier="ges_pspec_hash"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-utils.h"/> + <return-value transfer-ownership="none"> + <type name="guint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="key_spec" transfer-ownership="none" nullable="1" allow-none="1"> + <type name="gpointer" c:type="gconstpointer"/> + </parameter> + </parameters> + </function> + <function-macro name="timeline_get_project" c:identifier="ges_timeline_get_project" introspectable="0"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">Helper macro to retrieve the project from which @obj was extracted</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges-timeline.h"/> + <parameters> + <parameter name="obj"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges-timeline.h">The #GESTimeline from which to retrieve the project</doc> + </parameter> + </parameters> + </function-macro> + <function name="track_type_name" c:identifier="ges_track_type_name" moved-to="TrackType.name"> + <source-position filename="../subprojects/gst-editing-services/ges/ges-enums.h"/> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="const gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="TrackType" c:type="GESTrackType"/> + </parameter> + </parameters> + </function> + <function name="validate_register_action_types" c:identifier="ges_validate_register_action_types"> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="gboolean" c:type="gboolean"/> + </return-value> + </function> + <function name="version" c:identifier="ges_version"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">Gets the version number of the GStreamer Editing Services library.</doc> + <source-position filename="../subprojects/gst-editing-services/ges/ges.h"/> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the major version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the minor version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="micro" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the micro version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + <parameter name="nano" direction="out" caller-allocates="0" transfer-ownership="full"> + <doc xml:space="preserve" filename="../subprojects/gst-editing-services/ges/ges.c">pointer to a guint to store the nano version number</doc> + <type name="guint" c:type="guint*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> |