summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Reufer <thomas@reufer.ch>2016-02-16 18:51:55 +0100
committerThomas Reufer <thomas@reufer.ch>2016-02-16 18:51:55 +0100
commitd7e51e632dca438ccecf4bfae8050f5865b7b490 (patch)
treed774cef66352a390a8e1d50c62db38eecdf635f2
parent51e8d1cd2b1242fa13acad322a51844cbb8d5d6c (diff)
downloadvdr-plugin-rpihddevice-d7e51e632dca438ccecf4bfae8050f5865b7b490.tar.gz
vdr-plugin-rpihddevice-d7e51e632dca438ccecf4bfae8050f5865b7b490.tar.bz2
proper release default surface after OSD reset
-rw-r--r--HISTORY1
-rw-r--r--ovgosd.c7
2 files changed, 7 insertions, 1 deletions
diff --git a/HISTORY b/HISTORY
index 55aeb76..ba51a17 100644
--- a/HISTORY
+++ b/HISTORY
@@ -5,6 +5,7 @@ VDR Plugin 'rpihddevice' Revision History
- set device name
- add option for dual display usage, see README
- fixed:
+ - proper release default surface after OSD reset
- don't ignore anti alias option for scaled bitmap drawing
- ignore pts from erroneous packets to avoid pts jumps on broken streams
- use omxplayer's parameters for deinterlacer
diff --git a/ovgosd.c b/ovgosd.c
index 1486cdf..6a155a9 100644
--- a/ovgosd.c
+++ b/ovgosd.c
@@ -1841,7 +1841,7 @@ protected:
cEgl::errStr(eglGetError()));
if (eglMakeCurrent(egl.display, egl.surface, egl.surface,
- egl.context) == EGL_FALSE)
+ egl.context) == EGL_FALSE)
ELOG("failed to connect context to surface: %s!",
cEgl::errStr(eglGetError()));
@@ -1881,6 +1881,11 @@ protected:
}
}
+ if (eglMakeCurrent(egl.display, EGL_NO_SURFACE, EGL_NO_SURFACE,
+ EGL_NO_CONTEXT) == EGL_FALSE)
+ ELOG("failed to release active surface from context: %s!",
+ cEgl::errStr(eglGetError()));
+
if (eglDestroySurface(egl.display, egl.surface) == EGL_FALSE)
ELOG("[EGL] failed to destroy surface: %s!",
cEgl::errStr(eglGetError()));