From dd1426b525cfa44a931a98cb22e8a828fba267c3 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Wed, 20 Mar 2013 18:15:29 -0300 Subject: eglglessink: eagl: more build fixes --- configure.ac | 2 -- ext/eglgles/Makefile.am | 2 +- ext/eglgles/gstegladaptation.c | 12 ++++-------- ext/eglgles/gstegladaptation_eagl.m | 14 ++++++++------ ext/eglgles/gstegladaptation_egl.c | 10 ++++++++++ 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/configure.ac b/configure.ac index 239425673..29b10a6f7 100644 --- a/configure.ac +++ b/configure.ac @@ -1731,8 +1731,6 @@ AG_GST_CHECK_FEATURE(EGLGLES, [eglgles sink], eglgles, [ ;; ios) HAVE_EGLGLES="yes" - EGLGLES_LIBS="-Wl,-framework -Wl,OpenGLES" - EGLGLES_CFLAGS="-Wl,-framework -Wl,OpenGLES" ;; *) AC_MSG_ERROR([invalid EGL window system specified]) diff --git a/ext/eglgles/Makefile.am b/ext/eglgles/Makefile.am index cbfa4844a..ced394de4 100644 --- a/ext/eglgles/Makefile.am +++ b/ext/eglgles/Makefile.am @@ -21,7 +21,7 @@ libgsteglglessink_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \ -lgstinterfaces-$(GST_MAJORMINOR) if HAVE_IOS -libgsteglglessink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,OpenGLES +libgsteglglessink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework,OpenGLES -Wl,-framework,QuartzCore -Wl,-framework,UIKit -Wl,-framework,Foundation else libgsteglglessink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) endif diff --git a/ext/eglgles/gstegladaptation.c b/ext/eglgles/gstegladaptation.c index db06816a5..77702798f 100644 --- a/ext/eglgles/gstegladaptation.c +++ b/ext/eglgles/gstegladaptation.c @@ -320,7 +320,7 @@ gst_egl_adaptation_choose_config (GstEglAdaptationContext * ctx) gint egl_configs; if (!_gst_egl_choose_config (ctx, FALSE, &egl_configs)) { - goto HANDLE_EGL_ERROR; + goto HANDLE_ERROR; } if (egl_configs < 1) { @@ -331,14 +331,12 @@ gst_egl_adaptation_choose_config (GstEglAdaptationContext * ctx) if (!gst_egl_adaptation_create_egl_context (ctx)) { GST_ERROR_OBJECT (ctx->element, "Error getting context, eglCreateContext"); - goto HANDLE_EGL_ERROR; + goto HANDLE_ERROR; } return TRUE; /* Errors */ -HANDLE_EGL_ERROR: - GST_ERROR_OBJECT (ctx->element, "EGL call returned error %x", eglGetError ()); HANDLE_ERROR: GST_ERROR_OBJECT (ctx->element, "Couldn't choose an usable config"); return FALSE; @@ -460,13 +458,13 @@ gst_egl_adaptation_init_egl_surface (GstEglAdaptationContext * ctx, GST_DEBUG_OBJECT (ctx->element, "Enter EGL surface setup"); if (!gst_egl_adaptation_create_surface (ctx)) { - goto HANDLE_EGL_ERROR_LOCKED; + goto HANDLE_ERROR_LOCKED; } gst_egl_adaptation_query_buffer_preserved (ctx); if (!gst_egl_adaptation_context_make_current (ctx, TRUE)) - goto HANDLE_EGL_ERROR_LOCKED; + goto HANDLE_ERROR_LOCKED; gst_egl_adaptation_query_par (ctx); @@ -657,8 +655,6 @@ gst_egl_adaptation_init_egl_surface (GstEglAdaptationContext * ctx, return TRUE; /* Errors */ -HANDLE_EGL_ERROR_LOCKED: - GST_ERROR_OBJECT (ctx->element, "EGL call returned error %x", eglGetError ()); HANDLE_ERROR_LOCKED: HANDLE_ERROR: GST_ERROR_OBJECT (ctx->element, "Couldn't setup EGL surface"); diff --git a/ext/eglgles/gstegladaptation_eagl.m b/ext/eglgles/gstegladaptation_eagl.m index 69d3f602d..a7a0dd5a3 100644 --- a/ext/eglgles/gstegladaptation_eagl.m +++ b/ext/eglgles/gstegladaptation_eagl.m @@ -207,6 +207,7 @@ _gst_egl_choose_config (GstEglAdaptationContext * ctx, gboolean try_only, gint * if (num_configs) *num_configs = 1; + return TRUE; } void @@ -217,8 +218,8 @@ gst_egl_adaptation_query_buffer_preserved (GstEglAdaptationContext * ctx) ctx->buffer_preserved = FALSE; if ([dict objectForKey: kEAGLDrawablePropertyRetainedBacking] != nil) { - NSNumber n = [dict objectForKey: kEAGLDrawablePropertyRetainedBacking]; - ctx->buffer_preserved = n != [NSNumber numberWithBool:NO]; + NSNumber *n = [dict objectForKey: kEAGLDrawablePropertyRetainedBacking]; + ctx->buffer_preserved = [n boolValue] != NO; } else { GST_DEBUG_OBJECT (ctx->element, "No information about buffer preserving in layer properties"); } @@ -257,7 +258,8 @@ gst_egl_adaptation_context_update_surface_dimensions (GstEglAdaptationContext * void gst_egl_adaptation_context_init_egl_exts (GstEglAdaptationContext * ctx) { - NSString *extensionsString = [NSString stringWithCString:glGetString(GL_EXTENSIONS) encoding: NSASCIIStringEncoding]; + const gchar *extensions = (const gchar *) glGetString(GL_EXTENSIONS); + NSString *extensionsString = [NSString stringWithCString:extensions encoding: NSASCIIStringEncoding]; GST_DEBUG_OBJECT (ctx->element, "Available GL extensions: %s\n", GST_STR_NULL ([extensionsString UTF8String])); @@ -267,7 +269,7 @@ void gst_egl_adaptation_destroy_surface (GstEglAdaptationContext * ctx) { if (ctx->eaglctx->framebuffer) { - glDeleteFrameBuffers (1, &ctx->eaglctx->framebuffer); + glDeleteFramebuffers (1, &ctx->eaglctx->framebuffer); ctx->eaglctx->framebuffer = 0; ctx->have_surface = FALSE; } @@ -294,7 +296,7 @@ gst_egl_adaptation_context_swap_buffers (GstEglAdaptationContext * ctx) void gst_egl_adaptation_context_set_window (GstEglAdaptationContext * ctx, guintptr window) { - ctx->eaglctx->window = window; + ctx->eaglctx->window = (UIView *) window; } void @@ -306,5 +308,5 @@ gst_egl_adaptation_context_update_used_window (GstEglAdaptationContext * ctx) guintptr gst_egl_adaptation_context_get_window (GstEglAdaptationContext * ctx) { - return ctx->eaglctx->window ? [ctx->eaglctx->window id] : 0; + return (guintptr) ctx->eaglctx->window; } diff --git a/ext/eglgles/gstegladaptation_egl.c b/ext/eglgles/gstegladaptation_egl.c index 2cc028600..fdefebd8e 100644 --- a/ext/eglgles/gstegladaptation_egl.c +++ b/ext/eglgles/gstegladaptation_egl.c @@ -207,6 +207,8 @@ _gst_egl_choose_config (GstEglAdaptationContext * ctx, gboolean try_only, if (!ret) { got_egl_error ("eglChooseConfig"); GST_ERROR_OBJECT (ctx->element, "eglChooseConfig failed"); + GST_ERROR_OBJECT (ctx->element, "EGL call returned error %x", + eglGetError ()); } if (num_configs) @@ -224,6 +226,8 @@ gst_egl_adaptation_create_egl_context (GstEglAdaptationContext * ctx) ctx->eglglesctx->config, EGL_NO_CONTEXT, con_attribs); if (ctx->eglglesctx->eglcontext == EGL_NO_CONTEXT) { + GST_ERROR_OBJECT (ctx->element, "EGL call returned error %x", + eglGetError ()); return FALSE; } @@ -255,6 +259,8 @@ gst_egl_adaptation_context_make_current (GstEglAdaptationContext * ctx, ctx->eglglesctx->eglcontext)) { got_egl_error ("eglMakeCurrent"); GST_ERROR_OBJECT (ctx->element, "Couldn't bind context"); + GST_ERROR_OBJECT (ctx->element, "EGL call returned error %x", + eglGetError ()); return FALSE; } } else { @@ -264,6 +270,8 @@ gst_egl_adaptation_context_make_current (GstEglAdaptationContext * ctx, EGL_NO_SURFACE, EGL_NO_CONTEXT)) { got_egl_error ("eglMakeCurrent"); GST_ERROR_OBJECT (ctx->element, "Couldn't unbind context"); + GST_ERROR_OBJECT (ctx->element, "EGL call returned error %x", + eglGetError ()); return FALSE; } } @@ -281,6 +289,8 @@ gst_egl_adaptation_create_surface (GstEglAdaptationContext * ctx) if (ctx->eglglesctx->surface == EGL_NO_SURFACE) { got_egl_error ("eglCreateWindowSurface"); GST_ERROR_OBJECT (ctx->element, "Can't create surface"); + GST_ERROR_OBJECT (ctx->element, "EGL call returned error %x", + eglGetError ()); return FALSE; } return TRUE; -- cgit v1.2.1