| Index: media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java
|
| diff --git a/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java b/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java
|
| index db3f6e3cae640953f9ecefdb8b913adea91cb474..016ae4c53f7f1d3cb64df89cc45b9c23fcac0549 100644
|
| --- a/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java
|
| +++ b/media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java
|
| @@ -540,29 +540,27 @@ public class VideoCaptureCamera
|
| if (index >= 0) builder.setCurrentColorTemperature(COLOR_TEMPERATURES_MAP.keyAt(index));
|
| }
|
|
|
| - if (parameters.getSupportedFlashModes() == null) {
|
| - builder.setFillLightMode(AndroidFillLightMode.NONE);
|
| - } else {
|
| - switch (parameters.getFlashMode()) {
|
| - case android.hardware.Camera.Parameters.FLASH_MODE_OFF:
|
| - builder.setFillLightMode(AndroidFillLightMode.OFF);
|
| - break;
|
| - case android.hardware.Camera.Parameters.FLASH_MODE_AUTO:
|
| - builder.setFillLightMode(AndroidFillLightMode.AUTO);
|
| - break;
|
| - case android.hardware.Camera.Parameters.FLASH_MODE_RED_EYE:
|
| - builder.setRedEyeReduction(true);
|
| - builder.setFillLightMode(AndroidFillLightMode.AUTO);
|
| - break;
|
| - case android.hardware.Camera.Parameters.FLASH_MODE_ON:
|
| - builder.setFillLightMode(AndroidFillLightMode.FLASH);
|
| - break;
|
| - case android.hardware.Camera.Parameters.FLASH_MODE_TORCH:
|
| - builder.setFillLightMode(AndroidFillLightMode.TORCH);
|
| - break;
|
| - default:
|
| - builder.setFillLightMode(AndroidFillLightMode.NONE);
|
| + final List<String> flashModes = parameters.getSupportedFlashModes();
|
| + if (flashModes != null) {
|
| + builder.setTorch(
|
| + flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_TORCH));
|
| + builder.setRedEyeReduction(
|
| + flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_RED_EYE));
|
| +
|
| + ArrayList<Integer> modes = new ArrayList<Integer>(0);
|
| + if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_OFF)) {
|
| + modes.add(Integer.valueOf(AndroidFillLightMode.OFF));
|
| + }
|
| + if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_AUTO)) {
|
| + modes.add(Integer.valueOf(AndroidFillLightMode.AUTO));
|
| + }
|
| + if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_ON)) {
|
| + modes.add(Integer.valueOf(AndroidFillLightMode.FLASH));
|
| }
|
| +
|
| + int[] modesAsIntArray = new int[modes.size()];
|
| + for (int i = 0; i < modes.size(); i++) modesAsIntArray[i] = modes.get(i).intValue();
|
| + builder.setFillLightModes(modesAsIntArray);
|
| }
|
|
|
| return builder.build();
|
| @@ -573,7 +571,7 @@ public class VideoCaptureCamera
|
| double height, float[] pointsOfInterest2D, boolean hasExposureCompensation,
|
| double exposureCompensation, int whiteBalanceMode, double iso,
|
| boolean hasRedEyeReduction, boolean redEyeReduction, int fillLightMode,
|
| - double colorTemperature) {
|
| + boolean hasTorch, boolean torch, double colorTemperature) {
|
| android.hardware.Camera.Parameters parameters = getCameraParameters(mCamera);
|
|
|
| if (parameters.isZoomSupported() && zoom > 0) {
|
| @@ -667,10 +665,8 @@ public class VideoCaptureCamera
|
| }
|
| }
|
|
|
| - // NONE is only used for getting capabilities, to signify "no flash unit". Ignore it.
|
| if (parameters.getSupportedFlashModes() != null
|
| - && fillLightMode != AndroidFillLightMode.NOT_SET
|
| - && fillLightMode != AndroidFillLightMode.NONE) {
|
| + && fillLightMode != AndroidFillLightMode.NOT_SET) {
|
| switch (fillLightMode) {
|
| case AndroidFillLightMode.OFF:
|
| parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_OFF);
|
| @@ -683,11 +679,11 @@ public class VideoCaptureCamera
|
| case AndroidFillLightMode.FLASH:
|
| parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_ON);
|
| break;
|
| - case AndroidFillLightMode.TORCH:
|
| - parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH);
|
| - break;
|
| default:
|
| }
|
| + if (hasTorch && torch) {
|
| + parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH);
|
| + }
|
| }
|
|
|
| try {
|
|
|