Fix TORCH bug

pull/580/head
Mattia Iavarone 6 years ago
parent e22541d5f3
commit 40180462ab
  1. 9
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/Camera2Engine.java
  2. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoExposure.java
  3. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoFocus.java
  4. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/locking/AutoWhiteBalance.java
  5. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoExposure.java
  6. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoFocus.java
  7. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/engine/metering/AutoWhiteBalance.java
  8. 7
      cameraview/src/main/java/com/otaliastudios/cameraview/picture/Snapshot2PictureRecorder.java
  9. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/preview/GlCameraPreview.java
  10. 2
      demo/src/main/java/com/otaliastudios/cameraview/demo/CameraActivity.java
  11. 3
      demo/src/main/res/layout/activity_camera.xml

@ -260,9 +260,16 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv
if (mLocker != null && mLocker.isLocking()) {
mLocker.onCapture(result);
}
Integer aeMode = result.get(CaptureResult.CONTROL_AE_MODE);
Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE);
Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);
Boolean aeLock = result.get(CaptureResult.CONTROL_AE_LOCK);
Integer aeTriggerState = result.get(CaptureResult.CONTROL_AE_PRECAPTURE_TRIGGER);
LOG.v("metering:", "aeState:", aeState, "aeTriggerState:", aeTriggerState);
Integer afTriggerState = result.get(CaptureResult.CONTROL_AF_TRIGGER);
LOG.v("metering:",
"aeMode:", aeMode, "aeLock:", aeLock,
"aeState:", aeState, "aeTriggerState:", aeTriggerState,
"afState:", afState, "afTriggerState:", afTriggerState);
}
};

@ -14,7 +14,7 @@ import com.otaliastudios.cameraview.CameraLogger;
public class AutoExposure extends Parameter {
private static final String TAG = AutoExposure.class.getSimpleName();
private static final CameraLogger LOG = CameraLogger.create(TAG);
private static final CameraLogger LOG = CameraLogger.create(TAG + "Locking");
public AutoExposure(@NonNull LockingChangeCallback callback) {
super(callback);

@ -14,7 +14,7 @@ import com.otaliastudios.cameraview.CameraLogger;
public class AutoFocus extends Parameter {
private static final String TAG = AutoFocus.class.getSimpleName();
private static final CameraLogger LOG = CameraLogger.create(TAG);
private static final CameraLogger LOG = CameraLogger.create(TAG + "Locking");
public AutoFocus(@NonNull LockingChangeCallback callback) {
super(callback);

@ -14,7 +14,7 @@ import com.otaliastudios.cameraview.CameraLogger;
public class AutoWhiteBalance extends Parameter {
private static final String TAG = AutoWhiteBalance.class.getSimpleName();
private static final CameraLogger LOG = CameraLogger.create(TAG);
private static final CameraLogger LOG = CameraLogger.create(TAG + "Locking");
public AutoWhiteBalance(@NonNull LockingChangeCallback callback) {
super(callback);

@ -18,7 +18,7 @@ import java.util.List;
public class AutoExposure extends Parameter {
private static final String TAG = AutoExposure.class.getSimpleName();
private static final CameraLogger LOG = CameraLogger.create(TAG);
private static final CameraLogger LOG = CameraLogger.create(TAG + "Metering");
public AutoExposure(@NonNull MeteringChangeCallback callback) {
super(callback);

@ -18,7 +18,7 @@ import java.util.List;
public class AutoFocus extends Parameter {
private static final String TAG = AutoFocus.class.getSimpleName();
private static final CameraLogger LOG = CameraLogger.create(TAG);
private static final CameraLogger LOG = CameraLogger.create(TAG + "Metering");
public AutoFocus(@NonNull MeteringChangeCallback callback) {
super(callback);

@ -18,7 +18,7 @@ import java.util.List;
public class AutoWhiteBalance extends Parameter {
private static final String TAG = AutoWhiteBalance.class.getSimpleName();
private static final CameraLogger LOG = CameraLogger.create(TAG);
private static final CameraLogger LOG = CameraLogger.create(TAG + "Metering");
public AutoWhiteBalance(@NonNull MeteringChangeCallback callback) {
super(callback);

@ -155,9 +155,12 @@ public class Snapshot2PictureRecorder extends SnapshotGlPictureRecorder implemen
// Revert our changes.
LOG.i("dispatchResult:", "Reverting the capture intent changes.");
try {
// See Camera2Engine.setFlash(). It's better to change these one by one.
// See Camera2Engine.setFlash() comments: turning TORCH off has bugs and we must do
// as follows.
mBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
mBuilder.set(CaptureRequest.FLASH_MODE, CaptureResult.FLASH_MODE_OFF);
mSession.capture(mBuilder.build(), null, null);
mBuilder.set(CaptureRequest.CONTROL_AE_MODE, mOriginalAeMode);
mSession.capture(mBuilder.build(), mCallback, null);
mBuilder.set(CaptureRequest.FLASH_MODE, mOriginalFlashMode);
mSession.setRepeatingRequest(mBuilder.build(), mCallback, null);
} catch (CameraAccessException ignore) {}

@ -196,7 +196,7 @@ public class GlCameraPreview extends FilterCameraPreview<GLSurfaceView, SurfaceT
// we'll just re-use whatever was there before.
mInputSurfaceTexture.updateTexImage();
mInputSurfaceTexture.getTransformMatrix(mTransformMatrix);
LOG.v("onDrawFrame:", "timestamp:", mInputSurfaceTexture.getTimestamp());
// LOG.v("onDrawFrame:", "timestamp:", mInputSurfaceTexture.getTimestamp());
// For Camera2, apply the draw rotation.

@ -213,7 +213,7 @@ public class CameraActivity extends AppCompatActivity implements View.OnClickLis
PicturePreviewActivity.setPictureResult(result);
Intent intent = new Intent(CameraActivity.this, PicturePreviewActivity.class);
intent.putExtra("delay", callbackTime - mCaptureTime);
startActivity(intent);
// startActivity(intent);
mCaptureTime = 0;
LOG.w("onPictureTaken called! Launched activity.");
}

@ -20,7 +20,8 @@
app:cameraPreview="glSurface"
app:cameraPlaySounds="true"
app:cameraGrid="off"
app:cameraFlash="auto"
app:cameraFlash="on"
app:cameraPictureSnapshotMetering="true"
app:cameraAudio="on"
app:cameraFacing="back"
app:cameraGestureTap="autoFocus"

Loading…
Cancel
Save