![]() |
![]() |
![]() |
GStreamer Bad Plugins 1.0 Library Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
GstGLMemoryPBOAllocator; GstGLMemoryPBOAllocatorClass; #define GST_GL_MEMORY_PBO_ALLOCATOR_NAME GstGLMemoryPBO; gboolean gst_is_gl_memory_pbo (GstMemory *mem
); gboolean gst_gl_memory_pbo_copy_into_texture (GstGLMemoryPBO *gl_mem
,guint tex_id
,GstGLTextureTarget target
,GstVideoGLTextureType tex_type
,gint width
,gint height
,gint stride
,gboolean respecify
); void gst_gl_memory_pbo_download_transfer (GstGLMemoryPBO *gl_mem
); void gst_gl_memory_pbo_init_once (void
); void gst_gl_memory_pbo_upload_transfer (GstGLMemoryPBO *gl_mem
);
GObject +----GInitiallyUnowned +----GstObject +----GstAllocator +----GstGLBaseMemoryAllocator +----GstGLMemoryAllocator +----GstGLMemoryPBOAllocator
GstGLMemoryPBO is created or wrapped through gst_gl_base_memory_alloc()
with GstGLVideoAllocationParams.
GstGLMemoryPBO is created through gst_gl_memory_pbo_alloc()
or system memory can
be wrapped through gst_gl_memory_pbo_wrapped()
.
Data is uploaded or downloaded from the GPU as is necessary.
typedef struct { GstGLMemoryAllocatorClass parent_class; } GstGLMemoryPBOAllocatorClass;
gboolean gst_is_gl_memory_pbo (GstMemory *mem
);
|
a GstMemory |
Returns : |
whether the memory at mem is a GstGLMemoryPBO
|
Since 1.8
gboolean gst_gl_memory_pbo_copy_into_texture (GstGLMemoryPBO *gl_mem
,guint tex_id
,GstGLTextureTarget target
,GstVideoGLTextureType tex_type
,gint width
,gint height
,gint stride
,gboolean respecify
);
Copies gl_mem
into the texture specfified by tex_id
. The format of tex_id
is specified by tex_type
, width
and height
.
If respecify
is TRUE
, then the copy is performed in terms of the texture
data. This is useful for splitting RGBA textures into RG or R textures or
vice versa. The requirement for this to succeed is that the backing texture
data must be the same size, i.e. say a RGBA8 texture is converted into a RG8
texture, then the RG texture must have twice as many pixels available for
output as the RGBA texture.
Otherwise, if respecify
is FALSE
, then the copy is performed per texel
using glCopyTexImage. See the OpenGL specification for details on the
mappings between texture formats.
|
a GstGLMemoryPBO |
|
the destination texture id |
|
the destination GstGLTextureTarget |
|
the destination GstVideoGLTextureType |
|
width of tex_id
|
|
height of tex_id
|
|
stride of the backing texture data |
|
whether to copy the data or copy per texel |
Returns : |
Whether the copy suceeded |
Since 1.8
void gst_gl_memory_pbo_download_transfer (GstGLMemoryPBO *gl_mem
);
Transfer the texture data from the PBO into the texture if necessary.
|
a GstGLMemoryPBO |
Since 1.8
void gst_gl_memory_pbo_upload_transfer (GstGLMemoryPBO *gl_mem
);