gstgl.c.types

C types for gstgl1 library

Types 104

enumGstGLAPI : uint
None = 0no API
Opengl = 1Desktop OpenGL up to and including 3.1. The compatibility profile when the OpenGL version is >= 3.2
Opengl3 = 2Desktop OpenGL >= 3.2 core profile
Gles1 = 32768OpenGL ES 1.x
Gles2 = 65536OpenGL ES 2.x and 3.x
Any = 4294967295Any OpenGL API
Failed = 0generic failure
OldLibs = 1the implementation is too old and doesn't implement enough features
ResourceUnavailable = 2a resource could not be found
Download = 1048576the texture needs downloading to the data pointer
Upload = 2097152the data pointer needs uploading to the texture
None = 0none
Slow = 1slow
NonConformant = 2non-conformant
None = 0none
Window = 1window
Pbuffer = 2pbuffer
Pixmap = 4pixmap

OpenGL context errors.

Failed = 0Failed for an unspecified reason
WrongConfig = 1The configuration requested is not correct
WrongApi = 2The OpenGL API requested is not correct
OldLibs = 3The OpenGL libraries are too old
CreateContext = 4glXCreateContext (or similar) failed
ResourceUnavailable = 5A resource is not available
enumGstGLDisplayType : uint
None = 0no display type
X11 = 1X11 display
Wayland = 2Wayland display
Cocoa = 4Cocoa display
Win32 = 8Win32 display
Dispmanx = 16Dispmanx display
Egl = 32EGL display
VivFb = 64Vivante Framebuffer display
Gbm = 128Mesa3D GBM display
EglDevice = 256EGLDevice display.
Eagl = 512EAGL display.
Winrt = 1024WinRT display.
Android = 2048Android display.
EglSurfaceless = 4096Mesa3D surfaceless display using the EGLPLATFORMSURFACELESS_MESA extension.
Any = 4294967295any display type
Luminance = 6409Single component replicated across R, G, and B textures components
Alpha = 6406Single component stored in the A texture component
LuminanceAlpha = 6410Combination of #GSTGLLUMINANCE and #GSTGLALPHA
Red = 6403Single component stored in the R texture component
R8 = 33321Single 8-bit component stored in the R texture component
Rg = 33319Two components stored in the R and G texture components
Rg8 = 33323Two 8-bit components stored in the R and G texture components
Rgb = 6407Three components stored in the R, G, and B texture components
Rgb8 = 32849Three 8-bit components stored in the R, G, and B texture components
Rgb565 = 36194Three components of bit depth 5, 6 and 5 stored in the R, G, and B texture components respectively.
Rgb16 = 32852Three 16-bit components stored in the R, G, and B texture components
Rgba = 6408Four components stored in the R, G, B, and A texture components respectively.
Rgba8 = 32856Four 8-bit components stored in the R, G, B, and A texture components respectively.
Rgba16 = 32859Four 16-bit components stored in the R, G, B, and A texture components respectively.
DepthComponent16 = 33189A single 16-bit component for depth information.
Depth24Stencil8 = 35056A 24-bit component for depth information and a 8-bit component for stencil informat.
Rgb10A2 = 32857
R16 = 33322Single 16-bit component stored in the R texture component
Rg16 = 33324Two 16-bit components stored in the R and G texture components
enumGstGLPlatform : uint
None = 0no platform
Egl = 1the EGL platform used primarily with the X11, wayland and android window systems as well as on embedded Linux
Glx = 2the GLX platform used primarily with the X11 window system
Wgl = 4the WGL platform used primarily on Windows
Cgl = 8the CGL platform used primarily on OS X
Eagl = 16the EAGL platform used primarily on iOS
Any = 4294967295any OpenGL platform
None = 0no query
TimeElapsed = 1query the time elapsed
Timestamp = 2query the current time

Compilation stage that caused an error

Compile = 0Compilation error occurred
Link = 1Link error occurred
Program = 2General program error occurred
enumGstGLSLProfile : uint

GLSL profiles

None = 0no profile supported/available
Es = 1OpenGL|ES profile
Core = 2OpenGL core profile
Compatibility = 4OpenGL compatibility profile
Any = 4294967295any OpenGL/OpenGL|ES profile

GLSL version list

None = 0no version
_100 = 100version 100 (only valid for ES)
_110 = 110version 110 (only valid for compatibility desktop GL)
_120 = 120version 120 (only valid for compatibility desktop GL)
_130 = 130version 130 (only valid for compatibility desktop GL)
_140 = 140version 140 (only valid for compatibility desktop GL)
_150 = 150version 150 (valid for compatibility/core desktop GL)
_300 = 300version 300 (only valid for ES)
_310 = 310version 310 (only valid for ES)
_320 = 320version 320 (only valid for ES)
_330 = 330version 330 (valid for compatibility/core desktop GL)
_400 = 400version 400 (valid for compatibility/core desktop GL)
_410 = 410version 410 (valid for compatibility/core desktop GL)
_420 = 420version 420 (valid for compatibility/core desktop GL)
_430 = 430version 430 (valid for compatibility/core desktop GL)
_440 = 440version 440 (valid for compatibility/core desktop GL)
_450 = 450version 450 (valid for compatibility/core desktop GL)

Output anaglyph type to generate when downmixing to mono

GreenMagentaDubois = 0Dubois optimised Green-Magenta anaglyph
RedCyanDubois = 1Dubois optimised Red-Cyan anaglyph
AmberBlueDubois = 2Dubois optimised Amber-Blue anaglyph

The OpenGL texture target that an OpenGL texture can be bound to. The [gstgl.global.glValueSetTextureTargetFromMask], [gstgl.global.glValueGetTextureTargetMask], and [gstgl.global.glValueSetTextureTarget] functions can be used for handling texture targets with #GValue's when e.g. dealing with #GstCaps.

None = 0no texture target
_2d = 12D texture target (`GLTEXTURE2D`)
Rectangle = 2rectangle texture target (`GLTEXTURERECTANGLE`)
ExternalOes = 3external oes texture target (`GLTEXTUREEXTERNAL_OES`)
Done = 1No further processing required
Error = - 1An unspecified error occurred
Unsupported = - 2The configuration is unsupported.
Reconfigure = - 3This element requires a reconfiguration.
UnsharedGlContext = - 100private return value.
Failed = 0failed for a unspecified reason
OldLibs = 1the implementation is too old
ResourceUnavailable = 2no such resource was found
Fields
size_t structSizethe size of the struct (including and subclass data)
GstGLAllocationParamsCopyFunc copya #GstGLAllocationParamsCopyFunc
GstGLAllocationParamsFreeFunc freea #GstGLAllocationParamsFreeFunc
uint allocFlagsallocation flags
size_t allocSizethe allocation size
GstAllocationParams * allocParamsthe #GstAllocationParams
GstGLContext * contexta #GstGLContext
GDestroyNotify notifya #GDestroyNotify
void * userDataargument to call @notify with
void * wrappedDatathe wrapped data pointer
void * glHandlethe wrapped OpenGL handle
void *[4] Padding

#GstGLAsyncDebug an opaque structure and should only be accessed through the provided API.

Fields
uint stateFlags
const(char) * file
const(char) * function_
int line
GObject * object
char * debugMsg
void * userData
void *[4] Padding

#GstGLBaseFilter handles the nitty gritty details of retrieving an OpenGL context. It also provided some wrappers around #GstBaseTransform's start(), stop() and set_caps() virtual methods that ensure an OpenGL context is available and current in the calling thread.

Fields
GstGLDisplay * displaythe currently configured #GstGLDisplay
GstGLContext * contextthe currently configured #GstGLContext
GstCaps * inCapsthe currently configured input #GstCaps
GstCaps * outCapsthe currently configured output #GstCaps
void *[4] Padding

The base class for GStreamer GL Filter.

Fields
GstGLAPI supportedGlApithe logical-OR of #GstGLAPI's supported by this element
gboolean function(GstGLBaseFilter * filter) glStartcalled in the GL thread to setup the element GL state.
void function(GstGLBaseFilter * filter) glStopcalled in the GL thread to setup the element GL state.
gboolean function(GstGLBaseFilter * filter, GstCaps * incaps, GstCaps * outcaps) glSetCapscalled in the GL thread when caps are set on @filter. Note: this will also be called when changing OpenGL contexts where #GstBaseTransform::set_caps may not.
void *[4] Padding

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.

Fields
GstMemory memthe parent object
GstGLContext * contextthe #GstGLContext to use for GL operations
GMutex lock
GstMapFlags mapFlags
int mapCount
int glMapCount
void * data
GstGLQuery * query
size_t allocSize
void * allocData
void * userData
void *[4] Padding

Opaque #GstGLBaseMemoryAllocator struct

Fields
GstMemoryCopyFunction fallbackMemCopy
void *[4] Padding
Fields
GstAllocatorClass parentClassthe parent class
GstGLBaseMemoryAllocatorAllocFunction alloca #GstGLBaseMemoryAllocatorAllocFunction
GstGLBaseMemoryAllocatorCreateFunction createa #GstGLBaseMemoryAllocatorCreateFunction
GstGLBaseMemoryAllocatorMapFunction mapa #GstGLBaseMemoryAllocatorMapFunction
GstGLBaseMemoryAllocatorUnmapFunction unmapa #GstGLBaseMemoryAllocatorUnmapFunction
GstGLBaseMemoryAllocatorCopyFunction copya #GstGLBaseMemoryAllocatorCopyFunction
GstGLBaseMemoryAllocatorDestroyFunction destroya #GstGLBaseMemoryAllocatorDestroyFunction
void *[4] Padding

#GstGLBaseMixer handles the nitty gritty details of retrieving an OpenGL context. It provides some virtual methods to know when the OpenGL context is available and is not available within this element.

Fields
GstVideoAggregator parentparent #GstVideoAggregator
GstGLDisplay * displaythe currently configured #GstGLDisplay
GstGLContext * contextthe currently configured #GstGLContext
void *[4] Padding
Fields
GstVideoAggregatorClass parentClassthe parent #GstVideoAggregatorClass
GstGLAPI supportedGlApithe logical-OR of #GstGLAPI's supported by this element
gboolean function(GstGLBaseMixer * mix) glStart
void function(GstGLBaseMixer * mix) glStop
void *[4] Padding
Fields
GstVideoAggregatorPad parentparent #GstVideoAggregatorPad
void *[4] Padding
Fields
GstVideoAggregatorPadClass parentClassparent #GstVideoAggregatorPadClass
void *[4] Padding

#GstGLBaseSrc handles the nitty gritty details of retrieving an OpenGL context. It also provided some wrappers around #GstBaseSrc's start() and stop() virtual methods that ensure an OpenGL context is available and current in the calling thread.

Fields
GstPushSrc parent
GstGLDisplay * displaythe currently configured #GstGLDisplay
GstGLContext * contextthe currently configured #GstGLContext
GstVideoInfo outInfothe currently configured output #GstVideoInfo
GstCaps * outCapsthe currently configured output #GstCaps
GstClockTime runningTimethe total running time
void *[4] Padding

The base class for GStreamer GL Video sources.

Fields
GstPushSrcClass parentClass
GstGLAPI supportedGlApithe logical-OR of #GstGLAPI's supported by this element
gboolean function(GstGLBaseSrc * src) glStartcalled in the GL thread to setup the element GL state.
void function(GstGLBaseSrc * src) glStopcalled in the GL thread to setup the element GL state.
gboolean function(GstGLBaseSrc * src, GstGLMemory * mem) fillGlMemorycalled in the GL thread to fill the current video texture.
void *[4] Padding

GstGLBuffer is a #GstMemory subclass providing support for the mapping of GL buffers.

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

Fields
GstGLBaseMemory memthe parent object
uint idthe buffer id for this memory
uint targetthe OpenGL target of this texture for binding purposes
uint usageHintsthe OpenGL usage hints this buffer was created with
Fields
GstGLAllocationParams parentparent object
uint glTargetthe OpenGL target to bind the buffer to
uint glUsagethe OpenGL usage hint to create the buffer with
void *[4] Padding

Opaque #GstGLBufferAllocator struct

Fields
void *[4] Padding

The #GstGLBufferAllocatorClass only contains private data

Fields
void *[4] Padding

a #GstGLBufferPool is an object that allocates buffers with #GstGLBaseMemory

A #GstGLBufferPool is created with [gstgl.glbuffer_pool.GLBufferPool.new_]

#GstGLBufferPool implements the VideoMeta buffer pool option [gstvideo.types.BUFFER_POOL_OPTION_VIDEO_META], the VideoAligment buffer pool option [gstvideo.types.BUFFER_POOL_OPTION_VIDEO_ALIGNMENT] as well as the OpenGL specific [gstgl.types.BUFFER_POOL_OPTION_GL_SYNC_META] buffer pool option.

Fields
GstBufferPool bufferpool
GstGLContext * context
void *[4] Padding

The #GstGLBufferPoolClass structure contains only private data

Fields
GstBufferPoolClass parentClass
void *[4] Padding

#GstGLColorConvert is an object that converts between color spaces and/or formats using OpenGL Shaders.

A #GstGLColorConvert can be created with [gstgl.glcolor_convert.GLColorConvert.new_], the configuration negotiated with [gstgl.glcolor_convert.GLColorConvert.transformCaps] and the conversion performed with [gstgl.glcolor_convert.GLColorConvert.perform].

The glcolorconvertelement provides a GStreamer element that uses #GstGLColorConvert to convert between video formats and color spaces.

Fields
GstObject parent
GstGLContext * context
GstVideoInfo outInfo
gboolean initted
gboolean passthrough
GstBuffer * inbuf
GstBuffer * outbuf
GstGLShader * shader
void *[4] Reserved

The #GstGLColorConvertClass struct only contains private data

Fields
GstObjectClass objectClass
void *[4] Padding

#GstGLContext wraps an OpenGL context object in a uniform API. As a result of the limitation on OpenGL context, this object is not thread safe unless specified and must only be activated in a single thread.

Environment variables:

  • GST_GL_API: select which OpenGL API to create and OpenGL context for.

Depending on the platform, the available values are 'opengl', 'opengl3' (core profile), and 'gles2'. See the the #GstGLAPI enumeration for more details.

  • GST_GL_PLATFORM: select which OpenGL platform to create an OpenGL

context with. Depending on the platform and the dependencies available build-time, the available values are, 'glx', 'egl', 'cgl', 'wgl', and 'eagl'

  • GST_GL_CONFIG: select the configuration used for creating the OpenGL

context and OpenGL surface. Written out as a GstStructure that has been serialized to string. e.g. GST_GL_CONFIG="gst-gl-context-config,red-size=8,green-size=8,blue-size=8,alpha-size=8,depth-size=16". Not all platforms will support the same level of functionality.

Fields
GstObject parent
GstGLDisplay * display
GstGLWindow * window
GstGLFuncs * glVtablea list of OpenGL function pointers
void *[4] Reserved
Fields
GstObjectClass parentClass
size_t function() getCurrentContext
size_t function(GstGLContext * context) getGlContextget the backing platform specific OpenGL context
GstGLAPI function(GstGLContext * context) getGlApiget the available OpenGL api's that this context can work with
GstGLPlatform function(GstGLContext * context) getGlPlatform
void * function(GstGLAPI glApi, const(char) * name) getProcAddressget an function pointer to an OpenGL function
gboolean function(GstGLContext * context, gboolean activate) activatecall eglMakeCurrent or similar
gboolean function(GstGLContext * context, GError * * _err) chooseFormatchoose a format for the framebuffer
gboolean function(GstGLContext * context, GstGLAPI glApi, GstGLContext * otherContext, GError * * _err) createContextcreate the OpenGL context
void function(GstGLContext * context) destroyContextdestroy the OpenGL context
void function(GstGLContext * context) swapBuffersswap the default framebuffer's front/back buffers
gboolean function(GstGLContext * context, const(char) * feature) checkFeature
void function(GstGLContext * context, int * major, int * minor) getGlPlatformVersion
GstStructure * function(GstGLContext * context) getConfig
gboolean function(GstGLContext * context, GstStructure * glConfig) requestConfig
void *[2] Reserved

#GstGLDisplay represents a connection to the underlying windowing system. Elements are required to make use of #GstContext to share and propagate a #GstGLDisplay.

There are a number of environment variables that influence the choice of platform and window system specific functionality.

  • GST_GL_WINDOW influences the window system to use. Common values are

'x11', 'wayland', 'surfaceless', 'win32' or 'cocoa'.

  • GST_GL_PLATFORM influences the OpenGL platform to use. Common values are

'egl', 'glx', 'wgl' or 'cgl'.

  • GST_GL_API influences the OpenGL API requested by the OpenGL platform.

Common values are 'opengl', 'opengl3' and 'gles2'.

Certain window systems require a special function to be called to

initialize threading support. As this GStreamer GL library does not preclude concurrent access to the windowing system, it is strongly advised that applications ensure that threading support has been initialized before any other toolkit/library functionality is accessed. Failure to do so could result in sudden application abortion during execution. The most notably example of such a function is X11's XInitThreads\().

Fields
GstObject object
GList * windows
GMainContext * mainContext
GMainLoop * mainLoop
GSource * eventSource
Fields
GstObjectClass objectClass
size_t function(GstGLDisplay * display) getHandle
GstGLWindow * function(GstGLDisplay * display) createWindow
void *[4] Padding

#GstGLFilter helps to implement simple OpenGL filter elements taking a single input and producing a single output with a #GstGLFramebuffer

Fields
GstVideoInfo inInfothe video info for input buffers
GstVideoInfo outInfothe video info for output buffers
GstGLTextureTarget inTextureTargetThe texture target of the input buffers (usually 2D)
GstGLTextureTarget outTextureTargetThe texture target of the output buffers (usually 2D)
GstCaps * outCapsthe output #GstCaps
GstGLFramebuffer * fbo#GstGLFramebuffer object used for transformations (only for subclass usage)
gboolean glResult
GstBuffer * inbuf
GstBuffer * outbuf
GstGLShader * defaultShader
gboolean validAttributes
uint vao
uint vboIndices
uint vertexBuffer
int drawAttrPositionLoc
int drawAttrTextureLoc
void *[4] Padding
Fields
gboolean function(GstGLFilter * filter, GstCaps * incaps, GstCaps * outcaps) setCapsmirror from #GstBaseTransform
gboolean function(GstGLFilter * filter, GstBuffer * inbuf, GstBuffer * outbuf) filterperform operations on the input and output buffers. In general, you should avoid using this method if at all possible. One valid use-case for using this is keeping previous buffers for future calc...
gboolean function(GstGLFilter * filter, GstGLMemory * input, GstGLMemory * output) filterTexturegiven @intex, transform it into @outtex. Not used if @filter exists
gboolean function(GstGLFilter * filter) initFboperform initialization when the Framebuffer object is created
GstCaps * function(GstGLFilter * filter, GstPadDirection direction, GstCaps * caps, GstCaps * filterCaps) transformInternalCapsPerform sub-class specific modifications of the caps to be processed between upload on input and before download for output.
void *[4] Padding

A #GstGLFramebuffer represents and holds an OpenGL framebuffer object with it's associated attachments.

A #GstGLFramebuffer can be created with [gstgl.glframebuffer.GLFramebuffer.new_] or [gstgl.glframebuffer.GLFramebuffer.newWithDefaultDepth] and bound with [gstgl.glframebuffer.GLFramebuffer.bind]. Other resources can be bound with [gstgl.glframebuffer.GLFramebuffer.attach]

Note

OpenGL framebuffers are not shareable resources so cannot be used

between multiple OpenGL contexts.

Fields
GstObject object
GstGLContext * context
uint fboId
GArray * attachments
void *[4] Padding

Opaque #GstGLFramebufferClass struct

Fields
GstObjectClass objectClass
void *[4] Padding

Structure containing function pointers to OpenGL functions.

Each field is named exactly the same as the OpenGL function without the gl prefix.

GstGLMemory is a #GstGLBaseMemory subclass providing support for the mapping of OpenGL textures.

#GstGLMemory is created or wrapped through [gstgl.glbase_memory.GLBaseMemory.alloc] with #GstGLVideoAllocationParams.

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

The #GstCaps that is used for #GstGLMemory based buffers should contain the [gstgl.types.CAPS_FEATURE_MEMORY_GL_MEMORY] as a #GstCapsFeatures and should contain a 'texture-target' field with one of the #GstGLTextureTarget values as a string, i.e. some combination of 'texture-target=(string){2D, rectangle, external-oes}'.

Fields
GstGLBaseMemory memthe parent #GstGLBaseMemory object
uint texIdthe GL texture id for this memory
GstGLTextureTarget texTargetthe GL texture target for this memory
GstGLFormat texFormatthe texture type
GstVideoInfo infothe texture's #GstVideoInfo
GstVideoAlignment valigndata alignment for system memory mapping
uint planedata plane in @info
float[2] texScalingGL shader scaling parameters for @valign and/or width/height
gboolean textureWrapped
uint unpackLength
uint texWidth
void *[4] Padding

Opaque #GstGLMemoryAllocator struct

Fields
void *[4] Padding
Fields
GstGLBaseMemoryAllocatorMapFunction mapprovide a custom map implementation
GstGLBaseMemoryAllocatorCopyFunction copyprovide a custom copy implementation
GstGLBaseMemoryAllocatorUnmapFunction unmapprovide a custom unmap implementation
void *[4] Padding

#GstGLMemoryPBO is created or wrapped through [gstgl.glbase_memory.GLBaseMemory.alloc] with #GstGLVideoAllocationParams.

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

Fields
void *[4] Padding

Opaque #GstGLMemoryPBOAllocator struct

Fields
void *[4] Padding

Only contains private data

Fields
void *[4] Padding

#GstGLMixer helps implement an element that operates on RGBA textures.

Fields
GstCaps * outCapsthe configured output #GstCaps
void *[4] Padding
Fields
gboolean function(GstGLMixer * mix, GstBuffer * outbuf) processBuffers
gboolean function(GstGLMixer * mix, GstGLMemory * outTex) processTextures
void *[4] Padding
Fields
GstGLBaseMixerPad parentparent #GstGLBaseMixerPad
uint currentTexturethe current input texture for this pad
void *[4] Padding
Fields
GstGLBaseMixerPadClass parentClassparent #GstGLBaseMixerPadClass
void *[4] Padding

Opaque #GstGLOverlayCompositor object

Fields
GstObject parent
GstGLContext * context
uint lastWindowWidth
uint lastWindowHeight
GList * overlays
GstGLShader * shader
int positionAttrib
int texcoordAttrib
void *[4] Padding
Fields
GstObjectClass objectClass
void *[4] Padding

A #GstGLQuery represents and holds an OpenGL query object. Various types of queries can be run or counters retrieved.

Fields
GstGLContext * context
uint queryType
uint queryId
gboolean supported
gboolean startCalled
void *[4] Padding

GstGLRenderbuffer is a #GstGLBaseMemory subclass providing support for OpenGL renderbuffers.

#GstGLRenderbuffer is created or wrapped through [gstgl.glbase_memory.GLBaseMemory.alloc] with #GstGLRenderbufferAllocationParams.

Fields
uint renderbufferIdthe GL texture id for this memory
GstGLFormat renderbufferFormatthe texture type
uint widththe width
uint heightthe height
gboolean renderbufferWrapped
void *[4] Padding

Allocation parameters

Fields
GstGLFormat renderbufferFormatthe #GstGLFormat
uint widththe width
uint heightthe height
void *[4] Padding

Opaque #GstGLRenderbufferAllocator struct

Fields
void *[4] Padding

The #GstGLRenderbufferAllocatorClass only contains private data

Fields
void *[4] Padding

#GstGLSLStage holds and represents a single OpenGL shader stage.

Fields
GstObject parent
GstGLContext * context
void *[4] Padding

Opaque #GstGLSLStageClass struct

Fields
void *[4] Padding
Fields
GstObject parent
GstGLContext * context
void *[4] Padding
Fields
GstObjectClass parentClass

#GstGLSyncMeta provides the ability to synchronize the OpenGL command stream with the CPU or with other OpenGL contexts.

Fields
GstMeta parentthe parent #GstMeta
GstGLContext * contextthe #GstGLContext used to allocate the meta
void * dataa custom data pointer for the implementation
void function(GstGLSyncMeta * sync, GstGLContext * context) setSyncset a sync point in the OpenGL command stream
void function(GstGLSyncMeta * sync, GstGLContext * context) setSyncGlthe same as @set_sync but called from @context's thread
void function(GstGLSyncMeta * sync, GstGLContext * context) waitexecute a wait on the previously set sync point into the OpenGL command stream
void function(GstGLSyncMeta * sync, GstGLContext * context) waitGlthe same as @wait but called from @context's thread
void function(GstGLSyncMeta * sync, GstGLContext * context) waitCpuwait for the previously set sync point to pass from the CPU
void function(GstGLSyncMeta * sync, GstGLContext * context) waitCpuGlthe same as @wait_cpu but called from @context's thread
void function(GstGLSyncMeta * src, GstBuffer * sbuffer, GstGLSyncMeta * dest, GstBuffer * dbuffer) copycopy @data into a new #GstGLSyncMeta
void function(GstGLSyncMeta * sync, GstGLContext * context) freefree @data
void function(GstGLSyncMeta * sync, GstGLContext * context) freeGlfree @data in @context's thread

#GstGLUpload is an object that uploads data from system memory into GL textures.

A #GstGLUpload can be created with [gstgl.glupload.GLUpload.new_]

Fields
GstObject parent
GstGLContext * context
void *[4] Reserved

The #GstGLUploadClass struct only contains private data

Fields
GstObjectClass objectClass
void *[4] Padding
Fields
GstGLAllocationParams parentthe parent #GstGLAllocationParams structure
GstVideoInfo * vInfothe #GstVideoInfo to allocate
uint planethe video plane index to allocate
GstVideoAlignment * valignthe #GstVideoAlignment to align the system representation to (may be null for the default)
GstGLTextureTarget targetthe #GstGLTextureTarget to allocate
GstGLFormat texFormatthe #GstGLFormat to allocate
void *[4] Padding

Convert stereoscopic/multiview video using fragment shaders.

Fields
GstObject object
GstGLContext * context
GstGLShader * shader
GstVideoMultiviewMode inputModeOverride
GstVideoMultiviewFlags inputFlagsOverride
GstVideoMultiviewMode outputModeOverride
GstVideoMultiviewFlags outputFlagsOverride
GstGLStereoDownmix downmixMode
GstVideoInfo outInfo
GstGLTextureTarget fromTextureTarget
GstGLTextureTarget toTextureTarget
gboolean capsPassthrough
gboolean initted
gboolean reconfigure
void *[4] Padding

Opaque #GstGLViewConvertClass struct

Fields
GstObjectClass objectClass
void *[4] Padding

GstGLWindow represents a window that elements can render into. A window can either be a user visible window (onscreen) or hidden (offscreen).

Fields
GstObject parent
GMutex lock
GstGLDisplay * display
GWeakRef contextRef
gboolean isDrawing
void * drawData
GDestroyNotify drawNotify
void * closeData
GDestroyNotify closeNotify
void * resizeData
GDestroyNotify resizeNotify
gboolean queueResize
GMainContext * mainContext
void *[4] Reserved
Fields
GstObjectClass parentClassParent class
size_t function(GstGLWindow * window) getDisplayGets the current windowing system display connection
void function(GstGLWindow * window, size_t handle) setWindowHandleSet a window handle to render into
size_t function(GstGLWindow * window) getWindowHandleGets the current window handle that this #GstGLWindow is rendering into. This may return a different value to what is passed into @setwindowhandle
void function(GstGLWindow * window) drawredraw the window with the specified dimensions
void function(GstGLWindow * window) runrun the mainloop
void function(GstGLWindow * window) quitsend a quit to the mainloop
void function(GstGLWindow * window, GstGLWindowCB callback, void * data) sendMessageinvoke a function on the window thread. Required to be reentrant.
void function(GstGLWindow * window, GstGLWindowCB callback, void * data, GDestroyNotify destroy) sendMessageAsyncinvoke a function on the window thread. @run may or may not have been called. Required to be reentrant.
gboolean function(GstGLWindow * window, GError * * _err) openopen the connection to the display
void function(GstGLWindow * window) closeclose the connection to the display
void function(GstGLWindow * window, gboolean handleEvents) handleEventswhether to handle 'extra' events from the windowing system. Basic events like surface moves and resizes are still valid things to listen for.
void function(GstGLWindow * window, int width, int height) setPreferredSizerequest that the window change surface size. The implementation is free to ignore this information.
void function(GstGLWindow * window) showrequest that the window be shown to the user
gboolean function(GstGLWindow * window, int x, int y, int width, int height) setRenderRectanglerequest a rectangle to render into. See #GstVideoOverlay
void function(GstGLWindow * window) queueResizerequest a resize to occur when possible
gboolean function(GstGLWindow * window) controlsViewportWhether the window takes care of glViewport setup. and the user does not need to deal with viewports
gboolean function(GstGLWindow * window) hasOutputSurfaceWhether the window has output surface or not. (Since: 1.18)
void *[2] Reserved
aliasGstGLAllocationParamsFreeFunc = void function(void * params)
aliasGstGLAsyncDebugLogGetMessage = char * function(void * userData)
aliasGstGLBaseMemoryAllocatorCopyFunction = GstGLBaseMemory * function(GstGLBaseMemory * mem, ptrdiff_t offset, ptrdiff_t size)
aliasGstGLBaseMemoryAllocatorCreateFunction = gboolean function(GstGLBaseMemory * mem, GError * * _err)
aliasGstGLBaseMemoryAllocatorMapFunction = void * function(GstGLBaseMemory * mem, GstMapInfo * info, size_t maxsize)
aliasGstGLContextThreadFunc = void function(GstGLContext * context, void * data)
aliasGstGLFilterRenderFunc = gboolean function(GstGLFilter * filter, GstGLMemory * inTex, void * userData)
aliasGstGLFramebufferFunc = gboolean function(void * stuff)
aliasGstGLWindowCB = void function(void * data)
aliasGstGLWindowResizeCB = void function(void * data, uint width, uint height)