diff --git a/gir-files/GES-1.0.gir b/gir-files/GES-1.0.gir
new file mode 100644
index 000000000..e2ded350a
--- /dev/null
+++ b/gir-files/GES-1.0.gir
@@ -0,0 +1,13157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+ 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.
+
+ 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.
+
+ 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
+
+
+
+
+
+
+
+
+
+
+ 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 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.
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+ 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 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.
+
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 register, %FALSE otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ Target container
+
+
+
+ Name of the meta item to set
+
+
+
+ Value to set
+
+
+
+
+
+
+ %TRUE if the meta could be added, %FALSE otherwize
+
+
+
+
+ Target container
+
+
+
+ Name of the meta item to set
+
+
+
+ Value to set
+Sets the value of a given meta item
+
+
+
+
+
+ Sets the value of a given meta item
+
+ %TRUE if the meta could be added, %FALSE otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 otherwize
+
+
+
+
+ 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 accured, 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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 @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.
+
+ Paste @self copying the element
+
+
+
+
+ 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.
+
+
+
+
+
+ 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.
+
+
+
+
+
+ a #GESTimelineElement
+
+
+
+ the in-point in #GstClockTime
+
+
+
+
+
+ Set the maximun duration of the object
+
+
+
+
+
+ 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.
+
+
+
+
+
+ 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.
+
+
+
+
+
+ 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 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+ 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.
+
+ 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. Only "direct" is available for now.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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 Metadatas of the Asser.
+
+
+
+
+ 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 (ges_asset_request_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>
+</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.
+
+After this call GES (including this method) should not be used anymore.
+
+
+
+
+
+ Initialize the GStreamer Editing Service. Call this before any usage of
+GES. You should take care of initilizing GStreamer before calling this
+function.
+
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+
+
diff --git a/gir-files/Gst-1.0.gir b/gir-files/Gst-1.0.gir
index 032c22885..0a19b4c0a 100644
--- a/gir-files/Gst-1.0.gir
+++ b/gir-files/Gst-1.0.gir
@@ -3875,7 +3875,7 @@ gst_buffer_pool_config_add_option().
a %NULL terminated array
of strings.
-
+
@@ -4028,7 +4028,7 @@ gst_buffer_pool_config_add_option().
a %NULL terminated array
of strings.
-
+
@@ -4265,7 +4265,7 @@ return.
a %NULL terminated array
of strings.
-
+
@@ -15848,7 +15848,7 @@ make a copy of the protocol string array if you need to.
the supported protocols
or %NULL
-
+
@@ -23214,7 +23214,7 @@ buffers.
version="1.2">
an array of tags as strings.
-
+
@@ -23258,7 +23258,7 @@ buffers.
tags for @api
-
+
@@ -29704,7 +29704,7 @@ codec libraries are currently installed.
or %NULL. Environment variable names may be followed by a path component
which will be added to the content of the environment variable, e.g.
"HOME/.mystuff/plugins".
-
+
@@ -29714,7 +29714,7 @@ codec libraries are currently installed.
allow-none="1">
%NULL-terminated array of directories/paths where dependent files
may be, or %NULL.
-
+
@@ -29726,7 +29726,7 @@ codec libraries are currently installed.
depending on @flags) to be used in combination with the paths from
@paths and/or the paths extracted from the environment variables in
@env_vars, or %NULL.
-
+
@@ -33717,7 +33717,7 @@ in the @formats array must be equal to @n_formats.
an array containing @n_formats
@GstFormat values.
-
+
@@ -35679,8 +35679,9 @@ outside of the segment is extrapolated.
When 1 is returned, @running_time resulted in a positive position returned
in @position.
-When this function returns -1, the returned @position should be negated
-to get the real negative segment position.
+When this function returns -1, the returned @position was < 0, and the value
+in the position variable should be negated to get the real negative segment
+position.
a 1 or -1 on success, 0 on failure.
@@ -43006,7 +43007,7 @@ returns and must not be freed.
the
requested data, or %NULL if that data is not available.
-
+
@@ -43273,7 +43274,7 @@ a 0-length list.
a %NULL-terminated array of extensions associated with this factory
-
+
@@ -44725,7 +44726,7 @@ determine a order for the two provided values.
The major version of GStreamer at compile time:
-
+
The micro version of GStreamer at compile time:
@@ -45998,7 +45999,7 @@ is unknown.
The format array to search
-
+
@@ -46148,8 +46149,8 @@ abort program execution.
nullable="1"
allow-none="1">
pointer to application's argv
-
-
+
+
@@ -46182,8 +46183,8 @@ use gst_init() instead.
nullable="1"
allow-none="1">
pointer to application's argv
-
-
+
+
@@ -46286,7 +46287,7 @@ or gst_init_check().
version="1.2">
an array of tags as strings.
-
+
@@ -46332,7 +46333,7 @@ or gst_init_check().
tags for @api
-
+
@@ -46742,7 +46743,7 @@ on failure.
null-terminated array of arguments
-
+
@@ -46765,7 +46766,7 @@ An error does not mean that the pipeline could not be constructed.
null-terminated array of arguments
-
+
@@ -47001,7 +47002,7 @@ the @system_identifiers supported by the set of available decryptors, or
A null terminated array of strings that contains the UUID values of each
protection system that is to be checked.
-
+
@@ -47038,7 +47039,7 @@ element has been found.
A null terminated array of strings
that contains the UUID values of each protection system that is to be
checked.
-
+
@@ -47870,7 +47871,7 @@ the result.
a pointer to the memory to dump
-
+
diff --git a/gir-files/GstAudio-1.0.gir b/gir-files/GstAudio-1.0.gir
index 71c526717..559258394 100644
--- a/gir-files/GstAudio-1.0.gir
+++ b/gir-files/GstAudio-1.0.gir
@@ -1641,14 +1641,14 @@ Perform channel mixing on @in_data and write the result to @out_data.
nullable="1"
allow-none="1">
input samples
-
+
output samples
-
+
number of samples
@@ -2431,7 +2431,7 @@ are matching and @in and @out point to enough memory.
nullable="1"
allow-none="1">
input frames
-
+
number of input frames
@@ -2442,7 +2442,7 @@ are matching and @in and @out point to enough memory.
nullable="1"
allow-none="1">
output frames
-
+
number of output frames
@@ -5714,7 +5714,7 @@ and will be packed into @data.
a source array
-
+
@@ -5755,7 +5755,7 @@ channels * size(unpack_format) bytes.
pointer to the audio data
-
+
@@ -5959,7 +5959,7 @@ Note: This initializes @info first, no values are preserved.
allow-none="1">
the channel positions
@@ -6108,14 +6108,14 @@ modified in-place.
nullable="1"
allow-none="1">
input samples
-
+
output samples
-
+
number of samples
@@ -6286,7 +6286,7 @@ are matching and @in and @out point to enough memory.
nullable="1"
allow-none="1">
input samples
-
+
number of input frames
@@ -6297,7 +6297,7 @@ are matching and @in and @out point to enough memory.
nullable="1"
allow-none="1">
output samples
-
+
number of output frames
@@ -7392,7 +7392,7 @@ be called in when the ringbuffer is acquired.
the device channel positions
-
+
@@ -8955,7 +8955,7 @@ positions and the same positions, only in a different order.
The channel positions in the buffer.
+ c:type="const GstAudioChannelPosition*">
@@ -8964,7 +8964,7 @@ positions and the same positions, only in a different order.
The channel positions to convert to.
+ c:type="const GstAudioChannelPosition*">
@@ -9115,7 +9115,7 @@ in the order required by GStreamer.
The %GstAudioChannelPositions
+ c:type="const GstAudioChannelPosition*">
@@ -9154,7 +9154,7 @@ Since 1.10
to convert.
+ c:type="const GstAudioChannelPosition*">
@@ -9206,7 +9206,7 @@ checks if the channels are in the order required by GStreamer.
to check.
+ c:type="const GstAudioChannelPosition*">
@@ -9373,7 +9373,7 @@ is possible.
The channel positions to reorder from.
+ c:type="const GstAudioChannelPosition*">
@@ -9382,7 +9382,7 @@ is possible.
The channel positions to reorder to.
+ c:type="const GstAudioChannelPosition*">
@@ -9425,7 +9425,7 @@ otherwise.
a buffer containing the data to payload
-
+
@@ -9531,7 +9531,7 @@ positions and the same positions, only in a different order.
The channel positions in the buffer.
+ c:type="const GstAudioChannelPosition*">
@@ -9540,7 +9540,7 @@ positions and the same positions, only in a different order.
The channel positions to convert to.
+ c:type="const GstAudioChannelPosition*">
@@ -9664,7 +9664,7 @@ of the results.
of the source
+ c:type="const GstAudioChannelPosition*">
@@ -9678,7 +9678,7 @@ of the results.
the destination
+ c:type="const GstAudioChannelPosition*">
@@ -9711,7 +9711,7 @@ channel positions.
the destination
+ c:type="const GstAudioChannelPosition*">
diff --git a/gir-files/GstBase-1.0.gir b/gir-files/GstBase-1.0.gir
index 2fe676c73..6c4c8a1d9 100644
--- a/gir-files/GstBase-1.0.gir
+++ b/gir-files/GstBase-1.0.gir
@@ -1225,7 +1225,12 @@ sent before pushing the buffer.
-
+
@@ -1610,7 +1615,12 @@ _finish_buffer from inside that function.
-
+
@@ -6816,7 +6826,7 @@ into 8, 16, 32 and 64 bit variables.
Data from which the bit reader will
read
-
+
@@ -7002,7 +7012,7 @@ can be called on already initialized instances.
data from which the bit reader should read
-
+
@@ -7174,7 +7184,7 @@ Free-function: gst_bit_reader_free
Data from which the #GstBitReader
should read
-
+
@@ -7195,7 +7205,7 @@ in various character encodings.
Data from which the bit reader will
read
-
+
@@ -7393,7 +7403,7 @@ updates the current position.
transfer-ownership="none">
address of a
#guint8 pointer variable in which to store the result
-
+
@@ -7741,7 +7751,7 @@ This function will fail if no NUL-terminator was found in in the data.
transfer-ownership="none">
address of a
#gchar pointer variable in which to store the result
-
+
@@ -7987,7 +7997,7 @@ can be called on already initialized instances.
data from which
the #GstByteReader should read
-
+
@@ -8131,7 +8141,7 @@ keeps the current position.
transfer-ownership="none">
address of a
#guint8 pointer variable in which to store the result
-
+
@@ -8447,7 +8457,7 @@ This function will fail if no NUL-terminator was found in in the data.
transfer-ownership="none">
address of a
#gchar pointer variable in which to store the result
-
+
@@ -8785,7 +8795,7 @@ Free-function: gst_byte_reader_free
data from which the
#GstByteReader should read
-
+
@@ -9026,7 +9036,7 @@ read @size bytes from the #GstByteWriter from the beginning.
Data to write
-
+
@@ -9275,7 +9285,7 @@ read @size bytes from the #GstByteWriter from the beginning.
UTF16 string to write
-
+
@@ -9295,7 +9305,7 @@ read @size bytes from the #GstByteWriter from the beginning.
UTF32 string to write
-
+
@@ -11903,7 +11913,7 @@ Free-function: gst_bit_reader_free
Data from which the #GstBitReader
should read
-
+
@@ -11928,7 +11938,7 @@ Free-function: gst_byte_reader_free
data from which the
#GstByteReader should read
-
+
@@ -12136,7 +12146,7 @@ Free-function: gst_caps_unref
* a pointer with data to typefind
-
+
@@ -12246,5 +12256,74 @@ Free-function: gst_caps_unref
+
+ Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
+however, this function will use the specified function @func to obtain the
+data needed by the typefind functions, rather than operating on a given
+source pad. This is useful mostly for elements like tag demuxers which
+strip off data at the beginning and/or end of a file and want to typefind
+the stripped data stream before adding their own source pad (the specified
+callback can then call the upstream peer pad with offsets adjusted for the
+tag size, for example).
+
+When @extension is not %NULL, this function will first try the typefind
+functions for the given extension, which might speed up the typefinding
+in many cases.
+
+ the last %GstFlowReturn from pulling a buffer or %GST_FLOW_OK if
+ typefinding was successful.
+
+
+
+
+ A #GstObject that will be passed as first argument to @func
+
+
+
+ the parent of @obj or %NULL
+
+
+
+ A generic #GstTypeFindHelperGetRangeFunction that will
+ be used to access data at random offsets when doing the typefinding
+
+
+
+ The length in bytes
+
+
+
+ extension of the media, or %NULL
+
+
+
+ returned caps
+
+
+
+ location to store the probability of the found
+ caps, or %NULL
+
+
+
+
diff --git a/gir-files/GstCheck-1.0.gir b/gir-files/GstCheck-1.0.gir
new file mode 100644
index 000000000..e0c736714
--- /dev/null
+++ b/gir-files/GstCheck-1.0.gir
@@ -0,0 +1,2686 @@
+
+
+
+
+
+
+
+
+
+
+
+ #GstHarness is meant to make writing unit test for GStreamer much easier.
+It can be thought of as a way of treating a #GstElement as a black box,
+deterministically feeding it data, and controlling what data it outputs.
+
+The basic structure of #GstHarness is two "floating" #GstPads that connect
+to the harnessed #GstElement src and sink #GstPads like so:
+
+|[
+ __________________________
+ _____ | _____ _____ | _____
+| | | | | | | | | |
+| src |--+-| sink| Element | src |-+--| sink|
+|_____| | |_____| |_____| | |_____|
+ |__________________________|
+
+]|
+
+With this, you can now simulate any environment the #GstElement might find
+itself in. By specifying the #GstCaps of the harness #GstPads, using
+functions like gst_harness_set_src_caps() or gst_harness_set_sink_caps_str(),
+you can test how the #GstElement interacts with different caps sets.
+
+Your harnessed #GstElement can of course also be a bin, and using
+gst_harness_new_parse() supporting standard gst-launch syntax, you can
+easily test a whole pipeline instead of just one element.
+
+You can then go on to push #GstBuffers and #GstEvents on to the srcpad,
+using functions like gst_harness_push() and gst_harness_push_event(), and
+then pull them out to examine them with gst_harness_pull() and
+gst_harness_pull_event().
+
+## A simple buffer-in buffer-out example
+
+|[<!-- language="C" -->
+ #include <gst/gst.h>
+ #include <gst/check/gstharness.h>
+ GstHarness *h;
+ GstBuffer *in_buf;
+ GstBuffer *out_buf;
+
+ // attach the harness to the src and sink pad of GstQueue
+ h = gst_harness_new ("queue");
+
+ // we must specify a caps before pushing buffers
+ gst_harness_set_src_caps_str (h, "mycaps");
+
+ // create a buffer of size 42
+ in_buf = gst_harness_create_buffer (h, 42);
+
+ // push the buffer into the queue
+ gst_harness_push (h, in_buf);
+
+ // pull the buffer from the queue
+ out_buf = gst_harness_pull (h);
+
+ // validate the buffer in is the same as buffer out
+ fail_unless (in_buf == out_buf);
+
+ // cleanup
+ gst_buffer_unref (out_buf);
+ gst_harness_teardown (h);
+
+ ]|
+
+Another main feature of the #GstHarness is its integration with the
+#GstTestClock. Operating the #GstTestClock can be very challenging, but
+#GstHarness simplifies some of the most desired actions a lot, like wanting
+to manually advance the clock while at the same time releasing a #GstClockID
+that is waiting, with functions like gst_harness_crank_single_clock_wait().
+
+#GstHarness also supports sub-harnesses, as a way of generating and
+validating data. A sub-harness is another #GstHarness that is managed by
+the "parent" harness, and can either be created by using the standard
+gst_harness_new type functions directly on the (GstHarness *)->src_harness,
+or using the much more convenient gst_harness_add_src() or
+gst_harness_add_sink_parse(). If you have a decoder-element you want to test,
+(like vp8dec) it can be very useful to add a src-harness with both a
+src-element (videotestsrc) and an encoder (vp8enc) to feed the decoder data
+with different configurations, by simply doing:
+
+|[<!-- language="C" -->
+ GstHarness * h = gst_harness_new (h, "vp8dec");
+ gst_harness_add_src_parse (h, "videotestsrc is-live=1 ! vp8enc", TRUE);
+]|
+
+and then feeding it data with:
+
+|[<!-- language="C" -->
+gst_harness_push_from_src (h);
+]|
+
+ the element inside the harness
+
+
+
+ the internal harness source pad
+
+
+
+ the internal harness sink pad
+
+
+
+ the source (input) harness (if any)
+
+
+
+ the sink (output) harness (if any)
+
+
+
+
+
+
+ Adds a #GstElement to an empty #GstHarness
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstElement to add to the harness (transfer none)
+
+
+
+ a #GstStaticPadTemplate describing the harness srcpad.
+%NULL will not create a harness srcpad.
+
+
+
+ a #gchar with the name of the element
+sinkpad that is then linked to the harness srcpad. Can be a static or request
+or a sometimes pad that has been added. %NULL will not get/request a sinkpad
+from the element. (Like if the element is a src.)
+
+
+
+ a #GstStaticPadTemplate describing the harness sinkpad.
+%NULL will not create a harness sinkpad.
+
+
+
+ a #gchar with the name of the element
+srcpad that is then linked to the harness sinkpad, similar to the
+@element_sinkpad_name.
+
+
+
+
+
+ Links the specified #GstPad the @GstHarness srcpad.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstPad to link to the harness srcpad
+
+
+
+
+
+ Links the specified #GstPad the @GstHarness sinkpad. This can be useful if
+perhaps the srcpad did not exist at the time of creating the harness,
+like a demuxer that provides a sometimes-pad after receiving data.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstPad to link to the harness sinkpad
+
+
+
+
+
+ Parses the @launchline and puts that in a #GstBin,
+and then attches the supplied #GstHarness to the bin.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar describing a gst-launch type line
+
+
+
+
+
+ A convenience function to allows you to call gst_pad_add_probe on a
+#GstPad of a #GstElement that are residing inside the #GstHarness,
+by using normal gst_pad_add_probe syntax
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with a #GstElementFactory name
+
+
+
+ a #gchar with the name of the pad to attach the probe to
+
+
+
+ a #GstPadProbeType (see gst_pad_add_probe)
+
+
+
+ a #GstPadProbeCallback (see gst_pad_add_probe)
+
+
+
+ a #gpointer (see gst_pad_add_probe)
+
+
+
+ a #GDestroyNotify (see gst_pad_add_probe)
+
+
+
+
+
+ Add api with params as one of the supported metadata API to propose when
+receiving an allocation query.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a metadata API
+
+
+
+ API specific parameters
+
+
+
+
+
+ Similar to gst_harness_add_sink_harness, this is a convenience to
+directly create a sink-harness using the @sink_element_name name specified.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with the name of a #GstElement
+
+
+
+
+
+ Similar to gst_harness_add_src, this allows you to send the data coming out
+of your harnessed #GstElement to a sink-element, allowing to test different
+responses the element output might create in sink elements. An example might
+be an existing sink providing some analytical data on the input it receives that
+can be useful to your testing. If the goal is to test a sink-element itself,
+this is better achieved using gst_harness_new directly on the sink.
+
+If a sink-harness already exists it will be replaced.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstHarness to be added as a sink-harness.
+
+
+
+
+
+ Similar to gst_harness_add_sink, this allows you to specify a launch-line
+instead of just an element name. See gst_harness_add_src_parse for details.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with the name of a #GstElement
+
+
+
+
+
+ Similar to gst_harness_add_src_harness, this is a convenience to
+directly create a src-harness using the @src_element_name name specified.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with the name of a #GstElement
+
+
+
+ a #gboolean specifying if the #GstElement uses
+gst_clock_wait_id internally.
+
+
+
+
+
+ A src-harness is a great way of providing the #GstHarness with data.
+By adding a src-type #GstElement, it is then easy to use functions like
+gst_harness_push_from_src or gst_harness_src_crank_and_push_many
+to provide your harnessed element with input. The @has_clock_wait variable
+is a great way to control you src-element with, in that you can have it
+produce a buffer for you by simply cranking the clock, and not have it
+spin out of control producing buffers as fast as possible.
+
+If a src-harness already exists it will be replaced.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstHarness to be added as a src-harness.
+
+
+
+ a #gboolean specifying if the #GstElement uses
+gst_clock_wait_id internally.
+
+
+
+
+
+ Similar to gst_harness_add_src, this allows you to specify a launch-line,
+which can be useful for both having more then one #GstElement acting as your
+src (Like a src producing raw buffers, and then an encoder, providing encoded
+data), but also by allowing you to set properties like "is-live" directly on
+the elements.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar describing a gst-launch type line
+
+
+
+ a #gboolean specifying if the #GstElement uses
+gst_clock_wait_id internally.
+
+
+
+
+
+ The number of #GstBuffers currently in the #GstHarness sinkpad #GAsyncQueue
+
+MT safe.
+
+ a #guint number of buffers in the queue
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ The total number of #GstBuffers that has arrived on the #GstHarness sinkpad.
+This number includes buffers that have been dropped as well as buffers
+that have already been pulled out.
+
+MT safe.
+
+ a #guint number of buffers received
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Similar to gst_harness_crank_single_clock_wait(), this is the function to use
+if your harnessed element(s) are using more then one gst_clock_id_wait.
+Failing to do so can (and will) make it racy which #GstClockID you actually
+are releasing, where as this function will process all the waits at the
+same time, ensuring that one thread can't register another wait before
+both are released.
+
+MT safe.
+
+ a @gboolean %TRUE if the "crank" was successful, %FALSE if not.
+
+
+
+
+ a #GstHarness
+
+
+
+ a #guint describing the number of #GstClockIDs to crank
+
+
+
+
+
+ A "crank" consists of three steps:
+1: Wait for a #GstClockID to be registered with the #GstTestClock.
+2: Advance the #GstTestClock to the time the #GstClockID is waiting for.
+3: Release the #GstClockID wait.
+Together, this provides an easy way to not have to think about the details
+around clocks and time, but still being able to write deterministic tests
+that are dependent on this. A "crank" can be though of as the notion of
+manually driving the clock forward to its next logical step.
+
+MT safe.
+
+ a @gboolean %TRUE if the "crank" was successful, %FALSE if not.
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Allocates a buffer using a #GstBufferPool if present, or else using the
+configured #GstAllocator and #GstAllocationParams
+
+MT safe.
+
+ a #GstBuffer of size @size
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gsize specifying the size of the buffer
+
+
+
+
+
+ Allows you to dump the #GstBuffers the #GstHarness sinkpad #GAsyncQueue
+to a file.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with a the name of a file
+
+
+
+
+
+ The number of #GstEvents currently in the #GstHarness sinkpad #GAsyncQueue
+
+MT safe.
+
+ a #guint number of events in the queue
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ The total number of #GstEvents that has arrived on the #GstHarness sinkpad
+This number includes events handled by the harness as well as events
+that have already been pulled out.
+
+MT safe.
+
+ a #guint number of events received
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Most useful in conjunction with gst_harness_new_parse, this will scan the
+#GstElements inside the #GstHarness, and check if any of them matches
+@element_name. Typical usecase being that you need to access one of the
+harnessed elements for properties and/or signals.
+
+MT safe.
+
+ a #GstElement or %NULL if not found
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with a #GstElementFactory name
+
+
+
+
+
+ A convenience function to allows you to call g_object_get on a #GstElement
+that are residing inside the #GstHarness, by using normal g_object_get
+syntax.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with a #GstElementFactory name
+
+
+
+ a #gchar with the first property name
+
+
+
+ return location for the first property, followed optionally by more
+ name/return location pairs, followed by %NULL
+
+
+
+
+
+ Gets the @allocator and its @params that has been decided to use after an
+allocation query.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ the #GstAllocator used
+
+
+
+ the #GstAllocationParams of
+ @allocator
+
+
+
+
+
+ Get the timestamp of the last #GstBuffer pushed on the #GstHarness srcpad,
+typically with gst_harness_push or gst_harness_push_from_src.
+
+MT safe.
+
+ a #GstClockTime with the timestamp or %GST_CLOCK_TIME_NONE if no
+#GstBuffer has been pushed on the #GstHarness srcpad
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Get the #GstTestClock. Useful if specific operations on the testclock is
+needed.
+
+MT safe.
+
+ a #GstTestClock, or %NULL if the testclock is not
+present.
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ This will set the harnessed #GstElement to %GST_STATE_PLAYING.
+#GstElements without a sink-#GstPad and with the %GST_ELEMENT_FLAG_SOURCE
+flag set is considered a src #GstElement
+Non-src #GstElements (like sinks and filters) are automatically set to
+playing by the #GstHarness, but src #GstElements are not to avoid them
+starting to produce buffers.
+Hence, for src #GstElement you must call gst_harness_play() explicitly.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pulls a #GstBuffer from the #GAsyncQueue on the #GstHarness sinkpad. The pull
+will timeout in 60 seconds. This is the standard way of getting a buffer
+from a harnessed #GstElement.
+
+MT safe.
+
+ a #GstBuffer or %NULL if timed out.
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness sinkpad.
+Timeouts after 60 seconds similar to gst_harness_pull.
+
+MT safe.
+
+ a #GstEvent or %NULL if timed out.
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness srcpad.
+Timeouts after 60 seconds similar to gst_harness_pull.
+
+MT safe.
+
+ a #GstEvent or %NULL if timed out.
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pushes a #GstBuffer on the #GstHarness srcpad. The standard way of
+interacting with an harnessed element.
+
+MT safe.
+
+ a #GstFlowReturn with the result from the push
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstBuffer to push
+
+
+
+
+
+ Basically a gst_harness_push and a gst_harness_pull in one line. Reflects
+the fact that you often want to do exactly this in your test: Push one buffer
+in, and inspect the outcome.
+
+MT safe.
+
+ a #GstBuffer or %NULL if timed out.
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstBuffer to push
+
+
+
+
+
+ Pushes an #GstEvent on the #GstHarness srcpad.
+
+MT safe.
+
+ a #gboolean with the result from the push
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstEvent to push
+
+
+
+
+
+ Transfer data from the src-#GstHarness to the main-#GstHarness. It consists
+of 4 steps:
+1: Make sure the src is started. (see: gst_harness_play)
+2: Crank the clock (see: gst_harness_crank_single_clock_wait)
+3: Pull a #GstBuffer from the src-#GstHarness (see: gst_harness_pull)
+4: Push the same #GstBuffer into the main-#GstHarness (see: gst_harness_push)
+
+MT safe.
+
+ a #GstFlowReturn with the result of the push
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Transfer one #GstBuffer from the main-#GstHarness to the sink-#GstHarness.
+See gst_harness_push_from_src for details.
+
+MT safe.
+
+ a #GstFlowReturn with the result of the push
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pushes an #GstEvent on the #GstHarness sinkpad.
+
+MT safe.
+
+ a #gboolean with the result from the push
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstEvent to push
+
+
+
+
+
+ Get the min latency reported by any harnessed #GstElement.
+
+MT safe.
+
+ a #GstClockTime with min latency
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ A convenience function to allows you to call g_object_set on a #GstElement
+that are residing inside the #GstHarness, by using normal g_object_set
+syntax.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar with a #GstElementFactory name
+
+
+
+ a #gchar with the first property name
+
+
+
+ value for the first property, followed optionally by more
+ name/value pairs, followed by %NULL
+
+
+
+
+
+ Setting this will make the harness block in the chain-function, and
+then release when gst_harness_pull() or gst_harness_try_pull() is called.
+Can be useful when wanting to control a src-element that is not implementing
+gst_clock_id_wait() so it can't be controlled by the #GstTestClock, since
+it otherwise would produce buffers as fast as possible.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Sets the @GstHarness srcpad and sinkpad caps.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstCaps to set on the harness srcpad
+
+
+
+ a #GstCaps to set on the harness sinkpad
+
+
+
+
+
+ Sets the @GstHarness srcpad and sinkpad caps using strings.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a @gchar describing a #GstCaps to set on the harness srcpad
+
+
+
+ a @gchar describing a #GstCaps to set on the harness sinkpad
+
+
+
+
+
+ When set to %TRUE, instead of placing the buffers arriving from the harnessed
+#GstElement inside the sinkpads #GAsyncQueue, they are instead unreffed.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gboolean specifying to drop outgoing buffers or not
+
+
+
+
+
+ As a convenience, a src-harness will forward %GST_EVENT_STREAM_START,
+%GST_EVENT_CAPS and %GST_EVENT_SEGMENT to the main-harness if forwarding
+is enabled, and forward any sticky-events from the main-harness to
+the sink-harness. It will also forward the %GST_QUERY_ALLOCATION.
+
+If forwarding is disabled, the user will have to either manually push
+these events from the src-harness using gst_harness_src_push_event(), or
+create and push them manually. While this will allow full control and
+inspection of these events, for the most cases having forwarding enabled
+will be sufficient when writing a test where the src-harness' main function
+is providing data for the main-harness.
+
+Forwarding is enabled by default.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gboolean to enable/disable forwarding
+
+
+
+
+
+ Sets the @allocator and @params to propose when receiving an allocation
+query.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstAllocator
+
+
+
+ a #GstAllocationParams
+
+
+
+
+
+ Sets the @GstHarness sinkpad caps.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstCaps to set on the harness sinkpad
+
+
+
+
+
+ Sets the @GstHarness sinkpad caps using a string.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a @gchar describing a #GstCaps to set on the harness sinkpad
+
+
+
+
+
+ Sets the @GstHarness srcpad caps. This must be done before any buffers
+can legally be pushed from the harness to the element.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstCaps to set on the harness srcpad
+
+
+
+
+
+ Sets the @GstHarness srcpad caps using a string. This must be done before
+any buffers can legally be pushed from the harness to the element.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a @gchar describing a #GstCaps to set on the harness srcpad
+
+
+
+
+
+ Advance the #GstTestClock to a specific time.
+
+MT safe.
+
+ a @gboolean %TRUE if the time could be set. %FALSE if not.
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstClockTime to advance the clock to
+
+
+
+
+
+ Sets the min latency reported by #GstHarness when receiving a latency-query
+
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstClockTime specifying the latency
+
+
+
+
+
+ Convenience that calls gst_harness_push_to_sink @pushes number of times.
+Will abort the pushing if any one push fails.
+
+MT safe.
+
+ a #GstFlowReturn with the result of the push
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gint with the number of calls to gst_harness_push_to_sink
+
+
+
+
+
+ Transfer data from the src-#GstHarness to the main-#GstHarness. Similar to
+gst_harness_push_from_src, this variant allows you to specify how many cranks
+and how many pushes to perform. This can be useful for both moving a lot
+of data at the same time, as well as cases when one crank does not equal one
+buffer to push and v.v.
+
+MT safe.
+
+ a #GstFlowReturn with the result of the push
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gint with the number of calls to gst_harness_crank_single_clock_wait
+
+
+
+ a #gint with the number of calls to gst_harness_push
+
+
+
+
+
+ Similar to what gst_harness_src_push does with #GstBuffers, this transfers
+a #GstEvent from the src-#GstHarness to the main-#GstHarness. Note that
+some #GstEvents are being transferred automagically. Look at sink_forward_pad
+for details.
+
+MT safe.
+
+ a #gboolean with the result of the push
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Start a custom stress-thread that will call your @callback for every
+iteration allowing you to do something nasty.
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GFunc that is called initially and only once
+
+
+
+ a #GFunc that is called as often as possible
+
+
+
+ a #gpointer with custom data to pass to the @callback function
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each call to the @callback
+
+
+
+
+
+ Call g_object_set with @name and @value in intervals of @sleep microseconds
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gchar specifying a property name
+
+
+
+ a #GValue to set the property to
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each g_object_set with @name and @value
+
+
+
+
+
+ Push a #GstBuffer in intervals of @sleep microseconds.
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstCaps for the #GstBuffer
+
+
+
+ a #GstSegment
+
+
+
+ a #GstBuffer to push
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each call to gst_pad_push
+
+
+
+
+
+ Push a #GstBuffer returned by @func in intervals of @sleep microseconds.
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstCaps for the #GstBuffer
+
+
+
+ a #GstSegment
+
+
+
+ a #GstHarnessPrepareBufferFunc function called before every iteration
+to prepare / create a #GstBuffer for pushing
+
+
+
+ a #gpointer with data to the #GstHarnessPrepareBufferFunc function
+
+
+
+ a #GDestroyNotify that is called when thread is stopped
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each call to gst_pad_push
+
+
+
+
+
+ Push the @event onto the harnessed #GstElement sinkpad in intervals of
+@sleep microseconds
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstEvent to push
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each gst_event_push with @event
+
+
+
+
+
+ Push a #GstEvent returned by @func onto the harnessed #GstElement sinkpad
+in intervals of @sleep microseconds.
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstHarnessPrepareEventFunc function called before every iteration
+to prepare / create a #GstEvent for pushing
+
+
+
+ a #gpointer with data to the #GstHarnessPrepareEventFunc function
+
+
+
+ a #GDestroyNotify that is called when thread is stopped
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each call to gst_pad_push
+
+
+
+
+
+ Push the @event onto the harnessed #GstElement srcpad in intervals of
+@sleep microseconds.
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstEvent to push
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each gst_event_push with @event
+
+
+
+
+
+ Push a #GstEvent returned by @func onto the harnessed #GstElement srcpad
+in intervals of @sleep microseconds.
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstHarnessPrepareEventFunc function called before every iteration
+to prepare / create a #GstEvent for pushing
+
+
+
+ a #gpointer with data to the #GstHarnessPrepareEventFunc function
+
+
+
+ a #GDestroyNotify that is called when thread is stopped
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each call to gst_pad_push
+
+
+
+
+
+ Call gst_element_request_pad in intervals of @sleep microseconds
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #GstPadTemplate
+
+
+
+ a #gchar
+
+
+
+ a #GstCaps
+
+
+
+ a #gboolean
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each gst_element_request_pad
+
+
+
+
+
+ Change the state of your harnessed #GstElement from NULL to PLAYING and
+back again, only pausing for @sleep microseconds every time.
+
+MT safe.
+
+ a #GstHarnessThread
+
+
+
+
+ a #GstHarness
+
+
+
+ a #gulong specifying how long to sleep in (microseconds) for
+each state-change
+
+
+
+
+
+ Pulls all pending data from the harness and returns it as a single
+data slice.
+
+ a pointer to the data, newly allocated. Free
+ with g_free() when no longer needed. Will return %NULL if there is no
+ data.
+
+
+
+
+ a #GstHarness
+
+
+
+ the size of the data in bytes
+
+
+
+
+
+ Pulls all pending data from the harness and returns it as a single buffer.
+
+ the data as a buffer. Unref with gst_buffer_unref()
+ when no longer needed.
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pulls all pending data from the harness and returns it as a single #GBytes.
+
+ a pointer to the data, newly allocated. Free
+ with g_free() when no longer needed.
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Tears down a @GstHarness, freeing all resources allocated using it.
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pulls a #GstBuffer from the #GAsyncQueue on the #GstHarness sinkpad. Unlike
+gst_harness_pull this will not wait for any buffers if not any are present,
+and return %NULL straight away.
+
+MT safe.
+
+ a #GstBuffer or %NULL if no buffers are present in the #GAsyncQueue
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness sinkpad.
+See gst_harness_try_pull for details.
+
+MT safe.
+
+ a #GstEvent or %NULL if no buffers are present in the #GAsyncQueue
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness srcpad.
+See gst_harness_try_pull for details.
+
+MT safe.
+
+ a #GstEvent or %NULL if no buffers are present in the #GAsyncQueue
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ The number of #GstEvents currently in the #GstHarness srcpad #GAsyncQueue
+
+MT safe.
+
+ a #guint number of events in the queue
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ The total number of #GstEvents that has arrived on the #GstHarness srcpad
+This number includes events handled by the harness as well as events
+that have already been pulled out.
+
+MT safe.
+
+ a #guint number of events received
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Sets the system #GstClock on the @GstHarness #GstElement
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Sets the #GstTestClock on the #GstHarness #GstElement
+
+MT safe.
+
+
+
+
+
+ a #GstHarness
+
+
+
+
+
+ Waits for @timeout seconds until @waits number of #GstClockID waits is
+registered with the #GstTestClock. Useful for writing deterministic tests,
+where you want to make sure that an expected number of waits have been
+reached.
+
+MT safe.
+
+ a @gboolean %TRUE if the waits have been registered, %FALSE if not.
+(Could be that it timed out waiting or that more waits then waits was found)
+
+
+
+
+ a #GstHarness
+
+
+
+ a #guint describing the numbers of #GstClockID registered with
+the #GstTestClock
+
+
+
+ a #guint describing how many seconds to wait for @waits to be true
+
+
+
+
+
+ Creates a new harness. Works like gst_harness_new_with_padnames(), except it
+assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing the #GstElement name
+
+
+
+
+
+ Creates a new empty harness. Use gst_harness_add_element_full() to add
+an #GstElement to it.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ Creates a new harness.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #GstElement to attach the harness to (transfer none)
+
+
+
+ a #GstStaticPadTemplate describing the harness srcpad.
+%NULL will not create a harness srcpad.
+
+
+
+ a #gchar with the name of the element
+sinkpad that is then linked to the harness srcpad. Can be a static or request
+or a sometimes pad that has been added. %NULL will not get/request a sinkpad
+from the element. (Like if the element is a src.)
+
+
+
+ a #GstStaticPadTemplate describing the harness sinkpad.
+%NULL will not create a harness sinkpad.
+
+
+
+ a #gchar with the name of the element
+srcpad that is then linked to the harness sinkpad, similar to the
+@element_sinkpad_name.
+
+
+
+
+
+ Creates a new harness, parsing the @launchline and putting that in a #GstBin,
+and then attches the harness to the bin.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing a gst-launch type line
+
+
+
+
+
+ Creates a new harness. Works in the same way as gst_harness_new_full(), only
+that generic padtemplates are used for the harness src and sinkpads, which
+will be sufficient in most usecases.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #GstElement to attach the harness to (transfer none)
+
+
+
+ a #gchar with the name of the element
+sinkpad that is then linked to the harness srcpad. %NULL does not attach a
+sinkpad
+
+
+
+ a #gchar with the name of the element
+srcpad that is then linked to the harness sinkpad. %NULL does not attach a
+srcpad
+
+
+
+
+
+ Creates a new harness. Works like gst_harness_new_with_element(),
+except you specify the factoryname of the #GstElement
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing the #GstElement name
+
+
+
+ a #gchar with the name of the element
+sinkpad that is then linked to the harness srcpad. %NULL does not attach a
+sinkpad
+
+
+
+ a #gchar with the name of the element
+srcpad that is then linked to the harness sinkpad. %NULL does not attach a
+srcpad
+
+
+
+
+
+ Creates a new harness, like gst_harness_new_full(), except it
+assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing the #GstElement name
+
+
+
+ a #GstStaticPadTemplate describing the harness srcpad.
+%NULL will not create a harness srcpad.
+
+
+
+ a #GstStaticPadTemplate describing the harness sinkpad.
+%NULL will not create a harness sinkpad.
+
+
+
+
+
+ Stop the running #GstHarnessThread
+
+MT safe.
+
+
+
+
+
+ a #GstHarnessThread
+
+
+
+
+
+
+
+
+
+
+
+ a #GstHarness
+
+
+
+ user data
+
+
+
+
+
+
+
+
+
+
+ a #GstHarness
+
+
+
+ user data
+
+
+
+
+
+
+
+ Opaque handle representing a GstHarness stress testing thread.
+
+
+ Opaque consistency checker handle.
+
+
+ GstTestClock is an implementation of #GstClock which has different
+behaviour compared to #GstSystemClock. Time for #GstSystemClock advances
+according to the system time, while time for #GstTestClock changes only
+when gst_test_clock_set_time() or gst_test_clock_advance_time() are
+called. #GstTestClock provides unit tests with the possibility to
+precisely advance the time in a deterministic manner, independent of the
+system time or any other external factors.
+
+## Advancing the time of a #GstTestClock
+
+|[<!-- language="C" -->
+ #include <gst/gst.h>
+ #include <gst/check/gsttestclock.h>
+
+ GstClock *clock;
+ GstTestClock *test_clock;
+
+ clock = gst_test_clock_new ();
+ test_clock = GST_TEST_CLOCK (clock);
+ GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ gst_test_clock_advance_time ( test_clock, 1 * GST_SECOND);
+ GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ g_usleep (10 * G_USEC_PER_SEC);
+ GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ gst_test_clock_set_time (test_clock, 42 * GST_SECOND);
+ GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
+ ...
+]|
+
+#GstClock allows for setting up single shot or periodic clock notifications
+as well as waiting for these notifications synchronously (using
+gst_clock_id_wait()) or asynchronously (using gst_clock_id_wait_async() or
+gst_clock_id_wait_async()). This is used by many GStreamer elements,
+among them #GstBaseSrc and #GstBaseSink.
+
+#GstTestClock keeps track of these clock notifications. By calling
+gst_test_clock_wait_for_next_pending_id() or
+gst_test_clock_wait_for_multiple_pending_ids() a unit tests may wait for the
+next one or several clock notifications to be requested. Additionally unit
+tests may release blocked waits in a controlled fashion by calling
+gst_test_clock_process_next_clock_id(). This way a unit test can control the
+inaccuracy (jitter) of clock notifications, since the test can decide to
+release blocked waits when the clock time has advanced exactly to, or past,
+the requested clock notification time.
+
+There are also interfaces for determining if a notification belongs to a
+#GstTestClock or not, as well as getting the number of requested clock
+notifications so far.
+
+N.B.: When a unit test waits for a certain amount of clock notifications to
+be requested in gst_test_clock_wait_for_next_pending_id() or
+gst_test_clock_wait_for_multiple_pending_ids() then these functions may block
+for a long time. If they block forever then the expected clock notifications
+were never requested from #GstTestClock, and so the assumptions in the code
+of the unit test are wrong. The unit test case runner in gstcheck is
+expected to catch these cases either by the default test case timeout or the
+one set for the unit test by calling tcase_set_timeout\(\).
+
+The sample code below assumes that the element under test will delay a
+buffer pushed on the source pad by some latency until it arrives on the sink
+pad. Moreover it is assumed that the element will at some point call
+gst_clock_id_wait() to synchronously wait for a specific time. The first
+buffer sent will arrive exactly on time only delayed by the latency. The
+second buffer will arrive a little late (7ms) due to simulated jitter in the
+clock notification.
+
+## Demonstration of how to work with clock notifications and #GstTestClock
+
+|[<!-- language="C" -->
+ #include <gst/gst.h>
+ #include <gst/check/gstcheck.h>
+ #include <gst/check/gsttestclock.h>
+
+ GstClockTime latency;
+ GstElement *element;
+ GstPad *srcpad;
+ GstClock *clock;
+ GstTestClock *test_clock;
+ GstBuffer buf;
+ GstClockID pending_id;
+ GstClockID processed_id;
+
+ latency = 42 * GST_MSECOND;
+ element = create_element (latency, ...);
+ srcpad = get_source_pad (element);
+
+ clock = gst_test_clock_new ();
+ test_clock = GST_TEST_CLOCK (clock);
+ gst_element_set_clock (element, clock);
+
+ GST_INFO ("Set time, create and push the first buffer\n");
+ gst_test_clock_set_time (test_clock, 0);
+ buf = create_test_buffer (gst_clock_get_time (clock), ...);
+ gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
+
+ GST_INFO ("Block until element is waiting for a clock notification\n");
+ gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+ GST_INFO ("Advance to the requested time of the clock notification\n");
+ gst_test_clock_advance_time (test_clock, latency);
+ GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
+ processed_id = gst_test_clock_process_next_clock_id (test_clock);
+ g_assert (processed_id == pending_id);
+ g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
+ gst_clock_id_unref (pending_id);
+ gst_clock_id_unref (processed_id);
+
+ GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
+ g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
+ buf = get_buffer_pushed_by_element (element, ...);
+ g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==, latency);
+ gst_buffer_unref (buf);
+ GST_INFO ("Check that element does not wait for any clock notification\n");
+ g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL));
+
+ GST_INFO ("Set time, create and push the second buffer\n");
+ gst_test_clock_advance_time (test_clock, 10 * GST_SECOND);
+ buf = create_test_buffer (gst_clock_get_time (clock), ...);
+ gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
+
+ GST_INFO ("Block until element is waiting for a new clock notification\n");
+ (gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
+ GST_INFO ("Advance past 7ms beyond the requested time of the clock notification\n");
+ gst_test_clock_advance_time (test_clock, latency + 7 * GST_MSECOND);
+ GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
+ processed_id = gst_test_clock_process_next_clock_id (test_clock);
+ g_assert (processed_id == pending_id);
+ g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
+ gst_clock_id_unref (pending_id);
+ gst_clock_id_unref (processed_id);
+
+ GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
+ g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
+ buf = get_buffer_pushed_by_element (element, ...);
+ g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==,
+ 10 * GST_SECOND + latency + 7 * GST_MSECOND);
+ gst_buffer_unref (buf);
+ GST_INFO ("Check that element does not wait for any clock notification\n");
+ g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL));
+ ...
+]|
+
+Since #GstTestClock is only supposed to be used in unit tests it calls
+g_assert(), g_assert_cmpint() or g_assert_cmpuint() to validate all function
+arguments. This will highlight any issues with the unit test code itself.
+
+ Creates a new test clock with its time set to zero.
+
+MT safe.
+
+ a #GstTestClock cast to #GstClock.
+
+
+
+
+ Creates a new test clock with its time set to the specified time.
+
+MT safe.
+
+ a #GstTestClock cast to #GstClock.
+
+
+
+
+ a #GstClockTime set to the desired start time of the clock.
+
+
+
+
+
+ Finds the latest time inside the list.
+
+MT safe.
+
+
+
+
+
+ List
+ of of pending #GstClockIDs
+
+
+
+
+
+
+
+ Advances the time of the @test_clock by the amount given by @delta. The
+time of @test_clock is monotonically increasing, therefore providing a
+@delta which is negative or zero is a programming error.
+
+MT safe.
+
+
+
+
+
+ a #GstTestClock for which to increase the time
+
+
+
+ a positive #GstClockTimeDiff to be added to the time of the clock
+
+
+
+
+
+ A "crank" consists of three steps:
+1: Wait for a #GstClockID to be registered with the #GstTestClock.
+2: Advance the #GstTestClock to the time the #GstClockID is waiting for.
+3: Release the #GstClockID wait.
+A "crank" can be though of as the notion of
+manually driving the clock forward to its next logical step.
+
+ %TRUE if the crank was successful, %FALSE otherwise.
+
+MT safe.
+
+
+
+
+ #GstTestClock to crank
+
+
+
+
+
+ Retrieve the requested time for the next pending clock notification.
+
+MT safe.
+
+ a #GstClockTime set to the time of the next pending clock
+notification. If no clock notifications have been requested
+%GST_CLOCK_TIME_NONE will be returned.
+
+
+
+
+ a #GstTestClock to fetch the next clock notification time for
+
+
+
+
+
+ Checks whether @test_clock was requested to provide the clock notification
+given by @id.
+
+MT safe.
+
+ %TRUE if the clock has been asked to provide the given clock
+notification, %FALSE otherwise.
+
+
+
+
+ a #GstTestClock to ask if it provided the notification
+
+
+
+ a #GstClockID clock notification
+
+
+
+
+
+ Determine the number of pending clock notifications that have been
+requested from the @test_clock.
+
+MT safe.
+
+ the number of pending clock notifications.
+
+
+
+
+ a #GstTestClock for which to count notifications
+
+
+
+
+
+ Determines if the @pending_id is the next clock notification scheduled to
+be triggered given the current time of the @test_clock.
+
+MT safe.
+
+ %TRUE if @pending_id is the next clock notification to be
+triggered, %FALSE otherwise.
+
+
+
+
+ a #GstTestClock to check the clock notifications for
+
+
+
+ a #GstClockID clock
+notification to look for
+
+
+
+
+
+ Processes and releases the pending IDs in the list.
+
+MT safe.
+
+
+
+
+
+ #GstTestClock for which to process the pending IDs
+
+
+
+ List
+ of pending #GstClockIDs
+
+
+
+
+
+
+
+ MT safe.
+
+ a #GstClockID containing the next pending clock
+notification.
+
+
+
+
+ a #GstTestClock for which to retrieve the next pending clock
+notification
+
+
+
+
+
+ Sets the time of @test_clock to the time given by @new_time. The time of
+@test_clock is monotonically increasing, therefore providing a @new_time
+which is earlier or equal to the time of the clock as given by
+gst_clock_get_time() is a programming error.
+
+MT safe.
+
+
+
+
+
+ a #GstTestClock of which to set the time
+
+
+
+ a #GstClockTime later than that returned by gst_clock_get_time()
+
+
+
+
+
+ Blocks until at least @count clock notifications have been requested from
+@test_clock. There is no timeout for this wait, see the main description of
+#GstTestClock.
+
+MT safe.
+
+
+
+
+
+ #GstTestClock for which to await having enough pending clock
+
+
+
+ the number of pending clock notifications to wait for
+
+
+
+ Address
+ of a #GList pointer variable to store the list of pending #GstClockIDs
+ that expired, or %NULL
+
+
+
+
+
+
+
+ Waits until a clock notification is requested from @test_clock. There is no
+timeout for this wait, see the main description of #GstTestClock. A reference
+to the pending clock notification is stored in @pending_id.
+
+MT safe.
+
+
+
+
+
+ #GstTestClock for which to get the pending clock notification
+
+
+
+ #GstClockID
+with information about the pending clock notification
+
+
+
+
+
+ Blocks until at least @count clock notifications have been requested from
+@test_clock. There is no timeout for this wait, see the main description of
+#GstTestClock.
+ use gst_test_clock_wait_for_multiple_pending_ids() instead.
+
+
+
+
+
+ #GstTestClock for which to await having enough pending clock
+
+
+
+ the number of pending clock notifications to wait for
+
+
+
+
+
+
+
+
+ When a #GstTestClock is constructed it will have a certain start time set.
+If the clock was created using gst_test_clock_new_with_start_time() then
+this property contains the value of the @start_time argument. If
+gst_test_clock_new() was called the clock started at time zero, and thus
+this property contains the value 0.
+
+
+
+
+
+
+
+
+
+
+ The class of a #GstTestClock, which has no virtual methods to override.
+
+ the parent class structure
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets up a data probe on the given pad which will raise assertions if the
+data flow is inconsistent.
+
+ %TRUE if the pad was added
+
+
+
+
+ The #GstStreamConsistency handle
+
+
+
+ The #GstPad on which the dataflow will be checked.
+
+
+
+
+
+ Frees the allocated data and probes associated with @consist.
+
+
+
+
+
+ The #GstStreamConsistency to free.
+
+
+
+
+
+ Sets up a data probe on the given pad which will raise assertions if the
+data flow is inconsistent.
+
+ A #GstStreamConsistency structure used to track data flow.
+
+
+
+
+ The #GstPad on which the dataflow will be checked.
+
+
+
+
+
+ Reset the stream checker's internal variables.
+
+
+
+
+
+ The #GstStreamConsistency to reset.
+
+
+
+
+
+ Creates a new harness. Works like gst_harness_new_with_padnames(), except it
+assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing the #GstElement name
+
+
+
+
+
+ Creates a new empty harness. Use gst_harness_add_element_full() to add
+an #GstElement to it.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ Creates a new harness.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #GstElement to attach the harness to (transfer none)
+
+
+
+ a #GstStaticPadTemplate describing the harness srcpad.
+%NULL will not create a harness srcpad.
+
+
+
+ a #gchar with the name of the element
+sinkpad that is then linked to the harness srcpad. Can be a static or request
+or a sometimes pad that has been added. %NULL will not get/request a sinkpad
+from the element. (Like if the element is a src.)
+
+
+
+ a #GstStaticPadTemplate describing the harness sinkpad.
+%NULL will not create a harness sinkpad.
+
+
+
+ a #gchar with the name of the element
+srcpad that is then linked to the harness sinkpad, similar to the
+@element_sinkpad_name.
+
+
+
+
+
+ Creates a new harness, parsing the @launchline and putting that in a #GstBin,
+and then attches the harness to the bin.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing a gst-launch type line
+
+
+
+
+
+ Creates a new harness. Works in the same way as gst_harness_new_full(), only
+that generic padtemplates are used for the harness src and sinkpads, which
+will be sufficient in most usecases.
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #GstElement to attach the harness to (transfer none)
+
+
+
+ a #gchar with the name of the element
+sinkpad that is then linked to the harness srcpad. %NULL does not attach a
+sinkpad
+
+
+
+ a #gchar with the name of the element
+srcpad that is then linked to the harness sinkpad. %NULL does not attach a
+srcpad
+
+
+
+
+
+ Creates a new harness. Works like gst_harness_new_with_element(),
+except you specify the factoryname of the #GstElement
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing the #GstElement name
+
+
+
+ a #gchar with the name of the element
+sinkpad that is then linked to the harness srcpad. %NULL does not attach a
+sinkpad
+
+
+
+ a #gchar with the name of the element
+srcpad that is then linked to the harness sinkpad. %NULL does not attach a
+srcpad
+
+
+
+
+
+ Creates a new harness, like gst_harness_new_full(), except it
+assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
+
+MT safe.
+
+ a #GstHarness, or %NULL if the harness could
+not be created
+
+
+
+
+ a #gchar describing the #GstElement name
+
+
+
+ a #GstStaticPadTemplate describing the harness srcpad.
+%NULL will not create a harness srcpad.
+
+
+
+ a #GstStaticPadTemplate describing the harness sinkpad.
+%NULL will not create a harness sinkpad.
+
+
+
+
+
+ Stop the running #GstHarnessThread
+
+MT safe.
+
+
+
+
+
+ a #GstHarnessThread
+
+
+
+
+
+
diff --git a/gir-files/GstNet-1.0.gir b/gir-files/GstNet-1.0.gir
index 087d6f3f1..5f317c9b1 100644
--- a/gir-files/GstNet-1.0.gir
+++ b/gir-files/GstNet-1.0.gir
@@ -211,7 +211,7 @@ MT safe. Caller owns return value (gst_net_time_packet_free to free).
a buffer from which to construct the packet, or NULL
-
+
diff --git a/gir-files/GstPbutils-1.0.gir b/gir-files/GstPbutils-1.0.gir
index 22285341d..8c47cfc44 100644
--- a/gir-files/GstPbutils-1.0.gir
+++ b/gir-files/GstPbutils-1.0.gir
@@ -831,7 +831,7 @@ gst_discoverer_stream_info_list_free().
containing informations about how to install the various missing elements
for @info to be usable. If you wish to use the strings after the life-time
of @info, you will need to copy them.
-
+
@@ -1684,8 +1684,11 @@ information like name, description, format and preset.
The name of the target
-
- (allow-none): The name of the profile, if %NULL
+
+ The name of the profile, if %NULL
provided, it will default to the encoding profile called `default`.
@@ -2744,7 +2747,7 @@ in debugging.
The micro version of GStreamer's gst-plugins-base libraries at compile time.
@@ -2782,7 +2785,7 @@ If mpegversion is 4, the "base-profile" field is also set in @caps.
a pointer to the AudioSpecificConfig
as specified in the Elementary Stream Descriptor (esds)
in ISO/IEC 14496-1. (See below for more details)
-
+
@@ -2806,7 +2809,7 @@ Since 1.10
a pointer to the AudioSpecificConfig
as specified in the Elementary Stream Descriptor (esds)
in ISO/IEC 14496-1.
-
+
@@ -2857,7 +2860,7 @@ determined.
a pointer to the AudioSpecificConfig
as specified in the Elementary Stream Descriptor (esds)
in ISO/IEC 14496-1.
-
+
@@ -2884,7 +2887,7 @@ determined.
a pointer to the AudioSpecificConfig
as specified in the Elementary Stream Descriptor (esds)
in ISO/IEC 14496-1.
-
+
@@ -2909,7 +2912,7 @@ Since 1.10
a pointer to the AudioSpecificConfig
as specified in the Elementary Stream Descriptor (esds)
in ISO/IEC 14496-1.
-
+
@@ -2951,7 +2954,7 @@ for more details on the parameters.
Pointer to the sequence parameter set for the stream.
-
+
@@ -2973,7 +2976,7 @@ same format as for gst_codec_utils_h264_get_profile().
Pointer to the sequence parameter set for the stream.
-
+
@@ -3020,7 +3023,7 @@ byte.
Pointer to the sequence parameter set for the stream.
-
+
@@ -3050,7 +3053,7 @@ Since 1.4
Pointer to the profile_tier_level
struct
-
+
@@ -3075,7 +3078,7 @@ Since 1.4
Pointer to the profile_tier_level
for the stream
-
+
@@ -3129,7 +3132,7 @@ Since 1.4
Pointer to the profile_tier_level
structure for the stream.
-
+
@@ -3154,7 +3157,7 @@ Since 1.4
Pointer to the profile_tier_level
for the stream.
-
+
@@ -3182,7 +3185,7 @@ parameters.
Pointer to the visual object
sequence for the stream.
-
+
@@ -3206,7 +3209,7 @@ object sequence start code. Only the first byte
Pointer to the visual object
sequence for the stream.
-
+
@@ -3230,7 +3233,7 @@ object sequence start code. Only the first byte
Pointer to the visual object
sequence for the stream.
-
+
@@ -3275,7 +3278,7 @@ invalid Opus caps.
nullable="1"
allow-none="1">
the mapping between the streams
-
+
@@ -3338,7 +3341,7 @@ invalid Opus caps.
nullable="1"
allow-none="1">
the mapping between the streams
-
+
@@ -3405,7 +3408,7 @@ invalid Opus caps.
caller-allocates="0"
transfer-ownership="full">
the mapping between the streams
-
+
@@ -3464,7 +3467,7 @@ invalid Opus caps.
caller-allocates="0"
transfer-ownership="full">
the mapping between the streams
-
+
@@ -3542,7 +3545,7 @@ installed but no suitable video decoder and no suitable audio decoder).
NULL-terminated array
of installer string details (see below)
-
+
@@ -3627,7 +3630,7 @@ gst_install_plugins_async() instead of this function.
NULL-terminated array
of installer string details
-
+
diff --git a/gir-files/GstRtsp-1.0.gir b/gir-files/GstRtsp-1.0.gir
index 19dcbf6a0..30bbf45d8 100644
--- a/gir-files/GstRtsp-1.0.gir
+++ b/gir-files/GstRtsp-1.0.gir
@@ -2527,7 +2527,7 @@ all matching headers will be removed.
the data
-
+
@@ -4126,7 +4126,7 @@ are reached. #GST_RTSP_EINTR when @watch was flushing.
the data to queue
-
+
diff --git a/gir-files/GstSdp-1.0.gir b/gir-files/GstSdp-1.0.gir
index b877d9006..2d7f05759 100644
--- a/gir-files/GstSdp-1.0.gir
+++ b/gir-files/GstSdp-1.0.gir
@@ -292,7 +292,7 @@ parameters to decrypt and verify the data.
the encrypted envelope key
-
+
@@ -317,7 +317,7 @@ parameters to decrypt and verify the data.
random data
-
+
@@ -361,7 +361,7 @@ parameters to decrypt and verify the data.
The timestamp value of the specified @type
-
+
@@ -857,7 +857,7 @@ payload.
the Valid From data
-
+
@@ -867,7 +867,7 @@ payload.
the Valid To data
-
+
@@ -897,7 +897,7 @@ payload.
the key of type @key_type
-
+
@@ -926,7 +926,7 @@ salt data will be removed.
nullable="1"
allow-none="1">
the salt
-
+
@@ -951,7 +951,7 @@ salt data will be removed.
the SPI/MKI data
-
+
@@ -981,7 +981,7 @@ salt data will be removed.
the encrypted envelope key
-
+
@@ -1006,7 +1006,7 @@ salt data will be removed.
random values
-
+
@@ -1036,7 +1036,7 @@ and @val.
@len bytes of data
-
+
@@ -1141,7 +1141,7 @@ at @idx.
the timestamp value
-
+
@@ -2794,7 +2794,7 @@ gst_sdp_media_init() before it can be used again.
the repeat times
-
+
@@ -3917,7 +3917,7 @@ stack and initialized with gst_sdp_message_init().
the start of the buffer
-
+
@@ -4053,7 +4053,7 @@ a conference session.
the repeat times
-
+
@@ -4273,7 +4273,7 @@ a=rtcp-fb:(payload) (param1) [param2]...
the start of the buffer
-
+
diff --git a/gir-files/GstTag-1.0.gir b/gir-files/GstTag-1.0.gir
index 4307b88cd..ebda563c5 100644
--- a/gir-files/GstTag-1.0.gir
+++ b/gir-files/GstTag-1.0.gir
@@ -1039,7 +1039,7 @@ WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).
string data
-
+
@@ -1050,7 +1050,7 @@ WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).
a NULL-terminated string array of environment variable names, or NULL
-
+
@@ -1391,7 +1391,7 @@ data (we can't trust the declared mime type).
the (encoded) image
-
+
@@ -1423,7 +1423,7 @@ more information on image tags in GStreamer.
the (encoded) image
-
+
@@ -1505,7 +1505,7 @@ vorbiscomment packet.
data to convert
-
+
@@ -1515,7 +1515,7 @@ vorbiscomment packet.
identification data at start of stream
-
+
@@ -1551,7 +1551,7 @@ vorbiscomment packet.
identification data at start of stream
-
+
@@ -1596,7 +1596,7 @@ parsed data.
128 bytes of data containing the ID3v1 tag
-
+
@@ -1655,7 +1655,7 @@ is put in the beginning of the buffer.
identification data at start of stream
-
+
@@ -1693,7 +1693,7 @@ be used
%NULL terminated array of schemas to be used on serialization
-
+
diff --git a/gir-files/GstVideo-1.0.gir b/gir-files/GstVideo-1.0.gir
index f3345b5dd..20b916c94 100644
--- a/gir-files/GstVideo-1.0.gir
+++ b/gir-files/GstVideo-1.0.gir
@@ -1880,7 +1880,7 @@ Performs the multiplication, meta->matrix X matrix.
a 4x4 transformation matrix to be applied
-
+
@@ -2151,7 +2151,7 @@ supports all the video bufferpool options.
nullable="1"
allow-none="1">
pixel lines
-
+
the number of pixels on one line
@@ -2814,7 +2814,7 @@ the component values in range [0.0 .. 1.0] back to their representation in
caller-allocates="1"
transfer-ownership="none">
output offsets
-
+
@@ -2823,7 +2823,7 @@ the component values in range [0.0 .. 1.0] back to their representation in
caller-allocates="1"
transfer-ownership="none">
output scale
-
+
@@ -4532,7 +4532,7 @@ performance is achived when @quantizer is a power of 2.
quantizer
-
+
the width of the lines
@@ -6758,11 +6758,11 @@ formats this means that a complete pixel needs to be packed.
nullable="1"
allow-none="1">
pointers to the destination data planes
-
+
strides of the destination planes
-
+
the chroma siting of the target when subsampled (not used)
@@ -6816,11 +6816,11 @@ separate step after unpacking.
nullable="1"
allow-none="1">
pointers to the data planes
-
+
strides of the planes
-
+
the x position in the image to start from
@@ -7172,7 +7172,7 @@ All video planes of @buffer will be mapped and the pointers will be set in
c:type="GstVideoGLTextureUploadMeta*"/>
-
+
@@ -7233,7 +7233,7 @@ to upload something to an OpenGL texture.
the texture IDs to upload to
-
+
@@ -10470,7 +10470,7 @@ gst_video_scaler_get_info().
nullable="1"
allow-none="1">
source pixels lines
-
+
array of #GstVideoGLTextureType
-
+
offset of each plane
-
+
+
+
stride of each plane
-
+
+
+
@@ -12562,7 +12566,7 @@ not contain a valid chroma description.
nullable="1"
allow-none="1">
pixel lines
-
+
the number of pixels on one line
@@ -12721,7 +12725,7 @@ the component values in range [0.0 .. 1.0] back to their representation in
caller-allocates="1"
transfer-ownership="none">
output offsets
-
+
@@ -12730,7 +12734,7 @@ the component values in range [0.0 .. 1.0] back to their representation in
caller-allocates="1"
transfer-ownership="none">
output scale
-
+
@@ -12949,7 +12953,7 @@ performance is achived when @quantizer is a power of 2.
quantizer
-
+
the width of the lines