Top |
Functions
Types and Values
Object Hierarchy
GBoxed ╰── GstGLAllocationParams GObject ╰── GInitiallyUnowned ╰── GstObject ╰── GstAllocator ╰── GstGLBaseMemoryAllocator ├── GstGLBufferAllocator ├── GstGLMemoryAllocator ╰── GstGLRenderbufferAllocator
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.
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 |
[transfer none][allow-none] |
notify |
[allow-none] |
Since: 1.8
gst_gl_allocation_params_copy ()
GstGLAllocationParams *
gst_gl_allocation_params_copy (GstGLAllocationParams *src
);
Since: 1.8
gst_gl_allocation_params_free ()
void
gst_gl_allocation_params_free (GstGLAllocationParams *params
);
Frees the GstGLAllocationParams and all associated data.
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.
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.
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 |
[allow-none] |
size |
the number of bytes to be allocated |
|
user_data |
user data to call |
[allow-none] |
notify |
[allow-none] |
Since: 1.8
GstGLBaseMemoryAllocatorAllocFunction ()
GstGLBaseMemory * (*GstGLBaseMemoryAllocatorAllocFunction) (GstGLBaseMemoryAllocator *allocator
,GstGLAllocationParams *params
);
Note: not called with a GL context current
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
Since: 1.8
GstGLBaseMemoryAllocatorMapFunction ()
gpointer (*GstGLBaseMemoryAllocatorMapFunction) (GstGLBaseMemory *mem
,GstMapInfo *info
,gsize maxsize
);
Also see gst_memory_map()
;
Since: 1.8
GstGLBaseMemoryAllocatorUnmapFunction ()
void (*GstGLBaseMemoryAllocatorUnmapFunction) (GstGLBaseMemory *mem
,GstMapInfo *info
);
Also see gst_memory_unmap()
;
Since: 1.8
GstGLBaseMemoryAllocatorCopyFunction ()
GstGLBaseMemory * (*GstGLBaseMemoryAllocatorCopyFunction) (GstGLBaseMemory *mem
,gssize offset
,gssize size
);
Also see gst_memory_copy()
;
Since: 1.8
GstGLBaseMemoryAllocatorDestroyFunction ()
void
(*GstGLBaseMemoryAllocatorDestroyFunction)
(GstGLBaseMemory *mem
);
Destroy any resources allocated throughout the lifetime of mem
Since: 1.8
gst_gl_base_memory_alloc ()
GstGLBaseMemory * gst_gl_base_memory_alloc (GstGLBaseMemoryAllocator *allocator
,GstGLAllocationParams *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.
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 |
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.
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
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 |
the size of the struct (including and subclass data) |
|
guint |
allocation flags |
|
gsize |
the allocation size |
|
GstAllocationParams * |
||
GstGLContext * |
||
GDestroyNotify |
||
gpointer |
argument to call |
|
gpointer |
the wrapped data pointer |
|
gpointer |
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 |
the parent object |
|
GstGLContext * |
the GstGLContext to use for GL operations |