Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/191>
* @framerate_d: The framerate denominator
*
* Result: %TRUE if @self has a natural framerate %FALSE otherwise
+ *
+ * Since: 1.18
*/
gboolean
ges_clip_asset_get_natural_framerate (GESClipAsset * self,
* Returns: The timestamp corresponding to @frame_number in the element source, given
* in internal time coordinates, or #GST_CLOCK_TIME_NONE if the clip asset does not have a
* natural frame rate.
+ *
+ * Since: 1.18
*/
GstClockTime
ges_clip_asset_get_frame_time (GESClipAsset * self, GESFrameNumber frame_number)
{
GESAssetClass parent;
+ /**
+ * GESClipAssetClass::get_natural_framerate:
+ * @self: A #GESClipAsset
+ * @framerate_n: The framerate numerator to retrieve
+ * @framerate_d: The framerate denominator to retrieve
+ *
+ * Returns: %TRUE if @self has a natural framerate @FALSE otherwise.
+ *
+ * Since: 1.18
+ */
gboolean (*get_natural_framerate) (GESClipAsset *self, gint *framerate_n, gint *framerate_d);
gpointer _ges_reserved[GES_PADDING - 1];
* #GESTimelineElement:duration of the clip due to a change in the above
* variables, its #GESTimelineElement:duration will be set to the new
* limit.
+ *
+ * Since: 1.18
*/
properties[PROP_DURATION_LIMIT] =
g_param_spec_uint64 ("duration-limit", "Duration Limit",
* Returns: The time in the timeline coordinates corresponding to
* @internal_time, or #GST_CLOCK_TIME_NONE if the conversion could not be
* performed.
+ *
+ * Since: 1.18
*/
GstClockTime
ges_clip_get_timeline_time_from_internal_time (GESClip * clip,
*
* Returns: (transfer none): The element that was added to @track, either
* @child or a copy of child, or %NULL if the element could not be added.
+ *
+ * Since: 1.18
*/
GESTrackElement *
ges_clip_add_child_to_track (GESClip * clip, GESTrackElement * child,
*id = g_enum_register_static ("GESEdge", edges);
}
+/**
+ * ges_edge_name:
+ * @edge: The #GESEdge to get the name of
+ *
+ * Returns: A human friendly name for @edge
+ *
+ * Since: 1.16
+ */
const gchar *
ges_edge_name (GESEdge edge)
{
*
* Will be emitted whenever the layer is activated or deactivated
* for some #GESTrack. See ges_layer_set_active_for_tracks().
+ *
+ * Since: 1.18
*/
ges_layer_signals[ACTIVE_CHANGED] =
g_signal_new ("active-changed", G_TYPE_FROM_CLASS (klass),
* ges_layer_set_active_for_tracks().
*
* Returns: %TRUE if @layer is active for @track, or %FALSE otherwise.
+ *
+ * Since: 1.18
*/
gboolean
ges_layer_get_active_for_track (GESLayer * layer, GESTrack * track)
* timeline's tracks.
*
* Returns: %TRUE if the operation worked %FALSE otherwise.
+ *
+ * Since: 1.18
*/
gboolean
ges_layer_set_active_for_tracks (GESLayer * layer, gboolean active,
#include "ges-internal.h"
#include "ges-meta-container.h"
-/* GESMarker */
-
static void ges_meta_container_interface_init (GESMetaContainerInterface *
iface);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->get_property = ges_marker_get_property;
- /**
+ /**
* GESMarker:position:
*
* Current position (in nanoseconds) of the #GESMarker
+ *
+ * Since: 1.18
*/
properties[PROP_POSITION] =
g_param_spec_uint64 ("position", "Position",
/**
* ges_marker_list_get_markers:
*
- * Returns: (element-type GESMarker) (transfer full): a #GList
+ * Returns: (element-type GESMarker) (transfer full): a #GList
* of the #GESMarker within the GESMarkerList. The user will have
* to unref each #GESMarker and free the #GList.
*
/**
* ges_marker_list_move:
- *
+ *
* Moves a @marker in a @list to a new @position
*
* Returns: %TRUE if the marker could be moved, %FALSE otherwise
#define GES_TYPE_MARKER ges_marker_get_type ()
+/**
+ * GESMarker:
+ *
+ * A timed #GESMetaContainer object.
+ *
+ * Since: 1.18
+ */
GES_API
G_DECLARE_FINAL_TYPE (GESMarker, ges_marker, GES, MARKER, GObject)
-
#define GES_TYPE_MARKER_LIST ges_marker_list_get_type ()
+/**
+ * GESMarkerList:
+ *
+ * A list of #GESMarker
+ *
+ * Since: 1.18
+ */
GES_API
G_DECLARE_FINAL_TYPE (GESMarkerList, ges_marker_list, GES, MARKER_LIST, GObject)
*
* Returns: %TRUE if the @meta_item field was successfully registered on
* @container to only hold @type values, with the given @flags.
+ *
+ * Since: 1.18
*/
gboolean
ges_meta_container_register_static_meta (GESMetaContainer * container,
GType extractable_type);
gboolean (*loaded) (GESProject * self,
GESTimeline * timeline);
- gboolean (*loading) (GESProject * self,
- GESTimeline * timeline);
+ /**
+ * GESProjectClass::loading:
+ * @self: The self
+ * @timeline: The loading timeline
+ *
+ * Since: 1.18
+ */
+ void (*loading) (GESProject * self,
+ GESTimeline * timeline);
gpointer _ges_reserved[GES_PADDING - 1];
};
#define GES_TYPE_SOURCE_CLIP_ASSET ges_source_clip_asset_get_type ()
+/**
+ * GESSourceClipAsset:
+ *
+ * An asset types from which #GESSourceClip will be extracted
+ *
+ * Since: 1.18
+ */
GES_API
G_DECLARE_DERIVABLE_TYPE(GESSourceClipAsset, ges_source_clip_asset, GES,
SOURCE_CLIP_ASSET, GESClipAsset);
* Note that some GES elements will be automatically created with
* pre-registered children properties. You can use
* ges_timeline_element_list_children_properties() to list these.
+ *
+ * Since: 1.18
*/
ges_timeline_element_signals[CHILD_PROPERTY_ADDED] =
g_signal_new ("child-property-added", G_TYPE_FROM_CLASS (klass),
*
* Emitted when the element has a child property unregistered. See
* ges_timeline_element_remove_child_property().
+ *
+ * Since: 1.18
*/
ges_timeline_element_signals[CHILD_PROPERTY_REMOVED] =
g_signal_new ("child-property-removed", G_TYPE_FROM_CLASS (klass),
* to redirect property names. Or overwrite to change which child is
* returned if multiple children share the same child property name.
* @get_track_types: Return a the track types for the element.
- * @set_child_property: Method for setting the child property given by
- * @pspec on @child to @value. Default implementation will use
- * g_object_set_property().
- * @set_child_property_full: Similar to @set_child_property, except
- * setting can fail, with the @error being optionally set. Default
- * implementation will call @set_child_property and return %TRUE.
- * @get_layer_priority: Get the #GESLayer:priority of the layer that this
- * element is part of. (Since: 1.18)
* @list_children_properties: List the children properties that have been
* registered for the element. The default implementation is able to fetch
* all of these, so should be sufficient. If you overwrite this, you
gboolean (*lookup_child) (GESTimelineElement *self, const gchar *prop_name,
GObject **child, GParamSpec **pspec);
GESTrackType (*get_track_types) (GESTimelineElement * self);
+
+ /**
+ * GESTimelineElementClass::set_child_property:
+ *
+ * Method for setting the child property given by
+ * @pspec on @child to @value. Default implementation will use
+ * g_object_set_property().
+ *
+ * Since: 1.16
+ */
void (*set_child_property) (GESTimelineElement * self,
GObject *child,
GParamSpec *pspec,
GValue *value);
+ /**
+ * GESTimelineElementClass::get_layer_priority:
+ *
+ * Get the #GESLayer:priority of the layer that this
+ * element is part of.
+ *
+ * Since: 1.16
+ */
guint32 (*get_layer_priority) (GESTimelineElement *self);
- /*< private > */
+ /**
+ * GESTimelineElementClass::get_natural_framerate:
+ * @self: A #GESTimelineElement
+ * @framerate_n: The framerate numerator to retrieve
+ * @framerate_d: The framerate denominator to retrieve
+ *
+ * Returns: %TRUE if @self has a natural framerate @FALSE otherwise.
+ *
+ * Since: 1.18
+ */
gboolean (*get_natural_framerate) (GESTimelineElement * self, gint *framerate_n, gint *framerate_d);
+ /**
+ * GESTimelineElementClass::set_child_property_full:
+ *
+ * Similar to @set_child_property, except setting can fail, with the @error
+ * being optionally set. Default implementation will call @set_child_property
+ * and return %TRUE.
+ *
+ * Since: 1.18
+ */
gboolean (*set_child_property_full) (GESTimelineElement * self,
GObject *child,
GParamSpec *pspec,
* an element within the timeline.
*
* Returns: The timestamp corresponding to @frame_number in the output of @self.
+ *
+ * Since: 1.18
*/
GstClockTime
ges_timeline_get_frame_time (GESTimeline * self, GESFrameNumber frame_number)
* corresponding #GESFrameNumber in the timeline's output.
*
* Returns: The frame number @timestamp corresponds to.
+ *
+ * Since: 1.18
*/
GESFrameNumber
ges_timeline_get_frame_at (GESTimeline * self, GstClockTime timestamp)
* @framerate_d: The framerate denominator
*
* Result: %TRUE if @self has a natural framerate %FALSE otherwise
+ *
+ * Since: 1.18
*/
gboolean
ges_track_element_asset_get_natural_framerate (GESTrackElementAsset * self,
{
GESAssetClass parent_class;
+ /**
+ * GESTrackElementAssetClass::get_natural_framerate:
+ * @self: A #GESTrackElementAsset
+ * @framerate_n: The framerate numerator to retrieve
+ * @framerate_d: The framerate denominator to retrieve
+ *
+ * Returns: %TRUE if @self has a natural framerate @FALSE otherwise.
+ *
+ * Since: 1.18
+ */
gboolean (*get_natural_framerate) (GESTrackElementAsset *self, gint *framerate_n, gint *framerate_d);
gpointer _ges_reserved[GES_PADDING - 1];
* Note that GES can not support track elements that have both internal
* content and manipulate the timing of their data streams (time
* effects).
+ *
+ * Since: 1.18
*/
properties[PROP_HAS_INTERNAL_SOURCE] =
g_param_spec_boolean ("has-internal-source", "Has Internal Source",
* per control source.
*
* Default value: %TRUE
+ *
+ * Since: 1.18
*/
properties[PROP_AUTO_CLAMP_CONTROL_SOURCES] =
g_param_spec_boolean ("auto-clamp-control-sources",
*
* Returns: %FALSE if @has_internal_source is forbidden for @object and
* %TRUE in any other case.
+ *
+ * Since: 1.18
*/
gboolean
ges_track_element_set_has_internal_source (GESTrackElement * object,
* Gets #GESTrackElement:has-internal-source for the element.
*
* Returns: %TRUE if @object can have its 'internal time' properties set.
+ *
+ * Since: 1.18
*/
gboolean
ges_track_element_has_internal_source (GESTrackElement * object)
* GESFrameNumber:
*
* A datatype to hold a frame number.
+ *
+ * Since: 1.18
*/
typedef gint64 GESFrameNumber;
* Gets Whether the file represented by @self is an image or not
*
* Returns: Whether the file represented by @self is an image or not
+ *
+ * Since: 1.18
*/
gboolean
ges_uri_clip_asset_is_image (GESUriClipAsset * self)
*
* Returns: %TRUE if the video stream corresponds to an image (i.e. only
* contains one frame)
+ *
+ * Since: 1.18
*/
gboolean
ges_uri_source_asset_is_image (GESUriSourceAsset * asset)
* account.
*
* Returns: %TRUE if the object has a natural size, %FALSE otherwise.
+ *
+ * Since: 1.18
*/
gboolean
ges_video_source_get_natural_size (GESVideoSource * self, gint * width,