Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(804)

Unified Diff: media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java

Issue 2787933002: ImageCapture: separate fillLightMode, redEyeReduction and Torch (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 {

Powered by Google App Engine
This is Rietveld 408576698