gstreamer/gst-libs/gst/vaapi/gstvaapisurface_egl.h
Gwenole Beauchesne a9fe79610a egl: allow for EGLImage imports into VA Surfaces.
Add helpers to import EGLImage objects into VA surfaces. There are
two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
which allows for implicit conversion from EGLImage to a VA surface
in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
which exactly wraps the source EGLImage, typically in RGBA format
with linear storage.

Note: in case of (i), the EGLImage can be disposed right after the
VA surface creation call, unlike in (ii) where the user shall ensure
that the EGLImage is live until the associated VA surface is no longer
needed.

https://bugzilla.gnome.org/show_bug.cgi?id=743847
2015-02-24 15:20:03 +01:00

43 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);
G_END_DECLS
#endif /* GST_VAAPI_SURFACE_EGL_H */