#GstEGLImage represents and holds an `EGLImage` handle. A #GstEGLImage can be created from a dmabuf with gst_egl_image_from_dmabuf(), or gst_egl_image_from_dmabuf_direct(), or #GstGLMemoryEGL provides a #GstAllocator to allocate `EGLImage`'s bound to and OpenGL texture. a new #GstEGLImage wrapping @image a #GstGLContext (must be an EGL context) the image to wrap the #GstGLFormat user data called when @user_data is no longer needed the `EGLImage` of @image a #GstEGLImage Checks if the given @context can emulate @format using a limited subset of RGB texture formats. Such @format is then suitable for importing using gst_egl_image_from_dmabuf() even when GL supports the video format as external-only or not at all. #TRUE if @format can be emulated a #GstGLContext (must be an EGL context) a #GstVideoFormat Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed as RGBA data. Shaders later take this "RGBA" data and convert it from its true format (described by in_info) to actual RGBA output. For example, with I420, three EGL images are created, one for each @plane, each EGL image with a single-channel R format. With NV12, two EGL images are created, one with R format, one with RG format etc. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) the DMA-Buf file descriptor the #GstVideoInfo in @dmabuf the plane in @in_info to create and #GstEGLImage for the byte-offset in the data Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed directly as the format described in in_info. This is useful if the hardware is capable of performing color space conversions internally. The appropriate DRM format is picked, and the EGL image is created with this DRM format. Another notable difference to gst_egl_image_from_dmabuf() is that this function creates one EGL image for all planes, not one for a single plane. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) Array of DMABuf file descriptors Array of offsets, relative to the DMABuf the #GstVideoInfo Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed directly as the format described in @in_info. This is useful if the hardware is capable of performing color space conversions internally. The appropriate DRM format is picked, and the EGL image is created with this DRM format. Another notable difference to gst_egl_image_from_dmabuf() is that this function creates one EGL image for all planes, not one for a single plane. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) Array of DMABuf file descriptors Array of offsets, relative to the DMABuf the #GstVideoInfo GL texture target this GstEGLImage is intended for Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed directly as the format described in @in_info. This is useful if the hardware is capable of performing color space conversions internally. Another notable difference to gst_egl_image_from_dmabuf() is that this function creates one EGL image for all planes, not one for a single plane. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) number of planes (obtained from a #GstVideoMeta) Array of DMABuf file descriptors Array of offsets, relative to the DMABuf the #GstVideoInfoDmaDrm GL texture target this GstEGLImage is intended for a #GstEGLImage wrapping @gl_mem or %NULL on failure a #GstGLContext (must be an EGL context) a #GstGLMemory additional attributes to add to the `eglCreateImage`() call. Function to be called when the GstEGLImage is destroyed. It should free the associated `EGLImage` if necessary a #GstEGLImage user data passed to gst_egl_image_new_wrapped() the contents of a #GstGLDisplayEGL are private and should only be accessed through the provided API Create a new #GstGLDisplayEGL using the default EGL_DEFAULT_DISPLAY. The returned #GstGLDisplayEGL will by default free all EGL resources when finalized. See gst_gl_display_egl_set_foreign() for details on if you need the EGLDisplay to remain alive. a new #GstGLDisplayEGL or %NULL Create a new surfaceless #GstGLDisplayEGL using the Mesa3D EGL_PLATFORM_SURFACELESS_MESA extension. a new #GstGLDisplayEGL or %NULL Creates a EGL display connection from a native Display. This function will return the same value for multiple calls with the same @display. The returned #GstGLDisplayEGL will *not* be marked as foreign and will free some display global EGL resources on finalization. If an external API/user will be also handling the lifetime of the `EGLDisplay`, you should mark the returned #GstGLDisplayEGL as foreign by calling gst_gl_display_egl_set_foreign(). a new #GstGLDisplayEGL an existing #GstGLDisplay Attempts to create a new `EGLDisplay` from @display. If @type is %GST_GL_DISPLAY_TYPE_ANY or %GST_GL_DISPLAY_TYPE_EGL_SURFACELESS, then @display must be 0. @type must not be %GST_GL_DISPLAY_TYPE_NONE. A `EGLDisplay` or `EGL_NO_DISPLAY` a #GstGLDisplayType pointer to a display (or 0) Configure whether or not this EGL display is foreign and is managed by an external application/library. A display marked as foreign will not have display global resources freed when this display is finalized. As such, any external API using the same `EGLDisplay` must keep the `EGLDisplay` alive while GStreamer is using any EGL or GL resources associated with that `EGLDisplay`. The reverse is also true and a foreign #GstGLDisplayEGL must not be used after the associated `EGLDisplay` has been destroyed externally with `eglTerminate()`. A non-foreign #GstGLDisplayEGL will destroy the associated `EGLDisplay` on finalization. This can also be useful when a user would like GStreamer to assume ownership of the `EGLDisplay` after calling e.g. gst_gl_display_egl_new_with_egl_display(). a #GstGLDisplayEGL whether @display_egl should be marked as containing a foreign `EGLDisplay` the contents of a #GstGLDisplayEGLDevice are private and should only be accessed through the provided API Create a new #GstGLDisplayEGLDevice with an EGLDevice supported device a new #GstGLDisplayEGLDevice or %NULL the index of device to use Creates a new #GstGLDisplayEGLDevice with EGLDeviceEXT . The @device must be created using EGLDevice enumeration. a new #GstGLDisplayEGLDevice an existing EGLDeviceEXT Opaque #GstGLDisplayEGLDeviceClass struct #GstGLMemoryEGL is created or wrapped through gst_gl_base_memory_alloc() with #GstGLVideoAllocationParams. The EGLDisplay @mem is associated with a #GstGLMemoryEGL The EGLImage held by @mem a #GstGLMemoryEGL Initializes the GL Memory allocator. It is safe to call this function multiple times. This must be called before any other GstGLMemoryEGL operation. Opaque #GstGLMemoryEGLAllocator struct The #GstGLMemoryEGLAllocatorClass only contains private data The name of the GL Memory EGL allocator the short string representation of @err an EGL error code Checks if the given @context can emulate @format using a limited subset of RGB texture formats. Such @format is then suitable for importing using gst_egl_image_from_dmabuf() even when GL supports the video format as external-only or not at all. #TRUE if @format can be emulated a #GstGLContext (must be an EGL context) a #GstVideoFormat Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed as RGBA data. Shaders later take this "RGBA" data and convert it from its true format (described by in_info) to actual RGBA output. For example, with I420, three EGL images are created, one for each @plane, each EGL image with a single-channel R format. With NV12, two EGL images are created, one with R format, one with RG format etc. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) the DMA-Buf file descriptor the #GstVideoInfo in @dmabuf the plane in @in_info to create and #GstEGLImage for the byte-offset in the data Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed directly as the format described in in_info. This is useful if the hardware is capable of performing color space conversions internally. The appropriate DRM format is picked, and the EGL image is created with this DRM format. Another notable difference to gst_egl_image_from_dmabuf() is that this function creates one EGL image for all planes, not one for a single plane. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) Array of DMABuf file descriptors Array of offsets, relative to the DMABuf the #GstVideoInfo Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed directly as the format described in @in_info. This is useful if the hardware is capable of performing color space conversions internally. The appropriate DRM format is picked, and the EGL image is created with this DRM format. Another notable difference to gst_egl_image_from_dmabuf() is that this function creates one EGL image for all planes, not one for a single plane. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) Array of DMABuf file descriptors Array of offsets, relative to the DMABuf the #GstVideoInfo GL texture target this GstEGLImage is intended for Creates an EGL image that imports the dmabuf FD. The dmabuf data is passed directly as the format described in @in_info. This is useful if the hardware is capable of performing color space conversions internally. Another notable difference to gst_egl_image_from_dmabuf() is that this function creates one EGL image for all planes, not one for a single plane. a #GstEGLImage wrapping @dmabuf or %NULL on failure a #GstGLContext (must be an EGL context) number of planes (obtained from a #GstVideoMeta) Array of DMABuf file descriptors Array of offsets, relative to the DMABuf the #GstVideoInfoDmaDrm GL texture target this GstEGLImage is intended for a #GstEGLImage wrapping @gl_mem or %NULL on failure a #GstGLContext (must be an EGL context) a #GstGLMemory additional attributes to add to the `eglCreateImage`() call. Initializes the GL Memory allocator. It is safe to call this function multiple times. This must be called before any other GstGLMemoryEGL operation. #GstGLDisplayEGL represents a connection to an EGL `EGLDisplay` handle created internally (gst_gl_display_egl_new() or gst_gl_display_egl_new_surfaceless()) or wrapped by the application (gst_gl_display_egl_new_with_egl_display()) #GstGLDisplayEGLDevice represents a `EGLDeviceEXT` handle created internally (gst_gl_display_egl_device_new()) or wrapped by the application (gst_gl_display_egl_device_new_with_egl_device()) whether @mem is a #GstGLMemoryEGL a #GstMemory to test