Commit ce629348 by hoangtc Committed by Oliver Woodman

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
parent a076924c
......@@ -149,6 +149,11 @@ public final class EGLSurfaceTexture implements SurfaceTexture.OnFrameAvailableL
if (Util.SDK_INT >= 19) {
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;
context = null;
surface = null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment