From a6038227c5dcee6b67762225e4960e6b60deb4bf Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Tue, 30 Jul 2019 15:02:13 +0200 Subject: [PATCH] Remove setDefaultBufferSize --- .../cameraview/internal/Issue514Workaround.java | 4 ++-- .../cameraview/picture/SnapshotGlPictureRecorder.java | 4 +++- .../cameraview/video/encoding/TextureMediaEncoder.java | 8 ++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/internal/Issue514Workaround.java b/cameraview/src/main/java/com/otaliastudios/cameraview/internal/Issue514Workaround.java index 5cf0909b..1fd2ea70 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/internal/Issue514Workaround.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/internal/Issue514Workaround.java @@ -14,9 +14,9 @@ public class Issue514Workaround { private final SurfaceTexture surfaceTexture; - public Issue514Workaround(int cameraTextureId, @NonNull Size size) { + public Issue514Workaround(int cameraTextureId, int outputWidth, int outputHeight) { surfaceTexture = new SurfaceTexture(cameraTextureId); - surfaceTexture.setDefaultBufferSize(size.getWidth(), size.getHeight()); + // surfaceTexture.setDefaultBufferSize(outputWidth, outputHeight); } public void onStart() { diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/SnapshotGlPictureRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/SnapshotGlPictureRecorder.java index 2fd05ca0..b90ba6ae 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/picture/SnapshotGlPictureRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/picture/SnapshotGlPictureRecorder.java @@ -169,7 +169,9 @@ public class SnapshotGlPictureRecorder extends PictureRecorder { final int fakeOutputTextureId = 9999; SurfaceTexture fakeOutputSurface = new SurfaceTexture(fakeOutputTextureId); fakeOutputSurface.setDefaultBufferSize(mResult.size.getWidth(), mResult.size.getHeight()); - final Issue514Workaround issue514Workaround = new Issue514Workaround(mTextureId, mResult.size); + final Issue514Workaround issue514Workaround = new Issue514Workaround(mTextureId, + mResult.size.getWidth(), + mResult.size.getHeight()); // 1. Create an EGL surface final EglCore core = new EglCore(eglContext, EglCore.FLAG_RECORDABLE); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java index d7b8eb75..2a85b265 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java @@ -6,6 +6,7 @@ import android.opengl.Matrix; import android.os.Build; import com.otaliastudios.cameraview.CameraLogger; +import com.otaliastudios.cameraview.internal.Issue514Workaround; import com.otaliastudios.cameraview.internal.egl.EglCore; import com.otaliastudios.cameraview.internal.egl.EglViewport; import com.otaliastudios.cameraview.internal.egl.EglWindowSurface; @@ -36,6 +37,7 @@ public class TextureMediaEncoder extends VideoMediaEncoder { return new Frame(); } }); + private Issue514Workaround mIssue514Workaround; public TextureMediaEncoder(@NonNull TextureConfig config) { super(config.copy()); @@ -93,10 +95,12 @@ public class TextureMediaEncoder extends VideoMediaEncoder { mTransformRotation = mConfig.rotation; mConfig.rotation = 0; super.onPrepare(controller, maxLengthMillis); + mIssue514Workaround = new Issue514Workaround(mConfig.textureId, mConfig.width, mConfig.height); mEglCore = new EglCore(mConfig.eglContext, EglCore.FLAG_RECORDABLE); mWindow = new EglWindowSurface(mEglCore, mSurface, true); mWindow.makeCurrent(); mViewport = new EglViewport(); + mIssue514Workaround.onStart(); } @EncoderThread @@ -165,6 +169,10 @@ public class TextureMediaEncoder extends VideoMediaEncoder { protected void onStopped() { super.onStopped(); mFramePool.clear(); + if (mIssue514Workaround != null) { + mIssue514Workaround.onEnd(); + mIssue514Workaround = null; + } if (mWindow != null) { mWindow.release(); mWindow = null;