Fix demo app, add getFrameProcessingPoolSize

pull/704/head
Mattia Iavarone 6 years ago
parent ea29b0236f
commit 4f677aa9b2
  1. 1
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java
  2. 10
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java
  3. 19
      demo/src/main/java/com/otaliastudios/cameraview/demo/Option.java

@ -267,6 +267,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
setFrameProcessingMaxWidth(frameMaxWidth);
setFrameProcessingMaxHeight(frameMaxHeight);
setFrameProcessingFormat(frameFormat);
mCameraEngine.setHasFrameProcessors(!mFrameProcessors.isEmpty());
// Apply gestures
mapGesture(Gesture.TAP, gestures.getTapAction());

@ -81,7 +81,7 @@ public class Camera2Engine extends CameraBaseEngine implements
ImageReader.OnImageAvailableListener,
ActionHolder {
private static final int FRAME_PROCESSING_FORMAT = ImageFormat.NV21;
private static final int FRAME_PROCESSING_POOL_SIZE = 2;
@VisibleForTesting static final long METER_TIMEOUT = 2500;
private final CameraManager mManager;
@ -543,7 +543,7 @@ public class Camera2Engine extends CameraBaseEngine implements
mFrameProcessingSize.getWidth(),
mFrameProcessingSize.getHeight(),
mFrameProcessingFormat,
3);
getFrameProcessingPoolSize());
mFrameProcessingReader.setOnImageAvailableListener(this, null);
mFrameProcessingSurface = mFrameProcessingReader.getSurface();
outputSurfaces.add(mFrameProcessingSurface);
@ -1397,10 +1397,14 @@ public class Camera2Engine extends CameraBaseEngine implements
//region Frame Processing
protected int getFrameProcessingPoolSize() {
return FRAME_PROCESSING_POOL_SIZE;
}
@NonNull
@Override
protected FrameManager instantiateFrameManager() {
return new ImageFrameManager(2);
return new ImageFrameManager(getFrameProcessingPoolSize());
}
@Override

@ -4,6 +4,7 @@ import android.graphics.Color;
import androidx.annotation.NonNull;
import androidx.core.util.Pair;
import android.graphics.ImageFormat;
import android.view.View;
import android.view.ViewGroup;
@ -576,5 +577,23 @@ public abstract class Option<T> {
public Collection<Integer> getAll(@NonNull CameraView view, @NonNull CameraOptions options) {
return options.getSupportedFrameProcessingFormats();
}
@NonNull
@Override
public String toString(@NonNull Integer value) {
switch (value) {
case ImageFormat.NV21: return "NV21";
case ImageFormat.NV16: return "NV16";
case ImageFormat.JPEG: return "JPEG";
case ImageFormat.YUY2: return "YUY2";
case ImageFormat.YUV_420_888: return "YUV_420_888";
case ImageFormat.YUV_422_888: return "YUV_422_888";
case ImageFormat.YUV_444_888: return "YUV_444_888";
case ImageFormat.RAW10: return "RAW10";
case ImageFormat.RAW12: return "RAW12";
case ImageFormat.RAW_SENSOR: return "RAW_SENSOR";
}
return super.toString(value);
}
}
}

Loading…
Cancel
Save