summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2013-12-24 11:51:16 +0100
committerSebastian Dröge <sebastian@centricular.com>2013-12-26 08:58:46 +0100
commite586d84eb58ccb68a8e747f5c1ce7cbdba168e3b (patch)
tree96090360d8e53cbbca9d6a763d73c4682eb87eb4
parent3e79e7c588f4037aae5afff5e386538130489e23 (diff)
downloadgstreamer-plugins-bad-e586d84eb58ccb68a8e747f5c1ce7cbdba168e3b.tar.gz
eglglessink: Properly clean up renderbuffers and EAGL context
-rw-r--r--ext/eglgles/gstegladaptation_eagl.m9
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/eglgles/gstegladaptation_eagl.m b/ext/eglgles/gstegladaptation_eagl.m
index 9d7d608c4..3177ca625 100644
--- a/ext/eglgles/gstegladaptation_eagl.m
+++ b/ext/eglgles/gstegladaptation_eagl.m
@@ -305,6 +305,12 @@ gst_egl_adaptation_destroy_surface (GstEglAdaptationContext * ctx)
if (ctx->eaglctx->framebuffer) {
glDeleteFramebuffers (1, &ctx->eaglctx->framebuffer);
ctx->eaglctx->framebuffer = 0;
+
+ glDeleteRenderbuffers(1, &ctx->eaglctx->depth_renderbuffer);
+ ctx->eaglctx->depth_renderbuffer = 0;
+ glDeleteRenderbuffers(1, &ctx->eaglctx->color_renderbuffer);
+ ctx->eaglctx->color_renderbuffer = 0;
+
ctx->have_surface = FALSE;
}
}
@@ -330,8 +336,7 @@ void
gst_egl_adaptation_destroy_context (GstEglAdaptationContext * ctx)
{
if (ctx->eaglctx->eagl_context) {
- /* Do not release/dealloc as it seems that EAGL expects to do all
- * the cleanup by itself when a new context replaces the old one */
+ [ctx->eaglctx->eagl_context release];
ctx->eaglctx->eagl_context = NULL;
}
}