Fix a bug with VideoRendererOutputCapturer when extracting frames of different size
Currently, when the VideoRendererOutputCapturer updates output size, it will set the new surface, then release the old surface. This can lead to problem when both surface depends on EGL, since the second release() can release EGL resources of the first surface. This CL reverses this process, and ensures that the old surface is released before the new one is created. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=205235451
This commit is contained in:
parent
a076924caa
commit
ce62934861
@ -149,6 +149,11 @@ public final class EGLSurfaceTexture implements SurfaceTexture.OnFrameAvailableL
|
|||||||
if (Util.SDK_INT >= 19) {
|
if (Util.SDK_INT >= 19) {
|
||||||
EGL14.eglReleaseThread();
|
EGL14.eglReleaseThread();
|
||||||
}
|
}
|
||||||
|
if (display != null && !display.equals(EGL14.EGL_NO_DISPLAY)) {
|
||||||
|
// Android is unusual in that it uses a reference-counted EGLDisplay. So for
|
||||||
|
// every eglInitialize() we need an eglTerminate().
|
||||||
|
EGL14.eglTerminate(display);
|
||||||
|
}
|
||||||
display = null;
|
display = null;
|
||||||
context = null;
|
context = null;
|
||||||
surface = null;
|
surface = null;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user