Sets our main struct and passes it to the parent class.
Creates a new #GstBufferPool instance.
Acquire a buffer from @pool. @buffer should point to a memory location that can hold a pointer to the new buffer.
Get the main Gtk struct
Get a copy of the current configuration of the pool. This configuration can either be modified and used for the gst_buffer_pool_set_config() call or it must be freed after usage.
Get a %NULL terminated array of string with supported bufferpool options for @pool. An option would typically be enabled with gst_buffer_pool_config_add_option().
the main Gtk struct as a void*
Check if the bufferpool supports @option.
Check if @pool is active. A pool can be activated with the gst_buffer_pool_set_active() call.
Release @buffer to @pool. @buffer should have previously been allocated from @pool with gst_buffer_pool_acquire_buffer().
Control the active state of @pool. When the pool is inactive, new calls to gst_buffer_pool_acquire_buffer() will return with %GST_FLOW_FLUSHING.
Set the configuration of the pool. If the pool is already configured, and the configuration haven't change, this function will return %TRUE. If the pool is active, this method will return %FALSE and active configuration will remain. Buffers allocated form this pool must be returned or else this function will do nothing and return %FALSE.
Enable or disable the flushing state of a @pool without freeing or allocating buffers.
Enabled the option in @config. This will instruct the @bufferpool to enable the specified option on the buffers that it allocates.
Get the @allocator and @params from @config.
Parse an available @config and get the option at @index of the options API array.
Get the configuration values from @config.
Check if @config contains @option.
Retrieve the number of values currently stored in the options array of the @config structure.
Set the @allocator and @params on @config.
Configure @config with the given parameters.
Validate that changes made to @config are still valid in the context of the expected parameters. This function is a helper that can be used to validate changes made by a pool to a config when gst_buffer_pool_set_config() returns %FALSE. This expects that @caps haven't changed and that @min_buffers aren't lower then what we initially expected. This does not check if options or allocator parameters are still valid, won't check if size have changed, since changing the size is valid to adapt padding.
the main Gtk struct
the main Gtk struct
Get the main Gtk struct
the main Gtk struct as a void*
Checks to see if there is any object named @name in @list. This function does not do any locking of any kind. You might want to protect the provided list with the lock of the owner of the list. This function will lock each #GstObject in the list to compare the name, so be careful when passing a list with a locked object.
A default deep_notify signal callback for an object. The user data should contain a pointer to an array of strings that should be excluded from the notify. The default handler will print the new value of the property using g_print.
Increase the reference count of @object, and possibly remove the floating reference, if @object has a floating reference.
Atomically modifies a pointer to point to a new object. The reference count of @oldobj is decreased and the reference count of @newobj is increased.
Attach the #GstControlBinding to the object. If there already was a #GstControlBinding for this property it will be replaced.
A default error function that uses g_printerr() to display the error message and the optional debug sting..
Gets the corresponding #GstControlBinding for the property. This should be unreferenced again after use.
Obtain the control-rate for this @object. Audio processing #GstElement objects will use this rate to sub-divide their processing loop and call gst_object_sync_values() inbetween. The length of the processing segment should be up to @control-rate nanoseconds.
Gets a number of #GValues for the given controlled property starting at the requested time. The array @values need to hold enough space for @n_values of #GValue.
Returns a copy of the name of @object. Caller should g_free() the return value after usage. For a nameless object, this returns %NULL, which you can safely g_free() as well.
Returns the parent of @object. This function increases the refcount of the parent object so you should gst_object_unref() it after usage.
Generates a string describing the path of @object in the object hierarchy. Only useful (or used) for debugging.
Gets the value for the given controlled property at the requested time.
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 the same type as the objects property's type.
Check if the @object has active controlled properties.
Check if @object has an ancestor @ancestor somewhere up in the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.
Check if @object has an ancestor @ancestor somewhere up in the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.
Check if @parent is the parent of @object. E.g. a #GstElement can check if it owns a given #GstPad.
Increments the reference count on @object. This function does not take the lock on @object because it relies on atomic refcounting.
Removes the corresponding #GstControlBinding. If it was the last ref of the binding, it will be disposed.
This function is used to disable the control bindings on a property for some time, i.e. gst_object_sync_values() will do nothing for the property.
This function is used to disable all controlled properties of the @object for some time, i.e. gst_object_sync_values() will do nothing.
Change the control-rate for this @object. Audio processing #GstElement objects will use this rate to sub-divide their processing loop and call gst_object_sync_values() inbetween. The length of the processing segment should be up to @control-rate nanoseconds.
Sets the name of @object, or gives @object 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.
Sets the parent of @object to @parent. The object's reference count will be incremented, and any floating reference will be removed (see gst_object_ref_sink()).
Returns a suggestion for timestamps where buffers should be split to get best controller results.
Sets the properties of the object, according to the #GstControlSources that (maybe) handle them and for the given timestamp.
Clear the parent of @object, removing the associated reference. This function decreases the refcount of @object.
Decrements the reference count on @object. If reference count hits zero, destroy @object. This function does not take the lock on @object as it relies on atomic refcounting.
The deep notify signal is used to be notified of property changes. It is typically attached to the toplevel bin to receive notifications from all the elements contained in that bin.
A #GstBufferPool is an object that can be used to pre-allocate and recycle buffers of the same size and with the same properties.
A #GstBufferPool is created with gst_buffer_pool_new().
Once a pool is created, it needs to be configured. A call to gst_buffer_pool_get_config() returns the current configuration structure from the pool. With gst_buffer_pool_config_set_params() and gst_buffer_pool_config_set_allocator() the bufferpool parameters and allocator can be configured. Other properties can be configured in the pool depending on the pool implementation.
A bufferpool can have extra options that can be enabled with gst_buffer_pool_config_add_option(). The available options can be retrieved with gst_buffer_pool_get_options(). Some options allow for additional configuration properties to be set.
After the configuration structure has been configured, gst_buffer_pool_set_config() updates the configuration in the pool. This can fail when the configuration structure is not accepted.
After the a pool has been configured, it can be activated with gst_buffer_pool_set_active(). This will preallocate the configured resources in the pool.
When the pool is active, gst_buffer_pool_acquire_buffer() can be used to retrieve a buffer from the pool.
Buffers allocated from a bufferpool will automatically be returned to the pool with gst_buffer_pool_release_buffer() when their refcount drops to 0.
The bufferpool can be deactivated again with gst_buffer_pool_set_active(). All further gst_buffer_pool_acquire_buffer() calls will return an error. When all buffers are returned to the pool they will be freed.
Use gst_object_unref() to release the reference to a bufferpool. If the refcount of the pool reaches 0, the pool will be freed.