Remove setDefaultBufferSize

pull/528/head
Mattia Iavarone 6 years ago
parent 5d9f429b8a
commit a6038227c5
  1. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/internal/Issue514Workaround.java
  2. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/picture/SnapshotGlPictureRecorder.java
  3. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/video/encoding/TextureMediaEncoder.java

@ -14,9 +14,9 @@ public class Issue514Workaround {
private final SurfaceTexture surfaceTexture; private final SurfaceTexture surfaceTexture;
public Issue514Workaround(int cameraTextureId, @NonNull Size size) { public Issue514Workaround(int cameraTextureId, int outputWidth, int outputHeight) {
surfaceTexture = new SurfaceTexture(cameraTextureId); surfaceTexture = new SurfaceTexture(cameraTextureId);
surfaceTexture.setDefaultBufferSize(size.getWidth(), size.getHeight()); // surfaceTexture.setDefaultBufferSize(outputWidth, outputHeight);
} }
public void onStart() { public void onStart() {

@ -169,7 +169,9 @@ public class SnapshotGlPictureRecorder extends PictureRecorder {
final int fakeOutputTextureId = 9999; final int fakeOutputTextureId = 9999;
SurfaceTexture fakeOutputSurface = new SurfaceTexture(fakeOutputTextureId); SurfaceTexture fakeOutputSurface = new SurfaceTexture(fakeOutputTextureId);
fakeOutputSurface.setDefaultBufferSize(mResult.size.getWidth(), mResult.size.getHeight()); 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 // 1. Create an EGL surface
final EglCore core = new EglCore(eglContext, EglCore.FLAG_RECORDABLE); final EglCore core = new EglCore(eglContext, EglCore.FLAG_RECORDABLE);

@ -6,6 +6,7 @@ import android.opengl.Matrix;
import android.os.Build; import android.os.Build;
import com.otaliastudios.cameraview.CameraLogger; import com.otaliastudios.cameraview.CameraLogger;
import com.otaliastudios.cameraview.internal.Issue514Workaround;
import com.otaliastudios.cameraview.internal.egl.EglCore; import com.otaliastudios.cameraview.internal.egl.EglCore;
import com.otaliastudios.cameraview.internal.egl.EglViewport; import com.otaliastudios.cameraview.internal.egl.EglViewport;
import com.otaliastudios.cameraview.internal.egl.EglWindowSurface; import com.otaliastudios.cameraview.internal.egl.EglWindowSurface;
@ -36,6 +37,7 @@ public class TextureMediaEncoder extends VideoMediaEncoder<TextureConfig> {
return new Frame(); return new Frame();
} }
}); });
private Issue514Workaround mIssue514Workaround;
public TextureMediaEncoder(@NonNull TextureConfig config) { public TextureMediaEncoder(@NonNull TextureConfig config) {
super(config.copy()); super(config.copy());
@ -93,10 +95,12 @@ public class TextureMediaEncoder extends VideoMediaEncoder<TextureConfig> {
mTransformRotation = mConfig.rotation; mTransformRotation = mConfig.rotation;
mConfig.rotation = 0; mConfig.rotation = 0;
super.onPrepare(controller, maxLengthMillis); super.onPrepare(controller, maxLengthMillis);
mIssue514Workaround = new Issue514Workaround(mConfig.textureId, mConfig.width, mConfig.height);
mEglCore = new EglCore(mConfig.eglContext, EglCore.FLAG_RECORDABLE); mEglCore = new EglCore(mConfig.eglContext, EglCore.FLAG_RECORDABLE);
mWindow = new EglWindowSurface(mEglCore, mSurface, true); mWindow = new EglWindowSurface(mEglCore, mSurface, true);
mWindow.makeCurrent(); mWindow.makeCurrent();
mViewport = new EglViewport(); mViewport = new EglViewport();
mIssue514Workaround.onStart();
} }
@EncoderThread @EncoderThread
@ -165,6 +169,10 @@ public class TextureMediaEncoder extends VideoMediaEncoder<TextureConfig> {
protected void onStopped() { protected void onStopped() {
super.onStopped(); super.onStopped();
mFramePool.clear(); mFramePool.clear();
if (mIssue514Workaround != null) {
mIssue514Workaround.onEnd();
mIssue514Workaround = null;
}
if (mWindow != null) { if (mWindow != null) {
mWindow.release(); mWindow.release();
mWindow = null; mWindow = null;

Loading…
Cancel
Save