mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
7a3b25884c
This code path is used when frames are rendered as textures through GstVideoGLTextureUploadMeta with EGL, mainly under Wayland. Originally the EGLImage was exported as GEM, which was handled by Intel drivers, but Gallium ones cannot create VA surfaces from GEM buffers, only DMABuf. This patch checks the memory types supported by VA driver to choose the render the EGLImages from GEM or DMABuf, because GEM is still better where supported. DMABuf is well handled either by intel-vaapi-driver and gallium. Fixes: #137 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
44 lines
1.5 KiB
C
44 lines
1.5 KiB
C
/*
|
|
* gstvaapisurface_egl.h - VA surface abstraction (EGL interop)
|
|
*
|
|
* Copyright (C) 2014 Intel Corporation
|
|
* Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public License
|
|
* as published by the Free Software Foundation; either version 2.1
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free
|
|
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef GST_VAAPI_SURFACE_EGL_H
|
|
#define GST_VAAPI_SURFACE_EGL_H
|
|
|
|
#include <EGL/egl.h>
|
|
#include <EGL/eglext.h>
|
|
#include <gst/vaapi/gstvaapisurface.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
GstVaapiSurface *
|
|
gst_vaapi_surface_new_from_egl_image (GstVaapiDisplay * display,
|
|
const GstVideoInfo * vip, EGLImageKHR image, GstVideoFormat format,
|
|
guint width, guint height, guint flags);
|
|
|
|
GstVaapiSurface *
|
|
gst_vaapi_surface_new_with_egl_image (GstVaapiDisplay * display,
|
|
EGLImageKHR image, GstVideoFormat format, guint width, guint height,
|
|
guint mem_types);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* GST_VAAPI_SURFACE_EGL_H */
|