diff --git a/gst-libs/gst/gl/egl/Makefile.am b/gst-libs/gst/gl/egl/Makefile.am index 14d89c8c4c..da80fbc4f4 100644 --- a/gst-libs/gst/gl/egl/Makefile.am +++ b/gst-libs/gst/gl/egl/Makefile.am @@ -6,7 +6,8 @@ libgstgl_egl_la_SOURCES = \ gstgldisplay_egl.c \ gstglcontext_egl.c \ gstglmemoryegl.c \ - gsteglimage.c + gsteglimage.c \ + gstegl.c noinst_HEADERS = \ gstglcontext_egl.h diff --git a/gst-libs/gst/gl/egl/gstegl.c b/gst-libs/gst/gl/egl/gstegl.c new file mode 100644 index 0000000000..cd92a323f3 --- /dev/null +++ b/gst-libs/gst/gl/egl/gstegl.c @@ -0,0 +1,58 @@ +/* + * GStreamer + * Copyright (C) 2016 Matthew Waters + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include + +const gchar * +gst_egl_get_error_string (EGLint err) +{ + switch (err) { + case EGL_SUCCESS: + return "EGL_SUCCESS"; + case EGL_BAD_DISPLAY: + return "EGL_BAD_DISPLAY"; + case EGL_NOT_INITIALIZED: + return "EGL_NOT_INITIALIZED"; + case EGL_BAD_ACCESS: + return "EGL_BAD_ACCESS"; + case EGL_BAD_ALLOC: + return "EGL_BAD_ALLOC"; + case EGL_BAD_ATTRIBUTE: + return "EGL_BAD_ATTRIBUTE"; + case EGL_BAD_CONFIG: + return "EGL_BAD_CONFIG"; + case EGL_BAD_CONTEXT: + return "EGL_BAD_CONTEXT"; + case EGL_BAD_CURRENT_SURFACE: + return "EGL_BAD_CURRENT_SURFACE"; + case EGL_BAD_MATCH: + return "EGL_BAD_MATCH"; + case EGL_BAD_NATIVE_PIXMAP: + return "EGL_BAD_NATIVE_PIXMAP"; + case EGL_BAD_NATIVE_WINDOW: + return "EGL_BAD_NATIVE_WINDOW"; + case EGL_BAD_PARAMETER: + return "EGL_BAD_PARAMETER"; + case EGL_BAD_SURFACE: + return "EGL_BAD_SURFACE"; + default: + return "unknown"; + } +} diff --git a/gst-libs/gst/gl/egl/gstegl.h b/gst-libs/gst/gl/egl/gstegl.h index d73658c96a..0bbda81dce 100644 --- a/gst-libs/gst/gl/egl/gstegl.h +++ b/gst-libs/gst/gl/egl/gstegl.h @@ -51,4 +51,7 @@ typedef gintptr EGLAttrib; #endif +GST_EXPORT +const gchar * gst_egl_get_error_string (EGLint err); + #endif /* _GST_EGL_H_ */ diff --git a/gst-libs/gst/gl/egl/gsteglimage.c b/gst-libs/gst/gl/egl/gsteglimage.c index 07f246dae3..cc6c4bdaed 100644 --- a/gst-libs/gst/gl/egl/gsteglimage.c +++ b/gst-libs/gst/gl/egl/gsteglimage.c @@ -357,7 +357,7 @@ gst_egl_image_from_dmabuf (GstGLContext * context, } if (!img) { GST_WARNING ("eglCreateImage failed: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); return NULL; } diff --git a/gst-libs/gst/gl/egl/gstglcontext_egl.c b/gst-libs/gst/gl/egl/gstglcontext_egl.c index d348ac0aa0..3ed7320bd0 100644 --- a/gst-libs/gst/gl/egl/gstglcontext_egl.c +++ b/gst-libs/gst/gl/egl/gstglcontext_egl.c @@ -109,43 +109,6 @@ gst_gl_context_egl_new (GstGLDisplay * display) return g_object_new (GST_TYPE_GL_CONTEXT_EGL, NULL); } -const gchar * -gst_gl_context_egl_get_error_string (EGLint err) -{ - switch (err) { - case EGL_SUCCESS: - return "EGL_SUCCESS"; - case EGL_BAD_DISPLAY: - return "EGL_BAD_DISPLAY"; - case EGL_NOT_INITIALIZED: - return "EGL_NOT_INITIALIZED"; - case EGL_BAD_ACCESS: - return "EGL_BAD_ACCESS"; - case EGL_BAD_ALLOC: - return "EGL_BAD_ALLOC"; - case EGL_BAD_ATTRIBUTE: - return "EGL_BAD_ATTRIBUTE"; - case EGL_BAD_CONFIG: - return "EGL_BAD_CONFIG"; - case EGL_BAD_CONTEXT: - return "EGL_BAD_CONTEXT"; - case EGL_BAD_CURRENT_SURFACE: - return "EGL_BAD_CURRENT_SURFACE"; - case EGL_BAD_MATCH: - return "EGL_BAD_MATCH"; - case EGL_BAD_NATIVE_PIXMAP: - return "EGL_BAD_NATIVE_PIXMAP"; - case EGL_BAD_NATIVE_WINDOW: - return "EGL_BAD_NATIVE_WINDOW"; - case EGL_BAD_PARAMETER: - return "EGL_BAD_PARAMETER"; - case EGL_BAD_SURFACE: - return "EGL_BAD_SURFACE"; - default: - return "unknown"; - } -} - static gboolean gst_gl_context_egl_choose_format (GstGLContext * context, GError ** error) { @@ -227,7 +190,7 @@ gst_gl_context_egl_choose_config (GstGLContextEGL * egl, GstGLAPI gl_api, } else { g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_WRONG_CONFIG, "Failed to set window configuration: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); goto failure; } @@ -360,7 +323,7 @@ gst_gl_context_egl_create_context (GstGLContext * context, g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE, "Failed to initialize egl: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); goto failure; } @@ -395,7 +358,7 @@ gst_gl_context_egl_create_context (GstGLContext * context, if (!eglBindAPI (EGL_OPENGL_API)) { g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_FAILED, "Failed to bind OpenGL API: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); goto failure; } @@ -463,7 +426,7 @@ gst_gl_context_egl_create_context (GstGLContext * context, if (!eglBindAPI (EGL_OPENGL_ES_API)) { g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_FAILED, "Failed to bind OpenGL|ES API: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); goto failure; } @@ -511,7 +474,7 @@ gst_gl_context_egl_create_context (GstGLContext * context, g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_CREATE_CONTEXT, "Failed to create a OpenGL context: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); goto failure; } /* FIXME do we want a window vfunc ? */ @@ -586,7 +549,7 @@ gst_gl_context_egl_create_context (GstGLContext * context, } else { g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_FAILED, "Failed to create window surface: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); goto failure; } } @@ -679,7 +642,7 @@ gst_gl_context_egl_activate (GstGLContext * context, gboolean activate) egl->egl_surface = EGL_NO_SURFACE; if (!result) { GST_ERROR_OBJECT (context, "Failed to destroy old window surface: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); goto done; } } @@ -690,7 +653,7 @@ gst_gl_context_egl_activate (GstGLContext * context, gboolean activate) if (egl->egl_surface == EGL_NO_SURFACE) { GST_ERROR_OBJECT (context, "Failed to create window surface: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); result = FALSE; goto done; } @@ -705,7 +668,7 @@ gst_gl_context_egl_activate (GstGLContext * context, gboolean activate) if (!result) { GST_ERROR_OBJECT (context, "Failed to bind context to the current rendering thread: %s", - gst_gl_context_egl_get_error_string (eglGetError ())); + gst_egl_get_error_string (eglGetError ())); } done: