Top |
Functions
GstAllocator * | gst_allocator_find () |
void | gst_allocator_register () |
void | gst_allocator_set_default () |
void | gst_allocation_params_init () |
GstAllocationParams * | gst_allocation_params_copy () |
void | gst_allocation_params_free () |
GstMemory * | gst_allocator_alloc () |
void | gst_allocator_free () |
GstMemory * | gst_memory_new_wrapped () |
Types and Values
extern | gst_memory_alignment |
GstAllocator | |
struct | GstAllocatorClass |
enum | GstAllocatorFlags |
struct | GstAllocationParams |
#define | GST_ALLOCATOR_SYSMEM |
Object Hierarchy
GBoxed ╰── GstAllocationParams GObject ╰── GInitiallyUnowned ╰── GstObject ╰── GstAllocator
Description
Memory is usually created by allocators with a gst_allocator_alloc()
method call. When NULL
is used as the allocator, the default allocator will
be used.
New allocators can be registered with gst_allocator_register()
.
Allocators are identified by name and can be retrieved with
gst_allocator_find()
. gst_allocator_set_default()
can be used to change the
default allocator.
New memory can be created with gst_memory_new_wrapped()
that wraps the memory
allocated elsewhere.
Functions
gst_allocator_find ()
GstAllocator *
gst_allocator_find (const gchar *name
);
Find a previously registered allocator with name
. When name
is NULL
, the
default allocator will be returned.
Returns
a GstAllocator or NULL
when
the allocator with name
was not registered. Use gst_object_unref()
to release the allocator after usage.
[transfer full][nullable]
gst_allocator_register ()
void gst_allocator_register (const gchar *name
,GstAllocator *allocator
);
Registers the memory allocator
with name
. This function takes ownership of
allocator
.
gst_allocator_set_default ()
void
gst_allocator_set_default (GstAllocator *allocator
);
Set the default allocator. This function takes ownership of allocator
.
gst_allocation_params_init ()
void
gst_allocation_params_init (GstAllocationParams *params
);
Initialize params
to its default values
gst_allocation_params_copy ()
GstAllocationParams *
gst_allocation_params_copy (const GstAllocationParams *params
);
Create a copy of params
.
Free-function: gst_allocation_params_free
gst_allocation_params_free ()
void
gst_allocation_params_free (GstAllocationParams *params
);
Free params
gst_allocator_alloc ()
GstMemory * gst_allocator_alloc (GstAllocator *allocator
,gsize size
,GstAllocationParams *params
);
Use allocator
to allocate a new memory block with memory that is at least
size
big.
The optional params
can specify the prefix and padding for the memory. If
NULL
is passed, no flags, no extra prefix/padding and a default alignment is
used.
The prefix/padding will be filled with 0 if flags contains GST_MEMORY_FLAG_ZERO_PREFIXED and GST_MEMORY_FLAG_ZERO_PADDED respectively.
When allocator
is NULL
, the default allocator will be used.
The alignment in params
is given as a bitmask so that align
+ 1 equals
the amount of bytes to align to. For example, to align to 8 bytes,
use an alignment of 7.
Parameters
allocator |
a GstAllocator to use. |
[transfer none][allow-none] |
size |
size of the visible memory area |
|
params |
optional parameters. |
[transfer none][allow-none] |
gst_allocator_free ()
void gst_allocator_free (GstAllocator *allocator
,GstMemory *memory
);
Free memory
that was previously allocated with gst_allocator_alloc()
.
Parameters
allocator |
a GstAllocator to use. |
[transfer none] |
memory |
the memory to free. |
[transfer full] |
gst_memory_new_wrapped ()
GstMemory * gst_memory_new_wrapped (GstMemoryFlags flags
,gpointer data
,gsize maxsize
,gsize offset
,gsize size
,gpointer user_data
,GDestroyNotify notify
);
Allocate a new memory block that wraps the given data
.
The prefix/padding must be filled with 0 if flags
contains
GST_MEMORY_FLAG_ZERO_PREFIXED and GST_MEMORY_FLAG_ZERO_PADDED respectively.
Parameters
flags |
||
data |
data to wrap. |
[array length=size][element-type guint8][transfer none] |
maxsize |
allocated size of |
|
offset |
offset in |
|
size |
size of valid data |
|
user_data |
user_data. |
[allow-none] |
notify |
called with |
[allow-none][scope async][closure user_data] |
Types and Values
gst_memory_alignment
GST_EXPORT gsize gst_memory_alignment;
The default memory alignment in bytes - 1
an alignment of 7 would be the same as what malloc()
guarantees.
GstAllocator
typedef struct { GstMemoryMapFunction mem_map; GstMemoryUnmapFunction mem_unmap; GstMemoryCopyFunction mem_copy; GstMemoryShareFunction mem_share; GstMemoryIsSpanFunction mem_is_span; } GstAllocator;
The GstAllocator is used to create new memory.
Members
GstMemoryMapFunction |
the implementation of the GstMemoryMapFunction |
|
GstMemoryUnmapFunction |
the implementation of the GstMemoryUnmapFunction |
|
GstMemoryCopyFunction |
the implementation of the GstMemoryCopyFunction |
|
GstMemoryShareFunction |
the implementation of the GstMemoryShareFunction |
|
GstMemoryIsSpanFunction |
the implementation of the GstMemoryIsSpanFunction |
struct GstAllocatorClass
struct GstAllocatorClass { GstObjectClass object_class; GstMemory * (*alloc) (GstAllocator *allocator, gsize size, GstAllocationParams *params); void (*free) (GstAllocator *allocator, GstMemory *memory); };
The GstAllocator is used to create new memory.
Members
GstObjectClass |
Object parent class |
|
implementation that acquires memory |
||
implementation that releases memory |
struct GstAllocationParams
struct GstAllocationParams { GstMemoryFlags flags; gsize align; gsize prefix; gsize padding; };
Parameters to control the allocation of memory
Members
GstMemoryFlags |
flags to control allocation |
|
the desired alignment of the memory |
||
the desired prefix |
||
the desired padding |