Gst.BufferPool¶
- Subclasses:
None
Methods¶
- Inherited:
- Structs:
class |
|
class |
|
class |
|
class |
|
class |
|
class |
|
class |
|
class |
|
class |
|
class |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Virtual Methods¶
- Inherited:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Properties¶
- Inherited:
Signals¶
- Inherited:
Fields¶
- Inherited:
Name |
Type |
Access |
Description |
---|---|---|---|
flushing |
r |
whether the pool is currently gathering back outstanding buffers |
|
object |
r |
the parent structure |
Class Details¶
- class Gst.BufferPool(**kwargs)¶
- Bases:
- Abstract:
No
- Structure:
A
Gst.BufferPool
is an object that can be used to pre-allocate and recycle buffers of the same size and with the same properties.A
Gst.BufferPool
is created withGst.BufferPool.new
().Once a pool is created, it needs to be configured. A call to
Gst.BufferPool.get_config
() returns the current configuration structure from the pool. WithGst.BufferPool.config_set_params
() andGst.BufferPool.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.BufferPool.config_add_option
(). The available options can be retrieved withGst.BufferPool.get_options
(). Some options allow for additional configuration properties to be set.After the configuration structure has been configured,
Gst.BufferPool.set_config
() updates the configuration in the pool. This can fail when the configuration structure is not accepted.After the pool has been configured, it can be activated with
Gst.BufferPool.set_active
(). This will preallocate the configured resources in the pool.When the pool is active,
Gst.BufferPool.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.BufferPool.release_buffer
() when their refcount drops to 0.The bufferpool can be deactivated again with
Gst.BufferPool.set_active
(). All furtherGst.BufferPool.acquire_buffer
() calls will return an error. When all buffers are returned to the pool they will be freed.- classmethod config_add_option(config, option)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configurationoption (
str
) – an option to add
Enables the option in config. This will instruct the bufferpool to enable the specified option on the buffers that it allocates.
The options supported by pool can be retrieved with
Gst.BufferPool.get_options
().
- classmethod config_get_allocator(config)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configuration- Returns:
True
, if the values are set.- allocator:
a
Gst.Allocator
, orNone
- params:
- Return type:
(
bool
, allocator:Gst.Allocator
orNone
, params:Gst.AllocationParams
)
Gets the allocator and params from config.
- classmethod config_get_option(config, index)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configurationindex (
int
) – position in the option array to read
- Returns:
the option at index.
- Return type:
Parses an available config and gets the option at index of the options API array.
- classmethod config_get_params(config)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configuration- Returns:
True
if all parameters could be fetched.- caps:
the caps of buffers
- size:
the size of each buffer, not including prefix and padding
- min_buffers:
the minimum amount of buffers to allocate.
- max_buffers:
the maximum amount of buffers to allocate or 0 for unlimited.
- Return type:
(
bool
, caps:Gst.Caps
orNone
, size:int
, min_buffers:int
, max_buffers:int
)
Gets the configuration values from config.
- classmethod config_has_option(config, option)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configurationoption (
str
) – an option
- Returns:
True
if the options array contains option.- Return type:
Checks if config contains option.
- classmethod config_n_options(config)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configuration- Returns:
the options array size as a
int
.- Return type:
Retrieves the number of values currently stored in the options array of the config structure.
- classmethod config_set_allocator(config, allocator, params)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configurationallocator (
Gst.Allocator
orNone
) – aGst.Allocator
params (
Gst.AllocationParams
orNone
) –Gst.AllocationParams
Sets the allocator and params on config.
One of allocator and params can be
None
, but not both. When allocator isNone
, the default allocator of the pool will use the values in param to perform its allocation. When param isNone
, the pool will use the provided allocator with its defaultGst.AllocationParams
.A call to
Gst.BufferPool.set_config
() can update the allocator and params with the values that it is able to do. Some pools are, for example, not able to operate with different allocators or cannot allocate with the values specified in params. UseGst.BufferPool.get_config
() to get the currently used values.
- classmethod config_set_params(config, caps, size, min_buffers, max_buffers)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configurationsize (
int
) – the size of each buffer, not including prefix and paddingmin_buffers (
int
) – the minimum amount of buffers to allocate.max_buffers (
int
) – the maximum amount of buffers to allocate or 0 for unlimited.
Configures config with the given parameters.
- classmethod config_validate_params(config, caps, size, min_buffers, max_buffers)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.BufferPool
configurationsize (
int
) – the expected size of each buffer, not including prefix and paddingmin_buffers (
int
) – the expected minimum amount of buffers to allocate.max_buffers (
int
) – the expect maximum amount of buffers to allocate or 0 for unlimited.
- Returns:
True
, if the parameters are valid in this context.- Return type:
Validates 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.BufferPool.set_config
() returnsFalse
. 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.New in version 1.4.
- classmethod new()[source]¶
- Returns:
a new
Gst.BufferPool
instance- Return type:
Creates a new
Gst.BufferPool
instance.
- acquire_buffer(params)[source]¶
- Parameters:
params (
Gst.BufferPoolAcquireParams
orNone
) – parameters.- Returns:
a
Gst.FlowReturn
such asGst.FlowReturn.FLUSHING
when the pool is inactive.- buffer:
a location for a
Gst.Buffer
- Return type:
(
Gst.FlowReturn
, buffer:Gst.Buffer
orNone
)
Acquires a buffer from self. buffer should point to a memory location that can hold a pointer to the new buffer. When the pool is empty, this function will by default block until a buffer is released into the pool again or when the pool is set to flushing or deactivated.
params can contain optional parameters to influence the allocation.
- get_config()[source]¶
- Returns:
a copy of the current configuration of self.
- Return type:
Gets a copy of the current configuration of the pool. This configuration can be modified and used for the
Gst.BufferPool.set_config
() call.
- get_options()[source]¶
-
Gets a
None
terminated array of string with supported bufferpool options for self. An option would typically be enabled withGst.BufferPool.config_add_option
().
- has_option(option)[source]¶
-
Checks if the bufferpool supports option.
- is_active()[source]¶
-
Checks if self is active. A pool can be activated with the
Gst.BufferPool.set_active
() call.
- release_buffer(buffer)[source]¶
- Parameters:
buffer (
Gst.Buffer
) – aGst.Buffer
Releases buffer to self. buffer should have previously been allocated from self with
Gst.BufferPool.acquire_buffer
().This function is usually called automatically when the last ref on buffer disappears.
- set_active(active)[source]¶
- Parameters:
active (
bool
) – the new active state- Returns:
False
when the pool was not configured or when preallocation of the buffers failed.- Return type:
Controls the active state of self. When the pool is inactive, new calls to
Gst.BufferPool.acquire_buffer
() will return withGst.FlowReturn.FLUSHING
.Activating the bufferpool will preallocate all resources in the pool based on the configuration of the pool.
Deactivating will free the resources again when there are no outstanding buffers. When there are outstanding buffers, they will be freed as soon as they are all returned to the pool.
- set_config(config)[source]¶
- Parameters:
config (
Gst.Structure
) – aGst.Structure
- Returns:
True
when the configuration could be set.- Return type:
Sets the configuration of the pool. If the pool is already configured, and the configuration hasn’t changed, this function will return
True
. If the pool is active, this method will returnFalse
and active configuration will remain. Buffers allocated from this pool must be returned or else this function will do nothing and returnFalse
.config is a
Gst.Structure
that contains the configuration parameters for the pool. A default and mandatory set of parameters can be configured withGst.BufferPool.config_set_params
(),Gst.BufferPool.config_set_allocator
() andGst.BufferPool.config_add_option
().If the parameters in config can not be set exactly, this function returns
False
and will try to update as much state as possible. The new state can then be retrieved and refined withGst.BufferPool.get_config
().This function takes ownership of config.
- set_flushing(flushing)[source]¶
- Parameters:
flushing (
bool
) – whether to start or stop flushing
Enables or disables the flushing state of a self without freeing or allocating buffers.
New in version 1.4.
- do_acquire_buffer(params) virtual¶
- Parameters:
params (
Gst.BufferPoolAcquireParams
orNone
) – parameters.- Returns:
a
Gst.FlowReturn
such asGst.FlowReturn.FLUSHING
when the pool is inactive.- buffer:
a location for a
Gst.Buffer
- Return type:
(
Gst.FlowReturn
, buffer:Gst.Buffer
orNone
)
Acquires a buffer from pool. buffer should point to a memory location that can hold a pointer to the new buffer. When the pool is empty, this function will by default block until a buffer is released into the pool again or when the pool is set to flushing or deactivated.
params can contain optional parameters to influence the allocation.
- do_alloc_buffer(params) virtual¶
- Parameters:
params (
Gst.BufferPoolAcquireParams
orNone
) – parameters.- Returns:
a
Gst.FlowReturn
to indicate whether the allocation was successful.- buffer:
a location for a
Gst.Buffer
- Return type:
(
Gst.FlowReturn
, buffer:Gst.Buffer
orNone
)
Allocate a buffer. the default implementation allocates buffers from the configured memory allocator and with the configured parameters. All metadata that is present on the allocated buffer will be marked as
Gst.MetaFlags.POOLED
andGst.MetaFlags.LOCKED
and will not be removed from the buffer in #GstBufferPoolClass::reset_buffer. The buffer should have theGst.BufferFlags.TAG_MEMORY
cleared.
- do_flush_start() virtual¶
Enter the flushing state.
New in version 1.4.
- do_flush_stop() virtual¶
Leave the flushing state.
New in version 1.4.
- do_free_buffer(buffer) virtual¶
- Parameters:
buffer (
Gst.Buffer
) – theGst.Buffer
to free
Free a buffer. The default implementation unrefs the buffer.
- do_get_options() virtual¶
-
Gets a
None
terminated array of string with supported bufferpool options for pool. An option would typically be enabled withGst.BufferPool.config_add_option
().
- do_release_buffer(buffer) virtual¶
- Parameters:
buffer (
Gst.Buffer
) – aGst.Buffer
Releases buffer to pool. buffer should have previously been allocated from pool with
Gst.BufferPool.acquire_buffer
().This function is usually called automatically when the last ref on buffer disappears.
- do_reset_buffer(buffer) virtual¶
- Parameters:
buffer (
Gst.Buffer
) – theGst.Buffer
to reset
Reset the buffer to its state when it was freshly allocated. The default implementation will clear the flags, timestamps and will remove the metadata without the
Gst.MetaFlags.POOLED
flag (even the metadata withGst.MetaFlags.LOCKED
). If theGst.BufferFlags.TAG_MEMORY
was set, this function can also try to restore the memory and clear theGst.BufferFlags.TAG_MEMORY
again.
- do_set_config(config) virtual¶
- Parameters:
config (
Gst.Structure
) – aGst.Structure
- Returns:
True
when the configuration could be set.- Return type:
Sets the configuration of the pool. If the pool is already configured, and the configuration hasn’t changed, this function will return
True
. If the pool is active, this method will returnFalse
and active configuration will remain. Buffers allocated from this pool must be returned or else this function will do nothing and returnFalse
.config is a
Gst.Structure
that contains the configuration parameters for the pool. A default and mandatory set of parameters can be configured withGst.BufferPool.config_set_params
(),Gst.BufferPool.config_set_allocator
() andGst.BufferPool.config_add_option
().If the parameters in config can not be set exactly, this function returns
False
and will try to update as much state as possible. The new state can then be retrieved and refined withGst.BufferPool.get_config
().This function takes ownership of config.
- do_start() virtual¶
- Returns:
whether the pool could be started.
- Return type:
Start the bufferpool. The default implementation will preallocate min-buffers buffers and put them in the queue.