Index: webrtc/api/android/java/src/org/webrtc/Camera2Session.java |
diff --git a/webrtc/api/android/java/src/org/webrtc/Camera2Session.java b/webrtc/api/android/java/src/org/webrtc/Camera2Session.java |
index 65c649137e849fa85bdec1ce644ce3d0efd8241b..cc99e2e26ab3743fb1f6ac30ae83af2ea957dde8 100644 |
--- a/webrtc/api/android/java/src/org/webrtc/Camera2Session.java |
+++ b/webrtc/api/android/java/src/org/webrtc/Camera2Session.java |
@@ -169,6 +169,7 @@ public class Camera2Session implements CameraSession { |
CaptureRequest.CONTROL_AE_MODE_ON); |
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_LOCK, false); |
chooseStabilizationMode(captureRequestBuilder); |
+ chooseFocusMode(captureRequestBuilder); |
captureRequestBuilder.addTarget(surface); |
session.setRepeatingRequest( |
@@ -253,6 +254,20 @@ public class Camera2Session implements CameraSession { |
} |
Logging.d(TAG, "Stabilization not available."); |
} |
+ |
+ private void chooseFocusMode(CaptureRequest.Builder captureRequestBuilder) { |
+ final int[] availableFocusModes = cameraCharacteristics.get( |
+ CameraCharacteristics.CONTROL_AF_AVAILABLE_MODES); |
+ for (int mode : availableFocusModes) { |
+ if (mode == CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_VIDEO) { |
+ captureRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, |
+ CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_VIDEO); |
+ Logging.d(TAG, "Using continuous video auto-focus."); |
+ return; |
+ } |
+ } |
+ Logging.d(TAG, "Auto-focus is not available."); |
+ } |
} |
private class CameraCaptureCallback extends CameraCaptureSession.CaptureCallback { |