summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <thiago.sousa.santos@collabora.com>2013-03-20 18:15:29 -0300
committerThiago Santos <thiago.sousa.santos@collabora.com>2013-04-16 16:08:51 -0300
commitdd1426b525cfa44a931a98cb22e8a828fba267c3 (patch)
treed387620989b7bb594b65d8359d8efa73cdc2b9e3
parentdaab2cf92c8a5538d2dd9741b9c79660d969d20e (diff)
downloadgstreamer-plugins-bad-dd1426b525cfa44a931a98cb22e8a828fba267c3.tar.gz
eglglessink: eagl: more build fixes
-rw-r--r--configure.ac2
-rw-r--r--ext/eglgles/Makefile.am2
-rw-r--r--ext/eglgles/gstegladaptation.c12
-rw-r--r--ext/eglgles/gstegladaptation_eagl.m14
-rw-r--r--ext/eglgles/gstegladaptation_egl.c10
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;