Enable auto-focus on Camera2.

BUG=webrtc:6357

Review-Url: https://codereview.webrtc.org/2347823002
Cr-Commit-Position: refs/heads/master@{#14288}
diff --git a/webrtc/api/android/java/src/org/webrtc/Camera2Session.java b/webrtc/api/android/java/src/org/webrtc/Camera2Session.java
index 35a4862..460bba6 100644
--- a/webrtc/api/android/java/src/org/webrtc/Camera2Session.java
+++ b/webrtc/api/android/java/src/org/webrtc/Camera2Session.java
@@ -167,6 +167,7 @@
             CaptureRequest.CONTROL_AE_MODE_ON);
         captureRequestBuilder.set(CaptureRequest.CONTROL_AE_LOCK, false);
         chooseStabilizationMode(captureRequestBuilder);
+        chooseFocusMode(captureRequestBuilder);
 
         captureRequestBuilder.addTarget(surface);
         session.setRepeatingRequest(
@@ -248,6 +249,20 @@
       }
       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 {