GstAllocator

GstAllocator — allocate memory blocks

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstAllocator

Includes

#include <gst/gst.h>

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.

Last reviewed on 2012-07-09 (0.11.3)

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.

Parameters

name

the name of the allocator.

[allow-none]

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]


gst_allocator_register ()

void
gst_allocator_register (const gchar *name,
                        GstAllocator *allocator);

Registers the memory allocator with name . This function takes ownership of allocator .

Parameters

name

the name of the allocator

 

allocator

GstAllocator.

[transfer full]

gst_allocator_set_default ()

void
gst_allocator_set_default (GstAllocator *allocator);

Set the default allocator. This function takes ownership of allocator .

Parameters

allocator

a GstAllocator.

[transfer full]

gst_allocation_params_init ()

void
gst_allocation_params_init (GstAllocationParams *params);

Initialize params to its default values

Parameters

params

a GstAllocationParams

 

gst_allocation_params_copy ()

GstAllocationParams *
gst_allocation_params_copy (const GstAllocationParams *params);

Create a copy of params .

Free-function: gst_allocation_params_free

Parameters

params

a GstAllocationParams.

[transfer none]

Returns

a new #GstAllocationParams, free with gst_allocation_params_free().

[transfer full]


gst_allocation_params_free ()

void
gst_allocation_params_free (GstAllocationParams *params);

Free params

Parameters

params

a GstAllocationParams.

[in][transfer full]

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]

Returns

a new GstMemory.

[transfer full]


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

GstMemoryFlags

 

data

data to wrap.

[array length=size][element-type guint8][transfer none]

maxsize

allocated size of data

 

offset

offset in data

 

size

size of valid data

 

user_data

user_data.

[allow-none]

notify

called with user_data when the memory is freed.

[allow-none][scope async][closure user_data]

Returns

a new GstMemory.

[transfer full]

Types and Values

GstAllocator

typedef struct _GstAllocator GstAllocator;

The GstAllocator is used to create new memory.

Members


enum GstAllocatorFlags

Flags for allocators.

Members

GST_ALLOCATOR_FLAG_CUSTOM_ALLOC

The allocator has a custom alloc function.

 

GST_ALLOCATOR_FLAG_LAST

first flag that can be used for custom purposes

 

struct GstAllocationParams

struct GstAllocationParams {
  GstMemoryFlags flags;
  gsize          align;
  gsize          prefix;
  gsize          padding;
};

Parameters to control the allocation of memory

Members

GstMemoryFlags flags;

flags to control allocation

 

gsize align;

the desired alignment of the memory

 

gsize prefix;

the desired prefix

 

gsize padding;

the desired padding

 

GST_ALLOCATOR_SYSMEM

#define GST_ALLOCATOR_SYSMEM   "SystemMemory"

The allocator name for the default system memory allocator

See Also

GstMemory