*
* Applications can set a context on a complete pipeline by using
* gst_element_set_context(), which will then be propagated to all
- * child elements. Elements can handle these in #GstElementClass.set_context()
+ * child elements. Elements can handle these in #GstElementClass::set_context
* and merge them with the context information they already have.
*
* When an element needs a context it will do the following actions in this
* order until one step succeeds:
+ *
* 1. Check if the element already has a context
- * 2. Query downstream with GST_QUERY_CONTEXT for the context
- * 3. Query upstream with GST_QUERY_CONTEXT for the context
- * 4. Post a GST_MESSAGE_NEED_CONTEXT message on the bus with the required
+ * 2. Query downstream with %GST_QUERY_CONTEXT for the context
+ * 3. Query upstream with %GST_QUERY_CONTEXT for the context
+ * 4. Post a %GST_MESSAGE_NEED_CONTEXT message on the bus with the required
* context types and afterwards check if a usable context was set now
- * 5. Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message
+ * 5. Create a context by itself and post a %GST_MESSAGE_HAVE_CONTEXT message
* on the bus.
*
- * Bins will catch GST_MESSAGE_NEED_CONTEXT messages and will set any previously
+ * Bins will catch %GST_MESSAGE_NEED_CONTEXT messages and will set any previously
* known context on the element that asks for it if possible. Otherwise the
* application should provide one if it can.
*
- * #GstContext<!-- -->s can be persistent.
+ * #GstContext can be persistent.
* A persistent #GstContext is kept in elements when they reach
* %GST_STATE_NULL, non-persistent ones will be removed.
* Also, a non-persistent context won't override a previous persistent
* @context_type: Context type
* @persistent: Persistent context
*
- * Create a new context.
+ * Creates a new context.
*
* Returns: (transfer full): The new context.
*
* gst_context_get_context_type:
* @context: The #GstContext.
*
- * Get the type of @context.
+ * Gets the type of @context.
*
* Returns: The type of the context.
*
* gst_context_get_structure:
* @context: The #GstContext.
*
- * Access the structure of the context.
+ * Accesses the structure of the context.
*
* Returns: (transfer none): The structure of the context. The structure is
* still owned by the context, which means that you should not modify it,
* gst_context_writable_structure:
* @context: The #GstContext.
*
- * Get a writable version of the structure.
+ * Gets a writable version of the structure.
*
* Returns: The structure of the context. The structure is still
* owned by the context, which means that you should not free it and
* gst_context_is_persistent:
* @context: The #GstContext.
*
- * Check if @context is persistent.
+ * Checks if @context is persistent.
*
* Returns: %TRUE if the context is persistent.
*
* @title: GstControlBinding
* @short_description: attachment for control source sources
*
- * A base class for value mapping objects that attaches control sources to gobject
+ * A base class for value mapping objects that attaches control sources to #GObject
* properties. Such an object is taking one or more #GstControlSource instances,
* combines them and maps the resulting value to the type and value range of the
* bound property.
* @last_sync: the last time this was called
*
* Sets the property of the @object, according to the #GstControlSources that
- * handle them and for the given timestamp.
+ * handles it and for the given timestamp.
*
* If this function fails, it is most likely the application developers fault.
* Most probably the control sources are not setup correctly.
* @values: (array length=n_values): array to put control-values in
*
* Gets a number of values for the given controlled property starting at the
- * requested time. The array @values need to hold enough space for @n_values of
+ * requested time. The array @values needs to hold enough space for @n_values of
* the same type as the objects property's type.
*
* This function is useful if one wants to e.g. draw a graph of the control
* gst_control_binding_is_disabled:
* @binding: the control binding
*
- * Check if the control binding is disabled.
+ * Checks if the control binding is disabled.
*
* Returns: %TRUE if the binding is inactive
*/
/**
* GstControlBinding:
+ * @parent: the parent structure
* @name: name of the property of this binding
* @pspec: #GParamSpec for this property
*
union {
struct {
+ /*< private >*/
GstControlBindingPrivate *priv;
} abi;
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
} ABI;
};
/**
* GstControlBindingClass:
* @parent_class: Parent class
- * @sync_values: implementation for updating the target values
- * @get_value: implementation to fetch a single control-value
- * @get_value_array: implementation to fetch a series of control-values
- * @get_g_value_array: implementation to fetch a series of control-values
- * as g_values
*
* The class structure of #GstControlBinding.
*/
GstObjectClass parent_class;
/*< public >*/
+
+ /**
+ * GstControlBindingClass::sync_values:
+ * @binding: the control binding
+ * @object: the object that has controlled properties
+ * @timestamp: the time that should be processed
+ * @last_sync: the last time this was called
+ *
+ * Update the target values
+ *
+ * Returns: %TRUE if the controller value could be applied to the object
+ * property, %FALSE otherwise
+ */
gboolean (* sync_values) (GstControlBinding *binding, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
+
+ /**
+ * GstControlBindingClass::get_value:
+ * @binding: the control binding
+ * @timestamp: the time the control-change should be read from
+ *
+ * Fetch a single control-value
+ *
+ * Returns: (nullable): the GValue of the property at the given time,
+ * or %NULL if the property isn't controlled.
+ */
GValue * (* get_value) (GstControlBinding *binding, GstClockTime timestamp);
+
+ /**
+ * GstControlBindingClass::get_value_array:
+ * @binding: the control binding
+ * @timestamp: the time that should be processed
+ * @interval: the time spacing between subsequent values
+ * @n_values: the number of values
+ * @values: (array length=n_values): array to put control-values in
+ *
+ * Fetch a series of control-values
+ *
+ * Returns: %TRUE if the given array could be filled, %FALSE otherwise
+ */
gboolean (* get_value_array) (GstControlBinding *binding, GstClockTime timestamp,GstClockTime interval, guint n_values, gpointer values);
+
+ /**
+ * GstControlBindingClass::get_g_value_array:
+ * @binding: the control binding
+ * @timestamp: the time that should be processed
+ * @interval: the time spacing between subsequent values
+ * @n_values: the number of values
+ * @values: (array length=n_values): array to put control-values in
+ *
+ * Fetch a series of control-values as g_values
+ *
+ * Returns: %TRUE if the given array could be filled, %FALSE otherwise
+ */
gboolean (* get_g_value_array) (GstControlBinding *binding, GstClockTime timestamp,GstClockTime interval, guint n_values, GValue *values);
/*< private >*/