Top |
Object Hierarchy
GObject ╰── GInitiallyUnowned ╰── GstObject ╰── GstAllocator ╰── GstGLBaseMemoryAllocator ╰── GstGLMemoryAllocator ╰── GstGLMemoryPBOAllocator
Description
GstGLMemoryPBO is created or wrapped through gst_gl_base_memory_alloc()
with GstGLVideoAllocationParams.
Data is uploaded or downloaded from the GPU as is necessary.
Functions
gst_gl_memory_pbo_copy_into_texture ()
gboolean gst_gl_memory_pbo_copy_into_texture (GstGLMemoryPBO *gl_mem
,guint tex_id
,GstGLTextureTarget target
,GstGLFormat tex_format
,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_format
, 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.
Parameters
gl_mem |
||
tex_id |
the destination texture id |
|
target |
the destination GstGLTextureTarget |
|
tex_format |
the destination GstGLFormat |
|
width |
width of |
|
height |
height of |
|
stride |
stride of the backing texture data |
|
respecify |
whether to copy the data or copy per texel |
Since: 1.8
gst_gl_memory_pbo_download_transfer ()
void
gst_gl_memory_pbo_download_transfer (GstGLMemoryPBO *gl_mem
);
Transfer the texture data from the texture into the PBO if necessary.
Since: 1.8
gst_gl_memory_pbo_upload_transfer ()
void
gst_gl_memory_pbo_upload_transfer (GstGLMemoryPBO *gl_mem
);
Transfer the texture data from the PBO into the texture if necessary.
Since: 1.8