The Assets in the GStreamer Editing Services represent the resources
that can be used. You can create assets for any type that implements the #GESExtractable
interface, for example #GESClips, #GESFormatter, and #GESTrackElement do implement it.
This means that assets will represent for example a #GESUriClips, #GESBaseEffect etc,
and then you can extract objects of those types with the appropriate parameters from the asset
using the #ges_asset_extract method:
|[
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));
]|
In that example, the advantages of having a #GESAsset are that you can know what effects
you are working with and let your user know about the avalaible ones, you can add metadata
to the #GESAsset through the #GESMetaContainer interface and you have a model for your
custom effects. Note that #GESAsset management is making easier thanks to the #GESProject class.
Each asset is represented by a pair of @extractable_type and @id (string). Actually the @extractable_type
is the type that implements the #GESExtractable interface, that means that for example for a #GESUriClip,
the type that implements the #GESExtractable interface is #GESClip.
The identifier represents different things depending on the @extractable_type and you should check
the documentation of each type to know what the ID of #GESAsset actually represents for that type. By default,
we only have one #GESAsset per type, and the @id is the name of the type, but this behaviour is overriden
to be more useful. For example, for GESTransitionClips, the ID is the vtype of the transition
you will extract from it (ie crossfade, box-wipe-rc etc..) For #GESEffect the ID is the
@bin-description property of the extracted objects (ie the gst-launch style description of the bin that
will be used).
Each and every #GESAsset is cached into GES, and you can query those with the #ges_list_assets function.
Also the system will automatically register #GESAssets for #GESFormatters and #GESTransitionClips
and standard effects (actually not implemented yet) and you can simply query those calling:
|[
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) {
g_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);
]|
You can request the creation of #GESAssets using either ges_asset_request() or
ges_asset_request_async(). All the #GESAssets are cached and thus any asset that has already
been created can be requested again without overhead.
Sets an asset from the internal cache as needing reload. An asset needs reload
in the case where, for example, we were missing a GstPlugin to use it and that
plugin has been installed, or, that particular asset content as changed
meanwhile (in the case of the usage of proxies).
Once an asset has been set as "needs reload", requesting that asset again
will lead to it being re discovered, and reloaded as if it was not in the
cache before.
%TRUE if the asset was in the cache and could be set as needing reload,
%FALSE otherwise.
The #GType of the object that can be extracted from the
asset to be reloaded.
The identifier of the asset to mark as needing reload
Create a #GESAsset in the most simple cases, you should look at the @extractable_type
documentation to see if that constructor can be called for this particular type
As it is recommanded not to instanciate assets for GESUriClip synchronously,
it will not work with this method, but you can instead use the specific
#ges_uri_clip_asset_request_sync method if you really want to.
A reference to the wanted #GESAsset or %NULL
The #GType of the object that can be extracted from the new asset.
The Identifier or %NULL
The @callback will be called from a running #GMainLoop which is iterating a #GMainContext.
Note that, users should ensure the #GMainContext, since this method will notify
@callback from the thread which was associated with a thread default
#GMainContext at calling ges_init().
For example, if a user wants non-default #GMainContext to be associated
with @callback, ges_init() must be called after g_main_context_push_thread_default ()
with custom #GMainContext.
Request a new #GESAsset asyncronously, @callback will be called when the materail is
ready to be used or if an error occured.
Example of request of a GESAsset async:
|[
// 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) {
g_print ("The file: %s is usable as a FileSource",
ges_asset_get_id (asset));
} else {
g_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_asset_request_async (GES_TYPE_URI_CLIP, some_uri, NULL,
(GAsyncReadyCallback) asset_loaded_cb, user_data);
]|
The #GType of the object that can be extracted from the
new asset. The class must implement the #GESExtractable interface.
The Identifier of the asset we want to create. This identifier depends of the extractable,
type you want. By default it is the name of the class itself (or %NULL), but for example for a
GESEffect, it will be the pipeline description, for a GESUriClip it
will be the name of the file, etc... You should refer to the documentation of the #GESExtractable
type you want to create a #GESAsset for.
optional %GCancellable object, %NULL to ignore.
a #GAsyncReadyCallback to call when the initialization is finished,
Note that the @source of the callback will be the #GESAsset, but you need to
make sure that the asset is properly loaded using the #ges_asset_request_finish
method. This asset can not be used as is.
The user data to pass when @callback is called
Finalize the request of an async #GESAsset
The #GESAsset previously requested
The #GAsyncResult from which to get the newly created #GESAsset
Extracts a new #GObject from @asset. The type of the object is
defined by the extractable-type of @asset, you can check what
type will be extracted from @asset using
#ges_asset_get_extractable_type
A newly created #GESExtractable
The #GESAsset to get extract an object from
Extracts a new #GObject from @asset. The type of the object is
defined by the extractable-type of @asset, you can check what
type will be extracted from @asset using
#ges_asset_get_extractable_type
A newly created #GESExtractable
The #GESAsset to get extract an object from
The #GError of the asset or %NULL if
the asset was loaded without issue
The asset to retrieve the error from
Gets the type of object that can be extracted from @self
the type of object that can be extracted from @self
The #GESAsset
Gets the ID of a #GESAsset
The ID of @self
The #GESAsset to get ID from
The proxy in use for @asset
The #GESAsset to get currenlty used proxy
The #GESAsset that is proxied by @proxy
The #GESAsset from which to get the the asset it proxies.
The list of proxies @asset has. Note that the default asset to be
used is always the first in that list.
The #GESAsset to get proxies from
A proxying asset is an asset that can substitue the real @asset. For example if you
have a full HD #GESUriClipAsset you might want to set a lower resolution (HD version
of the same file) as proxy. Note that when an asset is proxied, calling
#ges_asset_request will actually return the proxy asset.
%TRUE if @proxy has been set on @asset, %FALSE otherwise.
The #GESAsset to set proxy on
The #GESAsset that should be used as default proxy for @asset or
%NULL if you want to use the currently set proxy. Note that an asset can proxy one and only
one other asset.
Removes @proxy from the list of known proxies for @asset.
If @proxy was the current proxy for @asset, stop using it.
%TRUE if @proxy was a known proxy for @asset, %FALSE otherwise.
The #GESAsset to stop proxying with @proxy
The #GESAsset to stop considering as a proxy for @asset
A newly created #GESExtractable
The #GESAsset to get extract an object from
## Children Properties
You can use the following children properties through the
#ges_track_element_set_child_property and alike set of methods:
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="200px"/>
<colspec colname="properties_flags" colwidth="400px"/>
<tbody>
<row>
<entry role="property_type"><link linkend="gdouble"><type>double</type></link></entry>
<entry role="property_name"><link linkend="GESAudioSource--volume">volume</link></entry>
<entry>volume factor, 1.0=100%.</entry>
</row>
<row>
<entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry>
<entry role="property_name"><link linkend="GESAudioSource--mute">mute</link></entry>
<entry>mute channel.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
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.
Get the current frequency of @self.
The current frequency of @self.
a #GESAudioTestSource
Get the current volume of @self.
The current volume of @self
a #GESAudioTestSource
Lets you set the frequency applied on the track element
a #GESAudioTestSource
The frequency you want to apply on @self
Sets the volume of the test audio signal.
a #GESAudioTestSource
The volume you want to apply on @self
Sane default properties to specify and fixate the output stream are
set as restriction-caps.
It is advised, to modify these properties, to use
#ges_track_update_restriction_caps, setting them directly is
possible through #ges_track_set_restriction_caps, but not specifying
one of them can lead to negotiation issues, only use that function
if you actually know what you're doing :)
The default properties are:
- format: S32LE
- channels: 2
- rate: 44100
- layout: interleaved
Creates a new #GESAudioTrack of type #GES_TRACK_TYPE_AUDIO and with generic
raw audio caps ("audio/x-raw");
A new #GESTrack
Creates a new #GESAudioTransition.
The newly created #GESAudioTransition.
The location of the file/resource to use.
parent class
The effect will be applied on the sources that have lower priorities
(higher number) between the inpoint and the end of it.
A #GESClip is a 'natural' object which controls one or more
#GESTrackElement(s) in one or more #GESTrack(s).
Keeps a reference to the #GESTrackElement(s) it created and
sets/updates their properties.
the #GESTrackElement to be used, or %NULL if it can't provide one
for the given @track.
a #GESClip
a #GESTrackType
%TRUE on success %FALSE on failure.
a #GESClip
a #GESTrackType
Extracts a #GESTrackElement from @asset and adds it to the @clip.
Should only be called in order to add operations to a #GESClip,
ni other cases TrackElement are added automatically when adding the
#GESClip/#GESAsset to a layer.
Takes a reference on @track_element.
Created #GESTrackElement or NULL
if an error happened
a #GESClip
a #GESAsset with #GES_TYPE_TRACK_ELEMENT as extractable_type
Finds the #GESTrackElement controlled by @clip that is used in @track. You
may optionally specify a GType to further narrow search criteria.
Note: If many objects match, then the one with the highest priority will be
returned.
The #GESTrackElement used by @track,
else %NULL. Unref after usage
a #GESClip
a #GESTrack or NULL
a #GType indicating the type of track element you are looking
for or %G_TYPE_NONE if you do not care about the track type.
Finds all the #GESTrackElement controlled by @clip that is used in @track. You
may optionally specify a GType to further narrow search criteria.
a #GList of the
#GESTrackElement contained in @clip.
The refcount of the objects will be increased. The user will have to
unref each #GESTrackElement and free the #GList.
a #GESClip
a #GESTrack or NULL
a #GESTrackType indicating the type of tracks in which elements
should be searched.
a #GType indicating the type of track element you are looking
for or %G_TYPE_NONE if you do not care about the track type.
Get the #GESLayer to which this clip belongs.
The #GESLayer where this @clip is being
used, or %NULL if it is not used on any layer. The caller should unref it
usage.
a #GESClip
Get the formats supported by @clip.
The formats supported by @clip.
the #GESClip
Gets the index position of an effect.
The top index of the effect, -1 if something went wrong.
The origin #GESClip
The #GESBaseEffect we want to get the top index from
Get effects applied on @clip
a #GList of the
#GESBaseEffect that are applied on @clip order by ascendant priorities.
The refcount of the objects will be increased. The user will have to
unref each #GESBaseEffect and free the #GList.
The origin #GESClip
Moves @clip to @layer. If @clip is not in any layer, it adds it to
@layer, else, it removes it from its current layer, and adds it to @layer.
%TRUE if @clip could be moved %FALSE otherwize
a #GESClip
the new #GESLayer
Sets the formats supported by the file.
the #GESClip to set supported formats on
the #GESTrackType defining formats supported by @clip
This is a convenience method that lets you set the index of a top effect.
%TRUE if @effect was successfuly moved, %FALSE otherwise.
The origin #GESClip
The #GESBaseEffect to move
the new index at which to move the @effect inside this
#GESClip
The function modifies @clip, and creates another #GESClip so we have two
clips at the end, splitted at the time specified by @position, as a position
in the timeline (not in the clip to be split). For example, if
ges_clip_split is called on a 4-second clip playing from 0:01.00 until
0:05.00, with a split position of 0:02.00, this will result in one clip of 1
second and one clip of 3 seconds, not in two clips of 2 seconds.
The newly created clip will be added to the same layer as @clip is in. This
implies that @clip must be in a #GESLayer for the operation to be possible.
This method supports clips playing at a different tempo than one second per
second. For example, splitting a clip with a #GESEffect 'pitch tempo=1.5'
four seconds after it starts, will set the inpoint of the new clip to six
seconds after that of the clip to split. For this, the rate-changing
property must be registered using @ges_effect_class_register_rate_property;
for the 'pitch' plugin, this is already done.
The newly created #GESClip resulting
from the splitting or %NULL if the clip can't be split.
the #GESClip to split
a #GstClockTime representing the timeline position at which to split
The GESLayer where this clip is being used. If you want to connect to its
notify signal you should connect to it with g_signal_connect_after as the
signal emission can be stop in the first fase.
The formats supported by the clip.
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.
Gets track types for which objects extracted from @self can create #GESTrackElement
The track types on which @self will create TrackElement when added to
a layer
a #GESClipAsset
Sets track types for which objects extracted from @self can create #GESTrackElement
a #GESClipAsset
The track types supported by the GESClipAsset
The formats supported by the asset.
Subclasses can override the @create_track_element.
method to create a single #GESTrackElement for a given #GESTrack.
method to create multiple #GESTrackElements for a
#GESTrack.
The #GESContainer base class.
Groups the #GESContainer-s provided in @containers. It creates a subclass
of #GESContainer, depending on the containers provided in @containers.
Basically, if all the containers in @containers should be contained in a same
clip (all the #GESTrackElement they contain have the exact same
start/inpoint/duration and are in the same layer), it will create a #GESClip
otherwise a #GESGroup will be created
The #GESContainer (subclass) resulting of the
grouping
The
#GESContainer to group, they must all be in a same #GESTimeline
Edit @container in the different exisiting #GESEditMode modes. In the case of
slide, and roll, you need to specify a #GESEdge
%TRUE if the container as been edited properly, %FALSE if an error
occured
the #GESClip to edit
The layers you want the edit to
happen in, %NULL means that the edition is done in all the
#GESLayers contained in the current timeline.
The priority of the layer @container should land in.
If the layer you're trying to move the container to doesn't exist, it will
be created automatically. -1 means no move.
The #GESEditMode in which the editition will happen.
The #GESEdge the edit should happen on.
The position at which to edit @container (in nanosecond)
Ungroups the #GESTimelineElement contained in this GESContainer,
creating new #GESContainer containing those #GESTimelineElement
apropriately.
The list of
#GESContainer resulting from the ungrouping operation
The user is responsible for unreffing the contained objects
and freeing the list.
The #GESContainer to ungroup
Wether to recursively ungroup @container
Add the #GESTimelineElement to the container.
%TRUE on success, %FALSE on failure.
a #GESContainer
the #GESTimelineElement
Edit @container in the different exisiting #GESEditMode modes. In the case of
slide, and roll, you need to specify a #GESEdge
%TRUE if the container as been edited properly, %FALSE if an error
occured
the #GESClip to edit
The layers you want the edit to
happen in, %NULL means that the edition is done in all the
#GESLayers contained in the current timeline.
The priority of the layer @container should land in.
If the layer you're trying to move the container to doesn't exist, it will
be created automatically. -1 means no move.
The #GESEditMode in which the editition will happen.
The #GESEdge the edit should happen on.
The position at which to edit @container (in nanosecond)
Get the list of #GESTimelineElement contained in @container
The user is responsible for unreffing the contained objects
and freeing the list.
The list of
timeline element contained in @container.
a #GESContainer
Whether to recursively get children in @container
Release the @child from the control of @container.
%TRUE if the @child was properly released, else %FALSE.
a #GESContainer
the #GESTimelineElement to release
Ungroups the #GESTimelineElement contained in this GESContainer,
creating new #GESContainer containing those #GESTimelineElement
apropriately.
The list of
#GESContainer resulting from the ungrouping operation
The user is responsible for unreffing the contained objects
and freeing the list.
The #GESContainer to ungroup
Wether to recursively ungroup @container
The span of priorities which this container occupies.
A list of TimelineElement
controlled by this Container. NOTE: Do not modify.
The span of priorities this container occupies
Will be emitted after a child was added to @container.
Usually you should connect with #g_signal_connect_after
as in the first emission stage, the signal emission might
get stopped internally.
the #GESTimelineElement that was added.
Will be emitted after a child was removed from @container.
the #GESTimelineElement that was removed.
The list of
#GESContainer resulting from the ungrouping operation
The user is responsible for unreffing the contained objects
and freeing the list.
The #GESContainer to ungroup
Wether to recursively ungroup @container
%TRUE if the container as been edited properly, %FALSE if an error
occured
the #GESClip to edit
The layers you want the edit to
happen in, %NULL means that the edition is done in all the
#GESLayers contained in the current timeline.
The priority of the layer @container should land in.
If the layer you're trying to move the container to doesn't exist, it will
be created automatically. -1 means no move.
The #GESEditMode in which the editition will happen.
The #GESEdge the edit should happen on.
The position at which to edit @container (in nanosecond)
A function that will be called to create the #GstElement that will be used
as a source to fill the gaps in @track.
A #GstElement (must be a source) that will be used to
fill the gaps (periods of time in @track that containes no source).
the #GESTrack
Creates the 'primary' track element for this @clip.
Subclasses should implement this method if they only provide a
single #GESTrackElement per track.
If the subclass needs to create more than one #GESTrackElement for a
given track, then it should implement the 'create_track_elements'
method instead.
The implementer of this function shall return the proper #GESTrackElement
that should be controlled by @clip for the given @track.
The returned #GESTrackElement will be automatically added to the list
of objects controlled by the #GESClip.
the #GESTrackElement to be used, or %NULL if it can't provide one
for the given @track.
a #GESClip
a #GESTrackType
Create all track elements this clip handles for this type of track.
Subclasses should implement this method if they potentially need to
return more than one #GESTrackElement(s) for a given #GESTrack.
%TRUE on success %FALSE on failure.
a #GESClip
a #GESTrackType
The edges of an object contain in a #GESTimeline or #GESTrack
Represents the start of an object.
Represents the end of an object.
Represent the fact we are not workin with any edge of an
object.
You can also find more explanation about the behaviour of those modes at:
<ulink url="http://pitivi.org/manual/trimming.html"> trim, ripple and roll</ulink>
and <ulink url="http://pitivi.org/manual/usingclips.html">clip management</ulink>.
The object is edited the normal way (default).
The objects are edited in ripple mode.
The Ripple mode allows you to modify the beginning/end of a clip
and move the neighbours accordingly. This will change the overall
timeline duration. In the case of ripple end, the duration of the
clip being rippled can't be superior to its max_duration - inpoint
otherwise the action won't be executed.
The object is edited in roll mode.
The Roll mode allows you to modify the position of an editing point
between two clips without modifying the inpoint of the first clip
nor the out-point of the second clip. This will not change the
overall timeline duration.
The object is edited in trim mode.
The Trim mode allows you to modify the in-point/duration of a clip
without modifying its position in the timeline.
The object is edited in slide mode.
The Slide mode allows you to modify the position of a clip in a
timeline without modifying its duration or its in-point, but will
modify the duration of the previous clip and in-point of the
following clip so does not modify the overall timeline duration.
(not implemented yet)
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.
a newly created #GESEffect, or %NULL if something went
wrong.
The gst-launch like bin description of the effect
The description of the effect bin with a gst-launch-style
pipeline description.
Example: "videobalance saturation=1.5 hue=+0.5"
parent class
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. For
example, this is true for the properties 'rate' and 'tempo' of the element
'pitch', which is already registered by default. By registering the element,
timeline duration can be correctly converted into media duration, allowing
the right segment seeks to be sent to the sources.
A reference to the GESEffectClass can be obtained as follows:
GES_EFFECT_CLASS (g_type_class_ref (GES_TYPE_EFFECT));
whether the rate property was succesfully registered. When this
method returns false, a warning is emitted with more information.
Instance of the GESEffectClass
Name of the GstElement that changes the rate
Name of the property that changes the rate
The effect will be applied on the sources that have lower priorities
(higher number) between the inpoint and the end of it.
Creates a new #GESEffectClip from the description of the bin.
a newly created #GESEffectClip, or
%NULL if something went wrong.
The gst-launch like bin description of the effect
The gst-launch like bin description of the effect
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"
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"
The ID passed is malformed
An error happened while loading the asset
The formatted files was malformed
FIXME: Long description needed
The #id of the associated #GESAsset, free with #g_free
The #GESExtractable
Method for getting an asset from a #GESExtractable
The #GESAsset or %NULL if none has
been set
The #GESExtractable from which to retrieve a #GESAsset
The #id of the associated #GESAsset, free with #g_free
The #GESExtractable
Method to set the asset which instantiated the specified object
%TRUE if @asset could be set %FALSE otherwize
Target object
The #GESAsset to set
The ID to use for the asset or %NULL if @id is not valid
The #GType to check @id for:
The id to check
The #id of the associated #GESAsset, free with #g_free
The #GESExtractable
A function that will be called when the GNonLin object 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().
TRUE if the implementer succesfully filled the @nleobj, else #FALSE.
the #GESClip controlling the track elements
the #GESTrackElement
the GNonLin object that needs to be filled.
Base class for timeline data serialization and deserialization.
Checks if there is a #GESFormatter available which can load a #GESTimeline
from the given URI.
TRUE if there is a #GESFormatter that can support the given uri
or FALSE if not.
a #gchar * pointing to the URI
Returns TRUE if there is a #GESFormatter available which can save a
#GESTimeline to the given URI.
TRUE if the given @uri is supported, else FALSE.
a #gchar * pointing to a URI
Get the default #GESAsset to use as formatter. It will return
the asset for the #GESFormatter that has the highest @rank
The #GESAsset for the formatter with highest @rank
Load data from the given URI into timeline.
TRUE if the timeline data was successfully loaded from the URI,
else FALSE.
a #GESFormatter
a #GESTimeline
a #gchar * pointing to a URI
Save data from timeline to the given URI.
TRUE if the timeline data was successfully saved to the URI
else FALSE.
a #GESFormatter
a #GESTimeline
a #gchar * pointing to a URI
%TRUE to overwrite file if it exists
Load data from the given URI into timeline.
TRUE if the timeline data was successfully loaded from the URI,
else FALSE.
a #GESFormatter
a #GESTimeline
a #gchar * pointing to a URI
Save data from timeline to the given URI.
TRUE if the timeline data was successfully saved to the URI
else FALSE.
a #GESFormatter
a #GESTimeline
a #gchar * pointing to a URI
%TRUE to overwrite file if it exists
GES Formatter class. Override the vmethods to implement the formatter functionnality.
the parent class structure
Whether the URI can be loaded
class method to deserialize data from a URI
class method to serialize data to a URI
Virtual method for loading a timeline from a given URI.
Every #GESFormatter subclass needs to implement this method.
Use @ges_timeline_load_from_uri
TRUE if the timeline data was successfully loaded from the URI,
else FALSE.
a #GESFormatter
a #GESTimeline
a #gchar * pointing to a URI
Virtual method for saving a timeline to a uri.
Every #GESFormatter subclass needs to implement this method.
Use @ges_timeline_save_to_uri
TRUE if the timeline data was successfully saved to the URI
else FALSE.
a #GESFormatter
a #GESTimeline
a #gchar * pointing to a URI
%TRUE to overwrite file if it exists
A #GESGroup is an object which controls one or more
#GESClips in one or more #GESLayer(s).
To instanciate a group, you should use the ges_container_group method,
this will be responsible for deciding what subclass of #GESContainer
should be instaciated to group the various #GESTimelineElement passed
in parametter.
Created a new empty #GESGroup, if you want to group several container
together, it is recommanded to use the #ges_container_group method so the
proper subclass is selected.
The new empty group.
The duration (in nanoseconds) which will be used in the container
The in-point at which this #GESGroup will start outputting data
from its contents (in nanoseconds).
Ex : an in-point of 5 seconds means that the first outputted buffer will
be the one located 5 seconds in the controlled resource.
The maximum duration (in nanoseconds) of the #GESGroup.
The position of the object in its container (in nanoseconds).
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.
The location of the file/resource to use.
Responsible for the ordering of the various contained Clip(s). A
timeline layer has a "priority" property, which is used to manage the
priorities of individual Clips. Two layers should not have the
same priority within a given timeline.
Creates a new #GESLayer.
A new #GESLayer
Creates Clip from asset, adds it to layer and
returns a reference to it.
Created #GESClip
a #GESLayer
The asset to add to
The start value to set on the new #GESClip,
if @start == GST_CLOCK_TIME_NONE, it will be set to
the current duration of @layer
The inpoint value to set on the new #GESClip
The duration value to set on the new #GESClip
The #GESTrackType to set on the the new #GESClip
Adds the given clip to the layer. Sets the clip's parent, and thus
takes ownership of the clip.
An clip can only be added to one layer.
Calling this method will construct and properly set all the media related
elements on @clip. If you need to know when those objects (actually #GESTrackElement)
are constructed, you should connect to the container::child-added signal which
is emited right after those elements are ready to be used.
%TRUE if the clip was properly added to the layer, or %FALSE
if the @layer refuses to add the clip.
a #GESLayer
the #GESClip to add.
Gets whether transitions are automatically added when objects
overlap or not.
%TRUE if transitions are automatically added, else %FALSE.
a #GESLayer
Get the clips this layer contains.
a #GList of
clips. The user is responsible for
unreffing the contained objects and freeing the list.
a #GESLayer
Gets the clips which appear between @start and @end on @layer.
a #GList of clips intersecting [@start, @end) interval on @layer.
a #GESLayer
start of the interval
end of the interval
Lets you retrieve the duration of the layer, which means
the end time of the last clip inside it
The duration of a layer
The #GESLayer to get the duration from
Get the priority of @layer within the timeline.
The priority of the @layer within the timeline.
a #GESLayer
Get the #GESTimeline in which #GESLayer currently is.
the #GESTimeline in which #GESLayer
currently is or %NULL if not in any timeline yet.
The #GESLayer to get the parent #GESTimeline from
Convenience method to check if @layer is empty (doesn't contain any clip),
or not.
%TRUE if @layer is empty, %FALSE if it already contains at least
one #GESClip
The #GESLayer to check
Removes the given @clip from the @layer and unparents it.
Unparenting it means the reference owned by @layer on the @clip will be
removed. If you wish to use the @clip after this function, make sure you
call gst_object_ref() before removing it from the @layer.
%TRUE if the clip could be removed, %FALSE if the layer does
not want to remove the clip.
a #GESLayer
the #GESClip to remove
Sets the layer to the given @auto_transition. See the documentation of the
property auto_transition for more information.
a #GESLayer
whether the auto_transition is active
Sets the layer to the given @priority. See the documentation of the
priority property for more information.
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.
a #GESLayer
the priority to set
Sets whether transitions are added automagically when clips overlap.
The priority of the layer in the #GESTimeline. 0 is the highest
priority. Conceptually, a #GESTimeline is a stack of GESLayers,
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 commited (with #ges_timeline_commit)
for the change to be taken into account.
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.
the #GESTimeline where this layer is being used.
Will be emitted after the clip was added to the layer.
the #GESClip that was added.
Will be emitted after the clip was removed from the layer.
the #GESClip that was removed
Subclasses can override the @get_objects if they can provide a more
efficient way of providing the list of contained #GESClip(s).
The description of an object, can be used in various context (string)
The description
The extension of the files produced by a formatter (string)
Mimetype used for the file produced by a formatter (string)
The mime type
Name of a formatter it is used as ID of Formater assets (string)
The name of the formatter
The rank of a formatter (GstRank)
The rank of a formatter
The version of a formatter (double)
The formatter version
The version of the format in which a project is serialized
The volume, can be used for audio track or layers
The volume for a track or a layer, it is register as a float
The default volume
The default volume for a track or a layer as a float
Interface that allows reading and writing meta
Deserializes a meta container.
TRUE on success, FALSE if there was an error.
Target container
a string created with ges_meta_container_metas_to_string()
Calls the given function for each metadata inside the meta container. Note
that if there is no metadata, the function won't be called at all.
container to iterate over
function to be called for each metadata
user specified data
Gets the value of a given meta item, returns NULL if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns NULL if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns NULL if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns NULL if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns %FALSE if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns NULL if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns %FALSE if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns NULL if @key
can not be found.
the #GValue corresponding to the meta with the given @key.
Target container
The key name of the meta to retrieve
Gets the value of a given meta item, returns NULL if @meta_item
can not be found.
Target container
Name of the meta item to get
Gets the value of a given meta item, returns NULL if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Gets the value of a given meta item, returns %FALSE if @meta_item
can not be found.
Target container
Name of the meta item to get
Destination to which value of meta item will be copied
Serializes a meta container to a string.
a newly-allocated string, or NULL in case of an error.
The string must be freed with g_free() when no longer needed.
a #GESMetaContainer
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the static meta could be added, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets a static meta on @container. This method lets you define static
metadatas, which means that the type of the registered will be the only
type accepted for this meta on that particular @container.
%TRUE if the meta could be registered, %FALSE otherwise
Target container
The #GESMetaFlag to be used
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
Sets the value of a given meta item
%TRUE if the meta could be added, %FALSE otherwise
Target container
Name of the meta item to set
Value to set
The metadata is readable
The metadata is writable
The metadata is readable and writable
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.
Creates a new #GESMultiFileSource for the provided @uri.
A new #GESMultiFileSource.
the URI the source should control
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
Base class for overlays, transitions, and effects
Operations are any kind of object that both outputs AND consumes data.
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.
parent class
#GESPipeline allows developers to view and render #GESTimeline
in a simple fashion.
Its usage is inspired by the 'playbin' element from gst-plugins-base.
Creates a new conveninence #GESPipeline.
the new #GESPipeline.
the #GESPipelineFlags currently in use.
a #GESPipeline
Returns a #GstSample with the currently playing image in the format specified by
caps. The caller should free the sample with #gst_sample_unref when finished. If ANY
caps are specified, the information will be returned in the whatever format
is currently used by the sink. This information can be retrieve from caps
associated with the buffer.
a #GstSample or %NULL
a #GESPipeline in %GST_STATE_PLAYING or %GST_STATE_PAUSED
caps specifying current format. Use %GST_CAPS_ANY
for native size.
A convenience method for @ges_pipeline_get_thumbnail which
returns a buffer in 24-bit RGB, optionally scaled to the specified width
and height. If -1 is specified for either dimension, it will be left at
native size. You can retreive this information from the caps associated
with the buffer.
The caller is responsible for unreffing the returned sample with
#gst_sample_unref.
a #GstSample or %NULL
a #GESPipeline in %GST_STATE_PLAYING or %GST_STATE_PAUSED
the requested width or -1 for native size
the requested height or -1 for native size
Obtains a pointer to playsink's audio sink element that is used for
displaying audio when the #GESPipeline is in %GES_PIPELINE_MODE_PREVIEW
The caller is responsible for unreffing the returned element with
#gst_object_unref.
a pointer to the playsink audio sink #GstElement
a #GESPipeline
Obtains a pointer to playsink's video sink element that is used for
displaying video when the #GESPipeline is in %GES_PIPELINE_MODE_PREVIEW
The caller is responsible for unreffing the returned element with
#gst_object_unref.
a pointer to the playsink video sink #GstElement
a #GESPipeline
Sets playsink's audio sink element that is used for displaying audio when
the #GESPipeline is in %GES_PIPELINE_MODE_PREVIEW
a #GESPipeline in %GST_STATE_NULL
a audio sink #GstElement
Sets playsink's video sink element that is used for displaying video when
the #GESPipeline is in %GES_PIPELINE_MODE_PREVIEW
a #GESPipeline in %GST_STATE_NULL
a video sink #GstElement
Saves the current frame to the specified @location.
%TRUE if the thumbnail was properly save, else %FALSE.
a #GESPipeline in %GST_STATE_PLAYING or %GST_STATE_PAUSED
the requested width or -1 for native size
the requested height or -1 for native size
a string specifying the desired mime type (for example,
image/jpeg)
the path to save the thumbnail
switches the @pipeline to the specified @mode. The default mode when
creating a #GESPipeline is #GES_PIPELINE_MODE_PREVIEW.
Note: The @pipeline will be set to #GST_STATE_NULL during this call due to
the internal changes that happen. The caller will therefore have to
set the @pipeline to the requested state after calling this method.
%TRUE if the mode was properly set, else %FALSE.
a #GESPipeline
the #GESPipelineFlags to use
Specify where the pipeline shall be rendered and with what settings.
A copy of @profile and @output_uri will be done internally, the caller can
safely free those values afterwards.
This method must be called before setting the pipeline mode to
#GES_PIPELINE_MODE_RENDER
%TRUE if the settings were aknowledged properly, else %FALSE
a #GESPipeline
the URI to which the timeline will be rendered
the #GstEncodingProfile to use to render the timeline.
Sets the timeline to use in this pipeline.
The reference to the @timeline will be stolen by the @pipeline.
%TRUE if the @timeline could be successfully set on the @pipeline,
else %FALSE.
a #GESPipeline
the #GESTimeline to set on the @pipeline.
Audio sink for the preview.
Pipeline mode. See ges_pipeline_set_mode() for more
info.
Timeline to use in this pipeline. See also
ges_pipeline_set_timeline() for more info.
Video sink for the preview.
parent class
The various modes the #GESPipeline can be configured to.
output audio to the soundcard
output video to the screen
output audio/video to soundcard/screen (default)
render timeline (forces decoding)
render timeline (tries to avoid decoding/reencoding)
This is a legacy format and you should avoid to use it. The formatter
is really not in good shape and is deprecated.
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.
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.
A newly created #GESProject
The uri to be set after creating the project.
Adds a #Asset to @project, the project will keep a reference on
@asset.
%TRUE if the asset could be added %FALSE it was already
in the project
A #GESProject
A #GESAsset to add to @project
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.
%TRUE if @profile could be added, %FALSE otherwize
A #GESProject
A #GstEncodingProfile to add to the project. If a profile with
the same name already exists, it will be replaced
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
%TRUE if the asset started to be added %FALSE it was already
in the project
A #GESProject
The id of the asset to create and add to @project
The #GType of the asset to create
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
The newly created #GESAsset or %NULL.
A #GESProject
The id of the asset to create and add to @project
The #GType of the asset to create
The #GESAsset with
@id or %NULL if no asset with @id as an ID
A #GESProject
The id of the asset to retrieve
The extractable_type of the asset
to retrieve from @object
Get the assets that are being loaded
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
A #GESProject
Retrieve the uri that is currently set on @project
a newly allocated string representing uri.
A #GESProject
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.
The list of
#GESAsset the object contains
A #GESProject
Type of assets to list, #GES_TYPE_EXTRACTABLE will list
all assets
Lists the encoding profile that have been set to @project. The first one
is the latest added.
The
list of #GstEncodingProfile used in @project
A #GESProject
Loads @project into @timeline
%TRUE if the project could be loaded %FALSE otherwize.
A #GESProject that has an @uri set already
A blank timeline to load @project into
remove a @asset to from @project.
%TRUE if the asset could be removed %FALSE otherwise
A #GESProject
A #GESAsset to remove from @project
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);)
%TRUE if the project could be save, %FALSE otherwize
A #GESProject to save
The #GESTimeline to save, it must have been extracted from @project
The uri where to save @project and @timeline
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 formatter with highest rank
%TRUE to overwrite file if it exists
The #GESAsset that has been added to @project
The #GESAsset that started loading
The #GESAsset that has been removed from @project
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
The #GError defining the error that occured, might be %NULL
The @id of the asset that failed loading
The @extractable_type of the asset that
failed loading
The #GESTimeline that complete loading
|[
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));
}
]|
The new URI of @wrong_asset
The error that happened
The asset with the wrong ID, you should us it and its content
only to find out what the new location is.
Base class for single-media sources
Base class for sources of a #GESLayer
Layer priority when the element is not in a layer
Useful for testing purposes.
You can use the ges_asset_request_simple API to create an Asset
capable of extracting GESTestClip-s
Creates a new #GESTestClip.
The newly created #GESTestClip,
or %NULL if there was an error.
Creates a new #GESTestClip for the provided @nick.
The newly created #GESTestClip,
or %NULL if there was an error.
the nickname for which to create the #GESTestClip
Get the frequency @self generates.
The frequency @self generates. See audiotestsrc element.
a #GESTestClip
Get the volume of the test audio signal applied on @self.
The volume of the test audio signal applied on @self.
a #GESTestClip
Get the #GESVideoTestPattern which is applied on @self.
The #GESVideoTestPattern which is applied on @self.
a #GESTestClip
Let you know if the audio track of @self is muted or not.
Whether the audio track of @self is muted or not.
a #GESTestClip
Sets the frequency to generate. See audiotestsrc element.
the #GESTestClip to set the frequency on
the frequency you want to use on @self
Sets whether the audio track of this clip is muted or not.
the #GESTestClip on which to mute or unmute the audio track
%TRUE to mute the audio track, %FALSE to unmute it
Sets the volume of the test audio signal.
the #GESTestClip to set the volume on
the volume of the audio signal you want to use on @self
Sets which video pattern to display on @self.
the #GESTestClip to set the pattern on
the #GESVideoTestPattern to use on @self
The frequency to generate for audio track elements.
Whether the sound will be played or not.
The volume for the audio track elements.
Video pattern to display in video track elements.
Horizontal alignment of the text.
align text left
align text center
align text right
align text on xpos position
Creates a new #GESTextOverlay.
The newly created #GESTextOverlay or
%NULL if something went wrong.
Get the color used by @source.
The color used by @source.
a GESTextOverlay
Get the pango font description currently set on @source.
The pango font description currently set on @source.
a GESTextOverlay
Get the horizontal aligment used by @source.
The horizontal aligment used by @source.
a GESTextOverlay
Get the text currently set on @source.
The text currently set on @source.
a GESTextOverlay
Get the vertical aligment used by @source.
The vertical aligment used by @source.
a GESTextOverlay
Get the horizontal position used by @source.
The horizontal position used by @source.
a GESTextOverlay
Get the vertical position used by @source.
The vertical position used by @source.
a GESTextOverlay
Sets the color of the text.
the #GESTextOverlay* to set
The color @self is being set to
Sets the pango font description of the text this track element
will render.
the #GESTextOverlay
the pango font description
Sets the horizontal aligment of the text.
the #GESTextOverlay* to set text on
The #GESTextHAlign defining the horizontal alignment
of the text render by @self.
Sets the text this track element will render.
the #GESTextOverlay* to set text on
the text to render. an internal copy of this text will be
made.
Sets the vertical aligment of the text.
the #GESTextOverlay* to set text on
The #GESTextVAlign defining the vertical alignment
of the text render by @self.
Sets the horizontal position of the text.
the #GESTextOverlay* to set
The horizontal position @self is being set to
Sets the vertical position of the text.
the #GESTextOverlay* to set
The vertical position @self is being set to
Renders text onto the next lower priority stream using textrender.
Creates a new #GESTextOverlayClip
The newly created
#GESTextOverlayClip, or %NULL if there was an error.
Get the color used by @source.
The color used by @source.
a #GESTextOverlayClip
Get the pango font description used by @self.
The pango font description used by @self.
a #GESTextOverlayClip
Get the horizontal aligment used by @self.
The horizontal aligment used by @self.
a #GESTextOverlayClip
Get the text currently set on @self.
The text currently set on @self.
a #GESTextOverlayClip
Get the vertical aligment used by @self.
The vertical aligment used by @self.
a #GESTextOverlayClip
Get the horizontal position used by @source.
The horizontal position used by @source.
a #GESTextOverlayClip
Get the vertical position used by @source.
The vertical position used by @source.
a #GESTextOverlayClip
Sets the color of the text.
the #GESTextOverlayClip* to set
The color @self is being set to
Sets the pango font description of the text
the #GESTextOverlayClip*
the pango font description
Sets the horizontal aligment of the text.
the #GESTextOverlayClip* to set horizontal alignement of text on
#GESTextHAlign
Sets the text this clip will render.
the #GESTextOverlayClip* to set text on
the text to render. an internal copy of this text will be
made.
Sets the vertical aligment of the text.
the #GESTextOverlayClip* to set vertical alignement of text on
#GESTextVAlign
Sets the horizontal position of the text.
the #GESTextOverlayClip* to set
The horizontal position @self is being set to
Sets the vertical position of the text.
the #GESTextOverlayClip* to set
The vertical position @self is being set to
The color of the text
Pango font description string
Horizontal alignment of the text
The text to diplay
Vertical alignent of the text
The horizontal position of the text
The vertical position of the text
Vertical alignment of the text.
draw text on the baseline
draw text on the bottom
draw text on top
draw text on ypos position
draw text on the center
#GESTimeline is the central object for any multimedia timeline.
Contains a list of #GESLayer which users should use to arrange the
various clips through time.
The output type is determined by the #GESTrack that are set on
the #GESTimeline.
To save/load a timeline, you can use the ges_timeline_load_from_uri() and
ges_timeline_save_to_uri() methods to use the default format. If you wish
Note that any change you make in the timeline will not actually be taken
into account until you call the #ges_timeline_commit method.
Creates a new empty #GESTimeline.
The new timeline.
Creates a new #GESTimeline containing a raw audio and a
raw video track.
The newly created #GESTimeline.
Creates a timeline from the given URI.
A new timeline if the uri was loaded
successfully, or %NULL if the uri could not be loaded.
the URI to load from
Add the layer to the timeline. The reference to the @layer will be stolen
by the @timeline.
%TRUE if the layer was properly added, else %FALSE.
a #GESTimeline
the #GESLayer to add
Add a track to the timeline. The reference to the track will be stolen by the
pipeline.
%TRUE if the track was properly added, else %FALSE.
a #GESTimeline
the #GESTrack to add
Append a newly created #GESLayer to @timeline
Note that you do not own any reference to the returned layer.
The newly created #GESLayer, or the last (empty)
#GESLayer of @timeline.
a #GESTimeline
Commit all the pending changes of the clips contained in the
@timeline.
When changes happen in a timeline, they are not
directly executed in the non-linear engine. Call this method once you are
done with a set of changes and want it to be executed.
The #GESTimeline::commited signal will be emitted when the (possibly updated)
#GstPipeline is ready to output data again, except if the state of the
timeline was #GST_STATE_READY or #GST_STATE_NULL.
Note that all the pending changes will automatically be executed when the
timeline goes from #GST_STATE_READY to #GST_STATE_PAUSED, which usually is
triggered by corresponding state changes in a containing #GESPipeline.
You should not try to change the state of the timeline, seek it or add
tracks to it during a commit operation, that is between a call to this
function and after receiving the #GESTimeline::commited signal.
See #ges_timeline_commit_sync if you don't want to bother with waiting
for the signal.
%TRUE if pending changes were commited or %FALSE if nothing needed
to be commited
a #GESTimeline
Commit all the pending changes of the #GESClips contained in the
@timeline.
Will return once the update is complete, that is when the
(possibly updated) #GstPipeline is ready to output data again, or if the
state of the timeline was #GST_STATE_READY or #GST_STATE_NULL.
This function will wait for any pending state change of the timeline by
calling #gst_element_get_state with a #GST_CLOCK_TIME_NONE timeout, you
should not try to change the state from another thread before this function
has returned.
See #ges_timeline_commit for more information.
%TRUE if pending changes were commited or %FALSE if nothing needed
to be commited
a #GESTimeline
Gets whether transitions are automatically added when objects
overlap or not.
%TRUE if transitions are automatically added, else %FALSE.
a #GESTimeline
Get the current duration of @timeline
The current duration of @timeline
a #GESTimeline
Gets a #GESTimelineElement contained in the timeline
The #GESTimelineElement or %NULL if
not found.
a #GESTimeline
Get the list of #GESGroup present in the Timeline.
the list of
#GESGroup that contain clips present in the timeline's layers.
Must not be changed.
a #GESTimeline
Retrieve the layer with @priority as a priority
A #GESLayer or %NULL if no layer with
@priority was found
Since 1.6
The #GESTimeline to retrive a layer from
The priority of the layer to find
Get the list of #GESLayer present in the Timeline.
the list of
#GESLayer present in the Timeline sorted by priority.
The caller should unref each Layer once he is done with them.
a #GESTimeline
Search the #GstPad corresponding to the given @timeline's @track.
The corresponding #GstPad if it is
found, or %NULL if there is an error.
The #GESTimeline
The #GESTrack
Gets the configured snapping distance of the timeline. See
the documentation of the property snapping_distance for more
information.
The @snapping_distance property of the timeline
a #GESTimeline
Search the #GESTrack corresponding to the given @timeline's @pad.
The corresponding #GESTrack if it is
found, or %NULL if there is an error.
The #GESTimeline
The #GstPad
Returns the list of #GESTrack used by the Timeline.
A list of #GESTrack.
The caller should unref each track once he is done with them.
a #GESTimeline
Check whether a #GESTimeline is empty or not
%TRUE if the timeline is empty %FALSE otherwize
a #GESTimeline
Loads the contents of URI into the given timeline.
%TRUE if the timeline was loaded successfully, or %FALSE if the uri
could not be loaded.
an empty #GESTimeline into which to load the formatter
The URI to load from
Moves @layer at @new_layer_priority meaning that @layer
we land at that position in the stack of layers inside
the timeline. If @new_layer_priority is superior than the number
of layers present in the time, it will move to the end of the
stack of layers.
The timeline in which @layer must be
The layer to move at @new_layer_priority
The index at which @layer should land
Paste @element inside the timeline. @element must have been
created using ges_timeline_element_copy with deep=TRUE set,
i.e. it must be a deep copy, otherwise it will fail.
Shallow copy of the @element pasted
The #GESTimeline onto which the #GESTimelineElement should be pasted
The #GESTimelineElement to paste
The position in the timeline the element should
be pasted to, meaning it will become the start of @element
The #GESLayer to which the element should be pasted to.
-1 means paste to the same layer from which the @element has been copied from.
Removes the layer from the timeline. The reference that the @timeline holds on
the layer will be dropped. If you wish to use the @layer after calling this
method, you need to take a reference before calling.
%TRUE if the layer was properly removed, else %FALSE.
a #GESTimeline
the #GESLayer to remove
Remove the @track from the @timeline. The reference stolen when adding the
@track will be removed. If you wish to use the @track after calling this
function you must ensure that you have a reference to it.
%TRUE if the @track was properly removed, else %FALSE.
a #GESTimeline
the #GESTrack to remove
Saves the timeline to the given location
%TRUE if the timeline was successfully saved to the given location,
else %FALSE.
a #GESTimeline
The location to save to
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 formatter with highest rank
%TRUE to overwrite file if it exists
Sets the layer to the given @auto_transition. See the documentation of the
property auto_transition for more information.
a #GESLayer
whether the auto_transition is active
Sets the @snapping_distance of the timeline. See the documentation of the
property snapping_distance for more information.
a #GESLayer
whether the snapping_distance is active
Sets whether transitions are added automagically when clips overlap.
Current duration (in nanoseconds) of the #GESTimeline
Distance (in nanoseconds) from which a moving object will snap
with it neighboors. 0 means no snapping.
A list of #GESLayer sorted by priority NOTE: Do not modify.
A list of #GESTrack sorted by priority NOTE: Do not modify.
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
don't need to do anything in the meantime.
Will be emitted after a new group is added to to the timeline.
the #GESGroup
Will be emitted after a group has been removed from the timeline.
the #GESGroup
a list of #GESContainer
Will be emitted after a new layer is added to the timeline.
the #GESLayer that was added to the timeline
Will be emitted after the layer was removed from the timeline.
the #GESLayer that was removed from the timeline
a #GPtrArray of #GESTrack-s where that object should be added
The #GESClip on which @track_element will land
The #GESTrackElement for which to choose the tracks it should land into
Will be emitted when the 2 #GESTrackElement ended to snap
the first #GESTrackElement that was snapping.
the second #GESTrackElement that was snapping.
the position where the two objects finally snapping.
Will be emitted when the 2 #GESTrackElement first snapped
the first #GESTrackElement that was snapping.
the second #GESTrackElement that was snapping.
the position where the two objects finally snapping.
Will be emitted after the track was added to the timeline.
the #GESTrack that was added to the timeline
Will be emitted after the track was removed from the timeline.
the #GESTrack that was removed from the timeline
parent class
The GESTimelineElement base class implements the notion of timing as well
as priority. A GESTimelineElement can have a parent object which will be
responsible for controlling its timing properties.
The priority of the first layer the element is in (note that only
groups can span over several layers). %GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY
means that the element is not in a layer.
A #GESTimelineElement
Gets all the TrackTypes @self will interact with
A #GESTimelineElement
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.
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.
object to lookup the property in
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.
pointer to a #GstElement that
takes the real object to set property on
pointer to take the #GParamSpec
describing the property
Edits @self in ripple mode. It allows you to modify the
start of @self and move the following neighbours accordingly.
This will change the overall timeline duration.
%TRUE if the self as been rippled properly, %FALSE if an error
occured
The #GESTimelineElement to ripple.
The new start of @self in ripple mode.
Edits @self in ripple mode. It allows you to modify the
duration of a @self and move the following neighbours accordingly.
This will change the overall timeline duration.
%TRUE if the self as been rippled properly, %FALSE if an error
occured
The #GESTimelineElement to ripple.
The new end (start + duration) of @self in ripple mode. It will
basically only change the duration of @self.
Edits @self in roll mode. It allows you to modify the
duration of a @self and trim (basicly change the start + inpoint
in this case) the following neighbours accordingly.
This will not change the overall timeline duration.
%TRUE if the self as been rolled properly, %FALSE if an error
occured
The #GESTimelineElement to roll.
The new end (start + duration) of @self in roll mode
Edits @self in roll mode. It allows you to modify the
start and inpoint of a @self and "resize" (basicly change the duration
in this case) of the previous neighbours accordingly.
This will not change the overall timeline duration.
%TRUE if the self as been roll properly, %FALSE if an error
occured
The #GESTimelineElement to roll
The new start of @self in roll mode, it will also adapat
the in-point of @self according
Set the duration of the object
Note that if the timeline snap-distance property of the timeline containing
@self is set, @self will properly snap to its neighboors.
%TRUE if @duration could be set.
a #GESTimelineElement
the duration in #GstClockTime
Set the in-point, that is the moment at which the @self will start
outputting data from its contents.
%TRUE if @inpoint could be set.
a #GESTimelineElement
the in-point in #GstClockTime
Set the maximun duration of the object
%TRUE if @maxduration could be set.
a #GESTimelineElement
the maximum duration in #GstClockTime
Sets the parent of @self to @parent. The parents needs to already
own a hard reference on @self.
%TRUE if @parent could be set or %FALSE when @self
already had a parent or @self and @parent are the same.
a #GESTimelineElement
new parent of self
Sets the priority of the object within the containing layer
All priority management is done by GES itself now.
To set #GESEffect priorities #ges_clip_set_top_effect_index should
be used.
%TRUE if @priority could be set.
a #GESTimelineElement
the priority
Set the position of the object in its containing layer.
Note that if the snapping-distance property of the timeline containing
@self is set, @self will properly snap to the edges around @start.
%TRUE if @start could be set.
a #GESTimelineElement
the position in #GstClockTime
Edits @self in trim mode. It allows you to modify the
inpoint and start of @self.
This will not change the overall timeline duration.
Note that to trim the end of an self you can just set its duration. The same way
as this method, it will take into account the snapping-distance property of the
timeline in which @self is.
%TRUE if the self as been trimmed properly, %FALSE if an error
occured
The #GESTimelineElement to trim.
The new start of @self in trim mode, will adapt the inpoint
of @self accordingly
Copies @self
The newly create #GESTimelineElement, copied from @self
The #GESTimelineElement to copy
whether we want to create the elements @self contains or not
Gets properties of a child of @self.
The origin #GESTimelineElement
The name of the first property to get
return location for the first property, followed optionally by more
name/return location pairs, followed by NULL
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_timeline_element_get_child_property is really
intended for language bindings, #ges_timeline_element_get_child_properties
is much more convenient for C programming.
%TRUE if the property was found, %FALSE otherwize
The origin #GESTimelineElement
The name of the property
return location for the property value, it will
be initialized if it is initialized with 0
Gets a property of a child of @self.
a #GESTrackElement
The #GParamSpec that specifies the property you want to get
return location for the value
Gets a property of a child of @self. 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.
The #GESTimelineElement parent object
The name of the first property to get
value for the first property, followed optionally by more
name/return location pairs, followed by NULL
The @duration of @self
a #GESTimelineElement
The @inpoint of @self
a #GESTimelineElement
The priority of the first layer the element is in (note that only
groups can span over several layers). %GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY
means that the element is not in a layer.
A #GESTimelineElement
The @maxduration of @self
a #GESTimelineElement
Returns a copy of the name of @self.
Caller should g_free() the return value after usage.
The name of @self
a #GESTimelineElement
Returns the parent of @self. This function increases the refcount
of the parent object so you should gst_object_unref() it after usage.
parent of @self, this can be %NULL if
@self has no parent. unref after usage.
a #GESTimelineElement
The @priority of @self
a #GESTimelineElement
The @start of @self
a #GESTimelineElement
Returns the timeline of @self. This function increases the refcount
of the timeline so you should gst_object_unref() it after usage.
timeline of @self, this can be %NULL if
@self has no timeline. unref after usage.
a #GESTimelineElement
Gets the toplevel #GESTimelineElement controlling @self
The toplevel controlling parent of @self
The #GESTimelineElement to get the toplevel parent from
Gets all the TrackTypes @self will interact with
A #GESTimelineElement
Gets an array of #GParamSpec* for all configurable properties of the
children of @self.
an array of #GParamSpec* which should be freed after use or
%NULL if something went wrong
The #GESTimelineElement to get the list of children properties from
return location for the length of the returned array
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.
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.
object to lookup the property in
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.
pointer to a #GstElement that
takes the real object to set property on
pointer to take the #GParamSpec
describing the property
Paste @self inside the timeline. @self must have been created
using ges_timeline_element_copy with recurse=TRUE set,
otherwise it will fail.
New element resulting of pasting @self
or %NULL
The #GESTimelineElement to paste
The position in the timeline the element should
be copied to, meaning it will become the start of @self
Edits @self in ripple mode. It allows you to modify the
start of @self and move the following neighbours accordingly.
This will change the overall timeline duration.
%TRUE if the self as been rippled properly, %FALSE if an error
occured
The #GESTimelineElement to ripple.
The new start of @self in ripple mode.
Edits @self in ripple mode. It allows you to modify the
duration of a @self and move the following neighbours accordingly.
This will change the overall timeline duration.
%TRUE if the self as been rippled properly, %FALSE if an error
occured
The #GESTimelineElement to ripple.
The new end (start + duration) of @self in ripple mode. It will
basically only change the duration of @self.
Edits @self in roll mode. It allows you to modify the
duration of a @self and trim (basicly change the start + inpoint
in this case) the following neighbours accordingly.
This will not change the overall timeline duration.
%TRUE if the self as been rolled properly, %FALSE if an error
occured
The #GESTimelineElement to roll.
The new end (start + duration) of @self in roll mode
Edits @self in roll mode. It allows you to modify the
start and inpoint of a @self and "resize" (basicly change the duration
in this case) of the previous neighbours accordingly.
This will not change the overall timeline duration.
%TRUE if the self as been roll properly, %FALSE if an error
occured
The #GESTimelineElement to roll
The new start of @self in roll mode, it will also adapat
the in-point of @self according
Sets a property of a child of @self. 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.
The #GESTimelineElement parent object
The name of the first property to set
value for the first property, followed optionally by more
name/return location pairs, followed by NULL
Sets a property of a child of @self
Note that #ges_timeline_element_set_child_property is really
intended for language bindings, #ges_timeline_element_set_child_properties
is much more convenient for C programming.
%TRUE if the property was set, %FALSE otherwize
The origin #GESTimelineElement
The name of the property
the value
Sets a property of a child of @self.
a #GESTimelineElement
The #GParamSpec that specifies the property you want to set
the value
Sets a property of a child of @self. 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.
The #GESTimelineElement parent object
The name of the first property to set
value for the first property, followed optionally by more
name/return location pairs, followed by NULL
Set the duration of the object
Note that if the timeline snap-distance property of the timeline containing
@self is set, @self will properly snap to its neighboors.
%TRUE if @duration could be set.
a #GESTimelineElement
the duration in #GstClockTime
Set the in-point, that is the moment at which the @self will start
outputting data from its contents.
%TRUE if @inpoint could be set.
a #GESTimelineElement
the in-point in #GstClockTime
Set the maximun duration of the object
%TRUE if @maxduration could be set.
a #GESTimelineElement
the maximum duration in #GstClockTime
Sets the name of object, or gives @self a guaranteed unique name (if name is NULL).
This function makes a copy of the provided name, so the caller retains ownership
of the name it sent.
a #GESTimelineElement
The name @self should take (if avalaible<)
Sets the parent of @self to @parent. The parents needs to already
own a hard reference on @self.
%TRUE if @parent could be set or %FALSE when @self
already had a parent or @self and @parent are the same.
a #GESTimelineElement
new parent of self
Sets the priority of the object within the containing layer
All priority management is done by GES itself now.
To set #GESEffect priorities #ges_clip_set_top_effect_index should
be used.
%TRUE if @priority could be set.
a #GESTimelineElement
the priority
Set the position of the object in its containing layer.
Note that if the snapping-distance property of the timeline containing
@self is set, @self will properly snap to the edges around @start.
%TRUE if @start could be set.
a #GESTimelineElement
the position in #GstClockTime
Sets the timeline of @self to @timeline.
%TRUE if @timeline could be set or %FALSE when @timeline
already had a timeline.
a #GESTimelineElement
The #GESTimeline @self is in
Edits @self in trim mode. It allows you to modify the
inpoint and start of @self.
This will not change the overall timeline duration.
Note that to trim the end of an self you can just set its duration. The same way
as this method, it will take into account the snapping-distance property of the
timeline in which @self is.
%TRUE if the self as been trimmed properly, %FALSE if an error
occured
The #GESTimelineElement to trim.
The new start of @self in trim mode, will adapt the inpoint
of @self accordingly
The duration (in nanoseconds) which will be used in the container
The in-point at which this #GESTimelineElement will start outputting data
from its contents (in nanoseconds).
Ex : an in-point of 5 seconds means that the first outputted buffer will
be the one located 5 seconds in the controlled resource.
The maximum duration (in nanoseconds) of the #GESTimelineElement.
The name of the object
The parent container of the object
The priority of the object.
Setting GESTimelineElement priorities is deprecated
as all priority management is done by GES itself now.
Whether the element should be serialized.
The position of the object in its container (in nanoseconds).
The timeline in which @element is
The #GESTimelineElement that controls the object
The #GESAsset from which the object has been extracted
position (in time) of the object
Position in the media from which the object should be used
duration of the object to be used
The maximum duration the object can have
priority of the object in the layer (0:top priority)
The deep notify signal is used to be notified of property changes of all
the childs of @timeline_element
the object that originated the signal
the property that changed
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 emit the notify signal.
%TRUE if @parent could be set or %FALSE when @self
already had a parent or @self and @parent are the same.
a #GESTimelineElement
new parent of self
%TRUE if @start could be set.
a #GESTimelineElement
the position in #GstClockTime
%TRUE if @inpoint could be set.
a #GESTimelineElement
the in-point in #GstClockTime
%TRUE if @duration could be set.
a #GESTimelineElement
the duration in #GstClockTime
%TRUE if @maxduration could be set.
a #GESTimelineElement
the maximum duration in #GstClockTime
%TRUE if @priority could be set.
a #GESTimelineElement
the priority
%TRUE if the self as been rippled properly, %FALSE if an error
occured
The #GESTimelineElement to ripple.
The new start of @self in ripple mode.
%TRUE if the self as been rippled properly, %FALSE if an error
occured
The #GESTimelineElement to ripple.
The new end (start + duration) of @self in ripple mode. It will
basically only change the duration of @self.
%TRUE if the self as been roll properly, %FALSE if an error
occured
The #GESTimelineElement to roll
The new start of @self in roll mode, it will also adapat
the in-point of @self according
%TRUE if the self as been rolled properly, %FALSE if an error
occured
The #GESTimelineElement to roll.
The new end (start + duration) of @self in roll mode
%TRUE if the self as been trimmed properly, %FALSE if an error
occured
The #GESTimelineElement to trim.
The new start of @self in trim mode, will adapt the inpoint
of @self accordingly
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.
object to lookup the property in
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.
pointer to a #GstElement that
takes the real object to set property on
pointer to take the #GParamSpec
describing the property
A #GESTimelineElement
The priority of the first layer the element is in (note that only
groups can span over several layers). %GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY
means that the element is not in a layer.
A #GESTimelineElement
Renders the given text in the specified font, at specified position, and
with the specified background pattern.
Creates a new #GESTitleClip
The newly created #GESTitleClip,
or %NULL if there was an error.
Get the background used by @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The color used by @self.
a #GESTitleClip
Get the pango font description used by @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The pango font description used by @self.
a #GESTitleClip
Get the horizontal aligment used by @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The horizontal aligment used by @self.
a #GESTitleClip
Get the text currently set on @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The text currently set on @self.
a #GESTitleClip
Get the color used by @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The color used by @self.
a #GESTitleClip
Get the vertical aligment used by @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The vertical aligment used by @self.
a #GESTitleClip
Get the horizontal position used by @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The horizontal position used by @self.
a #GESTitleClip
Get the vertical position used by @self.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The vertical position used by @self.
a #GESTitleClip
Sets the background of the text.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip* to set
The color @self is being set to
Sets the color of the text.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip* to set
The color @self is being set to
Sets the pango font description of the text.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip*
the pango font description
Sets the horizontal aligment of the text.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip* to set horizontal alignement of text on
#GESTextHAlign
Sets the text this clip will render.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip* to set text on
the text to render. an internal copy of this text will be
made.
Sets the vertical aligment of the text.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip* to set vertical alignement of text on
#GESTextVAlign
Sets the horizontal position of the text.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip* to set
The horizontal position @self is being set to
Sets the vertical position of the text.
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
the #GESTitleClip* to set
The vertical position @self is being set to
The background of the text
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The color of the text
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
Pango font description string
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
Horizontal alignment of the text
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The text to diplay
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
Vertical alignent of the text
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The horizontal position of the text
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
The vertical position of the text
use ges_track_element_get/set_children_properties on the
underlying GESTrackElement instead
#GESTitleSource is a GESTimelineElement that implements the notion
of titles in GES.
## Children Properties
You can use the following children properties through the
#ges_track_element_set_child_property and alike set of methods:
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="200px"/>
<colspec colname="properties_flags" colwidth="400px"/>
<tbody>
<row>
<entry role="property_type"><link linkend="guint"><type>guint</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--background">background</link></entry>
<entry>The color of the background</entry>
</row>
<row>
<entry role="property_type"><link linkend="guint"><type>guint</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--color">color</link></entry>
<entry>The color of the text</entry>
</row>
<row>
<entry role="property_type"><link linkend="gchar"><type>gchar</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--font-desc">font-desc</link></entry>
<entry>Pango font description string</entry>
</row>
<row>
<entry role="property_type"><link linkend="GESTextHAlign"><type>GESTextHAlign</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--halignment">halignment</link></entry>
<entry>Horizontal alignment of the text</entry>
</row>
<row>
<entry role="property_type"><link linkend="gchar"><type>gchar</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--text">text</link></entry>
<entry>The text to be rendered</entry>
</row>
<row>
<entry role="property_type"><link linkend="GESTextVAlign"><type>GESTextVAlign</type></link>
</entry><entry role="property_name"><link linkend="GESTileSource--valignment">valignment</link>
</entry><entry>Vertical alignent of the text</entry>
</row>
<row>
<entry role="property_type"><link linkend="gdouble"><type>gdouble</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--xpos">xpos</link></entry>
<entry>The horizontal position of the text</entry>
</row>
<row><entry role="property_type"><link linkend="gdouble"><type>gdouble</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--ypos">ypos</link></entry>
<entry>The vertical position of the text</entry>
</row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--shaded-background">shaded-background</link></entry>
<entry>Whether to shade the background under the text area</entry>
</row>
<row><entry role="property_type"><link linkend="guint"><type>guint</type></link></entry>
<entry role="property_name"><link linkend="GESTileSource--outline-color">outline-color</link></entry>
<entry>Color to use for outline the text (big-endian ARGB).</entry>
</row>
</tbody>
</tgroup>
</informaltable>
Get the background used by @source.
The background used by @source.
a #GESTitleSource
Get the pango font description used by @source.
Use ges_timeline_element_get_child_property instead
(this actually returns a newly allocated string)
The pango font description used by this
@source.
a #GESTitleSource
Get the horizontal aligment used by @source.
The horizontal aligment used by @source.
a #GESTitleSource
Get the text currently set on the @source.
Use ges_timeline_element_get_child_property instead
(this actually returns a newly allocated string)
The text currently set on the @source.
a #GESTitleSource
Get the color used by @source.
The color used by @source.
a #GESTitleSource
Get the vertical aligment used by @source.
The vertical aligment used by @source.
a #GESTitleSource
Get the horizontal position used by @source.
The horizontal position used by @source.
a #GESTitleSource
Get the vertical position used by @source.
The vertical position used by @source.
a #GESTitleSource
Sets the color of the background
the #GESTitleSource* to set
the color @self is being set to
Set the pango font description this source will use to render
the text.
the #GESTitleSource
the pango font description
Sets the vertical aligment of the text.
the #GESTitleSource* to set text on
#GESTextHAlign
Sets the text this track element will render.
use ges_track_element_get/set_children_properties on the
GESTrackElement instead
the #GESTitleSource* to set text on
the text to render. an internal copy of this text will be
made.
Sets the color of the text.
the #GESTitleSource* to set
the color @self is being set to
Sets the vertical aligment of the text.
the #GESTitleSource* to set text on
#GESTextVAlign
Sets the horizontal position of the text.
the #GESTitleSource* to set
the horizontal position @self is being set to
Sets the vertical position of the text.
the #GESTitleSource* to set
the color @self is being set to
parent class
Corresponds to one output format (i.e. audio OR video).
Contains the compatible TrackElement(s).
Creates a new #GESTrack with the given @type and @caps.
The newly created track will steal a reference to the caps. If you wish to
use those caps elsewhere, you will have to take an extra reference.
A new #GESTrack.
The type of track
The caps to restrict the output of the track to.
Adds the given object to the track. Sets the object's controlling track,
and thus takes ownership of the @object.
An object can only be added to one track.
#TRUE if the object was properly added. #FALSE if the track does not
want to accept the object.
a #GESTrack
the #GESTrackElement to add
Commits all the pending changes of the TrackElement contained in the
track.
When timing changes happen in a timeline, the changes are not
directly done inside NLE. This method needs to be called so any changes
on a clip contained in the timeline actually happen at the media
processing level.
%TRUE if something as been commited %FALSE if nothing needed
to be commited
a #GESTrack
Get the #GstCaps this track is configured to output.
The #GstCaps this track is configured to output.
a #GESTrack
Gets the #GESTrackElement contained in @track
the list of
#GESTrackElement present in the Track sorted by priority and start.
a #GESTrack
Gets if the underlying #NleComposition contains an expandable mixer.
#True if there is a mixer, #False otherwise.
a #GESTrack
Get the #GESTimeline this track belongs to. Can be %NULL.
The #GESTimeline this track belongs to. Can be %NULL.
a #GESTrack
Removes the object from the track and unparents it.
Unparenting it means the reference owned by @track on the @object will be
removed. If you wish to use the @object after this function, make sure you
call gst_object_ref() before removing it from the @track.
#TRUE if the object was removed, else #FALSE if the track
could not remove the object (like if it didn't belong to the track).
a #GESTrack
the #GESTrackElement to remove
Sets the function that should be used to create the GstElement used to fill gaps.
To avoid to provide such a function we advice you to use the
#ges_audio_track_new and #ges_video_track_new constructor when possible.
a #GESTrack
The #GESCreateElementForGapFunc that will be used
to create #GstElement to fill gaps
Sets if the #GESTrack should be mixing.
a #GESTrack
TRUE if the track should be mixing, FALSE otherwise.
Sets the given @caps as the caps the track has to output.
a #GESTrack
the #GstCaps to set
Sets @timeline as the timeline controlling @track.
a #GESTrack
a #GESTimeline
Updates the restriction caps by modifying all the fields present in @caps
in the original restriction caps. If for example the current restriction caps
are video/x-raw, format=I420, width=360 and @caps is video/x-raw, format=RGB,
the restriction caps will be updated to video/x-raw, format=RGB, width=360.
Modification happens for each structure in the new caps, and
one can add new fields or structures through that function.
a #GESTrack
the #GstCaps to update with
Caps used to filter/choose the output stream. This is generally set to
a generic set of caps like 'video/x-raw' for raw video.
Default value: #GST_CAPS_ANY.
Current duration of the track
Default value: O
Whether layer mixing is activated or not on the track.
Caps used to filter/choose the output stream.
Default value: #GST_CAPS_ANY.
Type of stream the track outputs. This is used when creating the #GESTrack
to specify in generic terms what type of content will be outputted.
It also serves as a 'fast' way to check what type of data will be outputted
from the #GESTrack without having to actually check the #GESTrack's caps
property.
a #GESTrackType indicting the basic type of the track.
Will be emitted after a track element was added to the track.
the #GESTrackElement that was added.
Will be emitted after a track element was removed from the track.
the #GESTrackElement that was removed.
#GESTrackElement is the Base Class for any object that can be contained in a
#GESTrack.
It contains the basic information as to the location of the object within
its container, like the start position, the inpoint, the duration and the
priority.
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.
Use #ges_timeline_element_lookup_child
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.
object to lookup the property in
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.
pointer to a #GstElement that
takes the real object to set property on
pointer to take the #GParamSpec
describing the property
Looks for the properties defines with the various parametters and add
them to the hashtable of children properties.
To be used by subclasses only
The #GESTrackElement to set chidlren props on
The GstElement to retrieve properties from
An array of categories of GstElement to
take into account (as defined in the factory meta "klass" field)
A
blacklist of elements factory names to not take into account
A list
of propery names to add as children properties
Edit @object in the different exisiting #GESEditMode modes. In the case of
slide, and roll, you need to specify a #GESEdge
%TRUE if the object as been edited properly, %FALSE if an error
occured
the #GESTrackElement to edit
The layers you want the edit to
happen in, %NULL means that the edition is done in all the
#GESLayers contained in the current timeline.
FIXME: This is not implemented yet.
The #GESEditMode in which the edition will happen.
The #GESEdge the edit should happen on.
The position at which to edit @object (in nanosecond)
A
#GHashTable containing all property_name: GstControlBinding
The #TrackElement from which to get all set bindings
Gets properties of a child of @object.
Use #ges_timeline_element_get_child_properties
The origin #GESTrackElement
The name of the first property to get
return location for the first property, followed optionally by more
name/return location pairs, followed by NULL
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.
Use #ges_timeline_element_get_child_property
%TRUE if the property was found, %FALSE otherwize
The origin #GESTrackElement
The name of the property
return location for the property value, it will
be initialized if it is initialized with 0
Gets a property of a child of @object.
Use #ges_timeline_element_get_child_property_by_pspec
a #GESTrackElement
The #GParamSpec that specifies the property you want to get
return location for the value
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.
Use #ges_timeline_element_get_child_property_valist
The #GESTrackElement parent object
The name of the first property to get
value for the first property, followed optionally by more
name/return location pairs, followed by NULL
Looks up the various controlled properties for that #GESTrackElement,
and returns the #GstControlBinding which controls @property_name.
the #GstControlBinding associated with
@property_name, or %NULL if that property is not controlled.
the #GESTrackElement in which to lookup the bindings.
The property_name to which the binding is associated.
Get the #GstElement this track element is controlling within GNonLin.
the #GstElement this track element is controlling
within GNonLin.
a #GESTrackElement
Get the NleObject object this object is controlling.
use #ges_track_element_get_nleobject instead.
the NleObject object this object is controlling.
a #GESTrackElement
Get the GNonLin object this object is controlling.
the GNonLin object this object is controlling.
a #GESTrackElement
Get the #GESTrack to which this object belongs.
The #GESTrack to which this object
belongs. Can be %NULL if it is not in any track
a #GESTrackElement
Lets you know if @object will be used for playback and rendering,
or not.
%TRUE if @object is active, %FALSE otherwize
a #GESTrackElement
Gets an array of #GParamSpec* for all configurable properties of the
children of @object.
Use #ges_timeline_element_list_children_properties
an array of #GParamSpec* which should be freed after use or
%NULL if something went wrong
The #GESTrackElement to get the list of children properties from
return location for the length of the returned array
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.
Use #ges_timeline_element_lookup_child
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.
object to lookup the property in
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.
pointer to a #GstElement that
takes the real object to set property on
pointer to take the #GParamSpec
describing the property
Removes a #GstControlBinding from @object.
%TRUE if the binding could be removed, %FALSE if an error
occured
the #GESTrackElement on which to set a control binding
The name of the property to control.
Sets the usage of the @object. If @active is %TRUE, the object will be used for
playback and rendering, else it will be ignored.
%TRUE if the property was toggled, else %FALSE
a #GESTrackElement
visibility
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.
Use #ges_timeline_element_set_child_properties
The #GESTrackElement parent object
The name of the first property to set
value for the first property, followed optionally by more
name/return location pairs, followed by NULL
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.
use #ges_timeline_element_set_child_property instead
%TRUE if the property was set, %FALSE otherwize
The origin #GESTrackElement
The name of the property
the value
Sets a property of a child of @object.
Use #ges_timeline_element_set_child_property_by_spec
a #GESTrackElement
The #GParamSpec that specifies the property you want to set
the value
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.
Use #ges_timeline_element_set_child_property_valist
The #GESTrackElement parent object
The name of the first property to set
value for the first property, followed optionally by more
name/return location pairs, followed by NULL
Creates a #GstControlBinding and adds it to the #GstElement concerned by the
property. Use the same syntax as #ges_track_element_lookup_child for
the property name.
%TRUE if the binding could be created and added, %FALSE if an error
occured
the #GESTrackElement on which to set a control binding
the #GstControlSource to set on the binding.
The name of the property to control.
The type of binding to create. Currently the following values are valid:
- "direct": See #gst_direct_control_binding_new
- "direct-absolute": See #gst_direct_control_binding_new_absolute
Whether the object should be taken into account in the #GESTrack output.
If #FALSE, then its contents will not be used in the resulting track.
The control-binding-added signal is emitted each time a control binding
is added for a child property of @track_element
the #GstControlBinding that has been added
The control-binding-removed signal is emitted each time a control binding
is removed for a child property of @track_element
the #GstControlBinding that has been removed
Get the GESAssetTrackType the #GESTrackElement extracted from @self
should get into
a #GESTrackType
A #GESAssetObject
Set the #GESAssetTrackType the #GESTrackElement extracted from @self
should get into
A #GESAssetObject
A #GESTrackType
Subclasses can override the @create_gnl_object method to override what type
of GNonLin object will be created.
name of the GNonLin GStElementFactory type to use.
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.
object to lookup the property in
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.
pointer to a #GstElement that
takes the real object to set property on
pointer to take the #GParamSpec
describing the property
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
A track of unknown type (i.e. invalid)
An audio track
A video track
A text (subtitle) track
A custom-content track
Base class for media transitions.
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.
Creates a new #GESTransitionClip.
a newly created #GESTransitionClip,
or %NULL if something went wrong.
the type of transition to create
Creates a new #GESTransitionClip for the provided @nick.
The newly created #GESTransitionClip,
or %NULL if something went wrong
a string representing the type of transition to create
a #GESVideoStandardTransitionType representing the wipe to use
a #GESVideoStandardTransitionType indicating the type of video transition
to apply.
Represents all the output streams from a particular uri. It is assumed that
the URI points to a file of some type.
Creates a new #GESUriClip for the provided @uri.
The newly created #GESUriClip, or
%NULL if there was an error.
the URI the source should control
Get the location of the resource.
The location of the resource.
the #GESUriClip
Lets you know if @self is an image or not.
%TRUE if @self is a still image %FALSE otherwise.
the #GESUriClip
Lets you know if the audio track of @self is muted or not.
%TRUE if the audio track of @self is muted, %FALSE otherwise.
the #GESUriClip
Sets whether the clip is a still image or not.
the #GESUriClip
%TRUE if @self is a still image, %FALSE otherwise
Sets whether the audio track of this clip is muted or not.
the #GESUriClip on which to mute or unmute the audio track
%TRUE to mute @self audio track, %FALSE to unmute it
Whether this uri clip represents a still image or not. This must be set
before create_track_elements is called.
Whether the sound will be played or not.
The location of the file/resource to use.
The #GESUriClipAsset is a special #GESAsset that lets you handle
the media file to use inside the GStreamer Editing Services. It has APIs that
let you get information about the medias. Also, the tags found in the media file are
set as Metadata of the Asset.
Finalize the request of an async #GESUriClipAsset
The #GESUriClipAsset previously requested
The #GAsyncResult from which to get the newly created #GESUriClipAsset
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) {
g_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 {
g_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);
]|
The URI of the file for which to create a #GESUriClipAsset
optional %GCancellable object, %NULL to ignore.
a #GAsyncReadyCallback to call when the initialization is finished
The user data to pass when @callback is called
Creates a #GESUriClipAsset for @uri syncronously. You should avoid
to use it in application, and rather create #GESUriClipAsset asynchronously
A reference to the requested asset or %NULL if
an error happened
The URI of the file for which to create a #GESUriClipAsset.
You can also use multi file uris for #GESMultiFileSource.
Gets duration of the file represented by @self
The duration of @self
a #GESUriClipAsset
Gets #GstDiscovererInfo about the file
#GstDiscovererInfo of specified asset
Target asset
Get the GESUriSourceAsset @self containes
a
#GList of #GESUriSourceAsset
A #GESUriClipAsset
Gets Whether the file represented by @self is an image or not
Whether the file represented by @self is an image or not
a #indent: Standard input:311: Error:Unexpected end of file
GESUriClipAsset
The duration (in nanoseconds) of the media file
Sets the timeout of #GESUriClipAsset loading
The #GESUriClipAssetClass on which to set the discoverer timeout
The timeout to set
NOTE: You should never request such a #GESAsset as they will be created automatically
by #GESUriClipAsset-s.
Get the #GESUriClipAsset @self is contained in
a #GESUriClipAsset
A #GESUriClipAsset
Get the #GstDiscovererStreamInfo user by @asset
a #GESUriClipAsset
A #GESUriClipAsset
# Children Properties:
You can use the following children properties through the
#ges_track_element_set_child_property and alike set of methods:
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="200px"/>
<colspec colname="properties_flags" colwidth="400px"/>
<tbody>
<row>
<entry role="property_type"><link linkend="gdouble"><type>double</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--alpha">alpha</link></entry>
<entry>The desired alpha for the stream.</entry>
</row>
<row>
<entry role="property_type"><link linkend="gint"><type>gint</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--posx">posx</link></entry>
<entry>The desired x position for the stream.</entry>
</row>
<row>
<entry role="property_type"><link linkend="gint"><type>gint</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--posy">posy</link></entry>
<entry>The desired y position for the stream</entry>
</row>
<row>
<entry role="property_type"><link linkend="gint"><type>gint</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--width">width</link></entry>
<entry>The desired width for that source. Set to 0 if size is not mandatory, will be set to width of the current track.</entry>
</row>
<row>
<entry role="property_type"><link linkend="gint"><type>gint</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--height">height</link></entry>
<entry>The desired height for that source. Set to 0 if size is not mandatory, will be set to height of the current track.</entry>
</row>
<row>
<entry role="property_type"><link linkend="GstDeinterlaceModes"><type>GstDeinterlaceModes</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--deinterlace-mode">deinterlace-mode</link></entry>
<entry>Deinterlace Mode</entry>
</row>
<row>
<entry role="property_type"><link linkend="GstDeinterlaceFields"><type>GstDeinterlaceFields</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--deinterlace-fields">deinterlace-fields</link></entry>
<entry>Fields to use for deinterlacing</entry>
</row>
<row>
<entry role="property_type"><link linkend="GstDeinterlaceFieldLayout"><type>GstDeinterlaceFieldLayout</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--deinterlace-tff">deinterlace-tff</link></entry>
<entry>Deinterlace top field first</entry>
</row>
<row>
<entry role="property_type"><link linkend="GstVideoOrientationMethod"><type>GstVideoOrientationMethod</type></link></entry>
<entry role="property_name"><link linkend="GESVideoSource--video-direction">video-direction</link></entry>
<entry>The desired video rotation and flipping.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
Transition type has not been set,
A bar moves from left to right,
A bar moves from top to bottom,
A box expands from the upper-left corner to the lower-right corner,
A box expands from the upper-right corner to the lower-left corner,
A box expands from the lower-right corner to the upper-left corner,
A box expands from the lower-left corner to the upper-right corner,
A box shape expands from each of the four corners toward the center,
A box shape expands from the center of each quadrant toward the corners of each quadrant,
A central, vertical line splits and expands toward the left and right edges,
A central, horizontal line splits and expands toward the top and bottom edges,
A box expands from the top edge's midpoint to the bottom corners,
A box expands from the right edge's midpoint to the left corners,
A box expands from the bottom edge's midpoint to the top corners,
A box expands from the left edge's midpoint to the right corners,
A diagonal line moves from the upper-left corner to the lower-right corner,
A diagonal line moves from the upper right corner to the lower-left corner,
Two wedge shapes slide in from the top and bottom edges toward the center,
Two wedge shapes slide in from the left and right edges toward the center,
A diagonal line from the lower-left to upper-right corners splits and expands toward the opposite corners,
A diagonal line from upper-left to lower-right corners splits and expands toward the opposite corners,
Four wedge shapes split from the center and retract toward the four edges,
A diamond connecting the four edge midpoints simultaneously contracts toward the center and expands toward the edges,
A wedge shape moves from top to bottom,
A wedge shape moves from right to left,
A wedge shape moves from bottom to top,
A wedge shape moves from left to right,
A 'V' shape extending from the bottom edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
A 'V' shape extending from the left edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
A 'V' shape extending from the top edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
A 'V' shape extending from the right edge's midpoint to the opposite corners contracts toward the center and expands toward the edges,
A rectangle expands from the center.,
A radial hand sweeps clockwise from the twelve o'clock position,
A radial hand sweeps clockwise from the three o'clock position,
A radial hand sweeps clockwise from the six o'clock position,
A radial hand sweeps clockwise from the nine o'clock position,
Two radial hands sweep clockwise from the twelve and six o'clock positions,
Two radial hands sweep clockwise from the nine and three o'clock positions,
Four radial hands sweep clockwise,
A fan unfolds from the top edge, the fan axis at the center,
A fan unfolds from the right edge, the fan axis at the center,
Two fans, their axes at the center, unfold from the top and bottom,
Two fans, their axes at the center, unfold from the left and right,
A radial hand sweeps clockwise from the top edge's midpoint,
A radial hand sweeps clockwise from the right edge's midpoint,
A radial hand sweeps clockwise from the bottom edge's midpoint,
A radial hand sweeps clockwise from the left edge's midpoint,
Two radial hands sweep clockwise and counter-clockwise from the top and bottom edges' midpoints,
Two radial hands sweep clockwise and counter-clockwise from the left and right edges' midpoints,
Two radial hands attached at the top and bottom edges' midpoints sweep from right to left,
Two radial hands attached at the left and right edges' midpoints sweep from top to bottom,
A fan unfolds from the bottom, the fan axis at the top edge's midpoint,
A fan unfolds from the left, the fan axis at the right edge's midpoint,
A fan unfolds from the top, the fan axis at the bottom edge's midpoint,
A fan unfolds from the right, the fan axis at the left edge's midpoint,
Two fans, their axes at the top and bottom, unfold from the center,
Two fans, their axes at the left and right, unfold from the center,
A radial hand sweeps clockwise from the upper-left corner,
A radial hand sweeps counter-clockwise from the lower-left corner.,
A radial hand sweeps clockwise from the lower-right corner,
A radial hand sweeps counter-clockwise from the upper-right corner,
Two radial hands attached at the upper-left and lower-right corners sweep down and up,
Two radial hands attached at the lower-left and upper-right corners sweep down and up,
Two radial hands attached at the upper-left and upper-right corners sweep down,
Two radial hands attached at the upper-left and lower-left corners sweep to the right,
Two radial hands attached at the lower-left and lower-right corners sweep up,
Two radial hands attached at the upper-right and lower-right corners sweep to the left,
Two radial hands attached at the midpoints of the top and bottom halves sweep from right to left,
Two radial hands attached at the midpoints of the left and right halves sweep from top to bottom,
Two sets of radial hands attached at the midpoints of the top and bottom halves sweep from top to bottom and bottom to top,
Two sets of radial hands attached at the midpoints of the left and right halves sweep from left to right and right to left,
Crossfade
The test pattern to produce
A standard SMPTE test pattern
Random noise
A black image
A white image
A red image
A green image
A blue image
Checkers pattern (1px)
Checkers pattern (2px)
Checkers pattern (4px)
Checkers pattern (8px)
Circular pattern
Alternate between black and white
SMPTE test pattern (75% color bars)
Zone plate
Gamut checkers
Chroma zone plate
Solid color
Get the video pattern used by the @source.
The video pattern used by the @source.
a #GESVideoTestPattern
Sets the source to use the given @pattern.
a #GESVideoTestSource
a #GESVideoTestPattern
Creates a new #GESVideoTrack of type #GES_TRACK_TYPE_VIDEO and with generic
raw video caps ("video/x-raw");
A new #GESTrack.
Creates a new #GESVideoTransition.
The newly created
#GESVideoTransition, or %NULL if there was an error.
Get the border property of @self, this value represents
the border width of the transition.
The border values of @self or -1 if not meaningful
(this will happen when not using a smpte transition).
The #GESVideoTransition to get the border from
Get the transition type used by @trans.
The transition type used by @trans.
a #GESVideoTransition
Get the invert property of @self, this value represents
the direction of the transition.
The invert value of @self
The #GESVideoTransition to get the inversion from
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.
The #GESVideoTransition to set the border to
The value of the border to set on @object
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.
The #GESVideoTransition to set invert on
%TRUE if the transition should be inverted %FALSE otherwise
Sets the transition being used to @type.
%TRUE if the transition type was properly changed, else %FALSE.
a #GESVideoTransition
a #GESVideoStandardTransitionType
This value represents the border width of the transition.
This value represents the direction of the transition.
parent class
The location of the file/resource to use.
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.
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.
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.
%TRUE if GES could be initialized.
pointer to application's argc
pointer to application's argv
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.
a pointer to GES's option group.
Use this function to check if GES has been initialized with ges_init()
or ges_init_check().
%TRUE if initialization has been done, %FALSE otherwise.
List all @asset filtering per filter as defined by @filter.
It copies the asset and thus will not be updated in time.
The list of
#GESAsset the object contains
Type of assets to list, #GES_TYPE_EXTRACTABLE will list
all assets
Get the last buffer @playsink showed
A #GstSample containing the last frame from
@playsink in the format defined by the @caps
The playsink to get last frame from
The caps defining the format the return value will have
Gets the version number of the GStreamer Editing Services library.
pointer to a guint to store the major version number
pointer to a guint to store the minor version number
pointer to a guint to store the micro version number
pointer to a guint to store the nano version number