manpagez: man pages & more
html files: gst-plugins-base-libs-1.0
Home | html | info | man

GstGLBaseMemory

GstGLBaseMemory — memory subclass for GL buffers

Object Hierarchy

    GBoxed
    ╰── GstGLAllocationParams
    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstAllocator
                ╰── GstGLBaseMemoryAllocator
                    ├── GstGLBufferAllocator
                    ├── GstGLMemoryAllocator
                    ╰── GstGLRenderbufferAllocator

Includes

#include <gst/gl/gl.h>

Description

GstGLBaseMemory is a GstMemory subclass providing the basis of support for the mapping of GL buffers.

Data is uploaded or downloaded from the GPU as is necessary.

Functions

GstGLAllocationParamsCopyFunc ()

void
(*GstGLAllocationParamsCopyFunc) (GstGLAllocationParams *src,
                                  GstGLAllocationParams *dest);

Copies the parameters from src into dest . The subclass must compose copy functions from the superclass.

Parameters

src

the source GstGLAllocationParams to copy from

 

dest

the source GstGLAllocationParams to copy

 

GstGLAllocationParamsFreeFunc ()

void
(*GstGLAllocationParamsFreeFunc) (gpointer params);

Free any dynamically allocated data. The subclass must call the superclass' free.

Parameters

params

a GstGLAllocationParams

 

gst_gl_allocation_params_init ()

gboolean
gst_gl_allocation_params_init (GstGLAllocationParams *params,
                               gsize struct_size,
                               guint alloc_flags,
                               GstGLAllocationParamsCopyFunc copy,
                               GstGLAllocationParamsFreeFunc free,
                               GstGLContext *context,
                               gsize alloc_size,
                               GstAllocationParams *alloc_params,
                               gpointer wrapped_data,
                               gpointer gl_handle,
                               gpointer user_data,
                               GDestroyNotify notify);

notify will be called once for each allocated memory using these params when freeing the memory.

[skip]

Parameters

params

the GstGLAllocationParams to initialize

 

struct_size

the struct size of the implementation

 

alloc_flags

some alloc flags

 

copy

a copy function

 

free

a free function

 

context

a GstGLContext.

[transfer none]

alloc_size

the number of bytes to allocate.

 

alloc_params

a GstAllocationParams to apply.

[transfer none][allow-none]

wrapped_data

a sysmem data pointer to initialize the allocation with.

[transfer none][allow-none]

gl_handle

a GL handle to initialize the allocation with.

[transfer none]

user_data

user data to call notify with.

[transfer none][allow-none]

notify

a GDestroyNotify.

[allow-none]

Returns

whether the paramaters could be initialized

Since: 1.8


gst_gl_allocation_params_copy ()

GstGLAllocationParams *
gst_gl_allocation_params_copy (GstGLAllocationParams *src);

Parameters

src

the GstGLAllocationParams to initialize

 

Returns

a copy of the GstGLAllocationParams specified by src or NULL on failure.

[transfer full]

Since: 1.8


gst_gl_allocation_params_free ()

void
gst_gl_allocation_params_free (GstGLAllocationParams *params);

Frees the GstGLAllocationParams and all associated data.

Parameters

params

the GstGLAllocationParams to initialize

 

Since: 1.8


gst_gl_allocation_params_free_data ()

void
gst_gl_allocation_params_free_data (GstGLAllocationParams *params);

Frees the dynamically allocated data in params . Direct subclasses should call this function in their own overriden free function.

Parameters

params

the source GstGLAllocationParams

 

Since: 1.8


gst_gl_allocation_params_copy_data ()

void
gst_gl_allocation_params_copy_data (GstGLAllocationParams *src,
                                    GstGLAllocationParams *dest);

Copies the dynamically allocated data from src to dest . Direct subclasses should call this function in their own overriden copy function.

Parameters

src

the source GstGLAllocationParams

 

dest

the destination GstGLAllocationParams

 

Since: 1.8


gst_gl_base_memory_init_once ()

void
gst_gl_base_memory_init_once (void);

Initializes the GL Base Memory allocator. It is safe to call this function multiple times. This must be called before any other GstGLBaseMemory operation.

Since: 1.8


gst_gl_base_memory_init ()

void
gst_gl_base_memory_init (GstGLBaseMemory *mem,
                         GstAllocator *allocator,
                         GstMemory *parent,
                         GstGLContext *context,
                         GstAllocationParams *params,
                         gsize size,
                         gpointer user_data,
                         GDestroyNotify notify);

Initializes mem with the required parameters

Parameters

mem

the GstGLBaseMemory to initialize

 

allocator

the GstAllocator to initialize with

 

parent

the parent GstMemory to initialize with.

[allow-none]

context

the GstGLContext to initialize with

 

params

the GstAllocationParams to initialize with.

[allow-none]

size

the number of bytes to be allocated

 

user_data

user data to call notify with.

[allow-none]

notify

a GDestroyNotify.

[allow-none]

Since: 1.8


gst_is_gl_base_memory ()

gboolean
gst_is_gl_base_memory (GstMemory *mem);

Parameters

mem

a GstMemory

 

Returns

whether the memory at mem is a GstGLBaseMemory

Since: 1.8


GstGLBaseMemoryAllocatorAllocFunction ()

GstGLBaseMemory *
(*GstGLBaseMemoryAllocatorAllocFunction)
                               (GstGLBaseMemoryAllocator *allocator,
                                GstGLAllocationParams *params);

Note: not called with a GL context current

Parameters

allocator

a GstGLBaseMemoryAllocator

 

params

the GstGLAllocationParams to allocate the memory with

 

Returns

a newly allocated GstGLBaseMemory from allocator and params

Since: 1.8


GstGLBaseMemoryAllocatorCreateFunction ()

gboolean
(*GstGLBaseMemoryAllocatorCreateFunction)
                               (GstGLBaseMemory *mem,
                                GError **error);

As this virtual method is called with an OpenGL context current, use this function to allocate and OpenGL resources needed for your application

Parameters

mem

a GstGLBaseMemory

 

error

a GError to use on failure

 

Returns

whether the creation succeeded

Since: 1.8


GstGLBaseMemoryAllocatorMapFunction ()

gpointer
(*GstGLBaseMemoryAllocatorMapFunction)
                               (GstGLBaseMemory *mem,
                                GstMapInfo *info,
                                gsize maxsize);

Also see gst_memory_map();

Parameters

mem

a GstGLBaseMemory

 

info

a GstMapInfo to map with

 

maxsize

the size to map

 

Returns

the mapped pointer

Since: 1.8


GstGLBaseMemoryAllocatorUnmapFunction ()

void
(*GstGLBaseMemoryAllocatorUnmapFunction)
                               (GstGLBaseMemory *mem,
                                GstMapInfo *info);

Also see gst_memory_unmap();

Parameters

mem

a GstGLBaseMemory

 

info

a GstMapInfo to map with

 

Since: 1.8


GstGLBaseMemoryAllocatorCopyFunction ()

GstGLBaseMemory *
(*GstGLBaseMemoryAllocatorCopyFunction)
                               (GstGLBaseMemory *mem,
                                gssize offset,
                                gssize size);

Also see gst_memory_copy();

Parameters

mem

a GstGLBaseMemory

 

offset

the offset to copy from

 

size

the number of bytes to copy

 

Returns

the newly copied GstGLMemory or NULL

Since: 1.8


GstGLBaseMemoryAllocatorDestroyFunction ()

void
(*GstGLBaseMemoryAllocatorDestroyFunction)
                               (GstGLBaseMemory *mem);

Destroy any resources allocated throughout the lifetime of mem

Parameters

mem

a GstGLBaseMemory

 

Since: 1.8


gst_gl_base_memory_alloc ()

GstGLBaseMemory *
gst_gl_base_memory_alloc (GstGLBaseMemoryAllocator *allocator,
                          GstGLAllocationParams *params);

Parameters

allocator

a GstGLBaseMemoryAllocator

 

params

the GstGLAllocationParams to allocate the memory with

 

Returns

a new GstGLBaseMemory from allocator with the requested params .

Since: 1.8


gst_gl_base_memory_alloc_data ()

gboolean
gst_gl_base_memory_alloc_data (GstGLBaseMemory *gl_mem);

Note: only intended for subclass usage to allocate the sytem memory buffer on demand. If there is already a non-NULL data pointer in gl_mem->data , then this function imply returns TRUE.

Parameters

gl_mem

a GstGLBaseMemory

 

Returns

whether the system memory could be allocated


gst_gl_base_memory_memcpy ()

gboolean
gst_gl_base_memory_memcpy (GstGLBaseMemory *src,
                           GstGLBaseMemory *dest,
                           gssize offset,
                           gssize size);

Parameters

src

the source GstGLBaseMemory

 

dest

the destination GstGLBaseMemory

 

offset

the offset to start at

 

size

the number of bytes to copy

 

Returns

whether the copy suceeded.

Since: 1.8

Types and Values

GstGLBaseMemoryAllocator

typedef struct _GstGLBaseMemoryAllocator GstGLBaseMemoryAllocator;

Opaque GstGLBaseMemoryAllocator struct

Since: 1.8


GstGLBaseMemoryAllocatorClass

typedef struct {
  GstAllocatorClass parent_class;

  GstGLBaseMemoryAllocatorAllocFunction         alloc;

  GstGLBaseMemoryAllocatorCreateFunction        create;
  GstGLBaseMemoryAllocatorMapFunction           map;
  GstGLBaseMemoryAllocatorUnmapFunction         unmap;
  GstGLBaseMemoryAllocatorCopyFunction          copy;
  GstGLBaseMemoryAllocatorDestroyFunction       destroy;
} GstGLBaseMemoryAllocatorClass;

Since: 1.8


GST_GL_BASE_MEMORY_ALLOCATOR_NAME

#define GST_GL_BASE_MEMORY_ALLOCATOR_NAME   "GLBaseMemory"

The name of the GL buffer allocator

Since: 1.8


GST_MAP_GL

#define GST_MAP_GL (GST_MAP_FLAG_LAST << 1)

Flag indicating that we should map the GL object instead of to system memory.

Combining GST_MAP_GL with GST_MAP_WRITE has the same semantics as though you are writing to OpenGL. Conversely, combining GST_MAP_GL with GST_MAP_READ has the same semantics as though you are reading from OpenGL.


enum GstGLBaseMemoryError

Members

GST_GL_BASE_MEMORY_ERROR_FAILED

generic faliure

 

GST_GL_BASE_MEMORY_ERROR_OLD_LIBS

the implementation is too old and doesn't implement enough features

 

GST_GL_BASE_MEMORY_ERROR_RESOURCE_UNAVAILABLE

a resource could not be found

 

GST_GL_BASE_MEMORY_ERROR

#define GST_GL_BASE_MEMORY_ERROR (gst_gl_base_memory_error_quark ())

Error domain for GStreamer's GL memory module. Errors in this domain will be from the GstGLBaseMemoryError enumeration


enum GstGLBaseMemoryTransfer

Members

GST_GL_BASE_MEMORY_TRANSFER_NEED_DOWNLOAD

the texture needs downloading to the data pointer

 

GST_GL_BASE_MEMORY_TRANSFER_NEED_UPLOAD

the data pointer needs uploading to the texture

 

struct GstGLAllocationParams

struct GstGLAllocationParams {
  gsize                             struct_size;
  GstGLAllocationParamsCopyFunc     copy;
  GstGLAllocationParamsFreeFunc     free;

  guint                             alloc_flags;
  gsize                             alloc_size;
  GstAllocationParams              *alloc_params;
  GstGLContext                     *context;
  GDestroyNotify                    notify;
  gpointer                          user_data;

  /* GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM only */
  gpointer                          wrapped_data;
  /* GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE only */
  gpointer                          gl_handle;
};

Members

gsize struct_size;

the size of the struct (including and subclass data)

 

GstGLAllocationParamsCopyFunc copy;

a GstGLAllocationParamsCopyFunc

 

GstGLAllocationParamsFreeFunc free;

a GstGLAllocationParamsFreeFunc

 

guint alloc_flags;

allocation flags

 

gsize alloc_size;

the allocation size

 

GstAllocationParams *alloc_params;

the GstAllocationParams

 

GstGLContext *context;

a GstGLContext

 

GDestroyNotify notify;

a GDestroyNotify

 

gpointer user_data;

argument to call notify with

 

gpointer wrapped_data;

the wrapped data pointer

 

gpointer gl_handle;

the wrapped OpenGL handle

 

GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_ALLOC

#define GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_ALLOC (1 << 0)

GL Allocation flag indicating that the implementation should allocate the necessary resources.


GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM

#define GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM (1 << 1)

GL Allocation flag for using the provided system memory data as storage.


GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE

#define GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE (1 << 2)

GL Allocation flag for using the provided GPU handle as storage.


GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_USER

#define GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_USER (1 << 16)

Values >= than GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_USER can be used for user-defined purposes.


GstGLBaseMemory

typedef struct {
  GstMemory             mem;

  GstGLContext         *context;
} GstGLBaseMemory;

Represents information about a GL memory object

Members

GstMemory mem;

the parent object

 

GstGLContext *context;

the GstGLContext to use for GL operations

 
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.