diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2013-12-24 11:51:16 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2013-12-26 08:58:46 +0100 |
commit | e586d84eb58ccb68a8e747f5c1ce7cbdba168e3b (patch) | |
tree | 96090360d8e53cbbca9d6a763d73c4682eb87eb4 | |
parent | 3e79e7c588f4037aae5afff5e386538130489e23 (diff) | |
download | gstreamer-plugins-bad-e586d84eb58ccb68a8e747f5c1ce7cbdba168e3b.tar.gz |
eglglessink: Properly clean up renderbuffers and EAGL context
-rw-r--r-- | ext/eglgles/gstegladaptation_eagl.m | 9 |
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; } } |