Revert "Revert "gl/eagl: try getting a gles3 context""

This reverts commit eb14273631.

vtdec now successfully outputs textures that can be converted by
glcolorconvert in GLES3 contexts.
This commit is contained in:
Matthew Waters 2016-06-24 13:41:11 +10:00 committed by Tim-Philipp Müller
parent 1153684a94
commit 9554725cc2

View file

@ -219,18 +219,30 @@ gst_gl_context_eagl_create_context (GstGLContext * context, GstGLAPI gl_api,
{ {
GstGLContextEagl *context_eagl = GST_GL_CONTEXT_EAGL (context); GstGLContextEagl *context_eagl = GST_GL_CONTEXT_EAGL (context);
GstGLContextEaglPrivate *priv = context_eagl->priv; GstGLContextEaglPrivate *priv = context_eagl->priv;
EAGLSharegroup *share_group;
if (other_context) { if (other_context) {
EAGLContext *external_gl_context = (EAGLContext *) EAGLContext *external_gl_context = (EAGLContext *)
gst_gl_context_get_gl_context (other_context); gst_gl_context_get_gl_context (other_context);
EAGLSharegroup *share_group = [external_gl_context sharegroup]; share_group = [external_gl_context sharegroup];
priv->eagl_context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2 sharegroup:share_group];
[share_group release];
} else { } else {
priv->eagl_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; share_group = nil;
} }
priv->eagl_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3 sharegroup:share_group];
if (!priv->eagl_context) {
priv->eagl_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2 sharegroup:share_group];
}
if (!priv->eagl_context) {
g_set_error_literal (error, GST_GL_CONTEXT_ERROR,
GST_GL_CONTEXT_ERROR_CREATE_CONTEXT,
"Failed to create OpenGL ES context");
return FALSE;
}
if (share_group)
[share_group release];
priv->eagl_layer = NULL; priv->eagl_layer = NULL;
priv->framebuffer = 0; priv->framebuffer = 0;
priv->color_renderbuffer = 0; priv->color_renderbuffer = 0;