Index: media/capture/video/android/video_capture_device_android.cc |
diff --git a/media/capture/video/android/video_capture_device_android.cc b/media/capture/video/android/video_capture_device_android.cc |
index 8e4945a54794c4210508d1991941c140855cd9c2..58cc5fe1628dad89a95775e3f0f23d5180f64865 100644 |
--- a/media/capture/video/android/video_capture_device_android.cc |
+++ b/media/capture/video/android/video_capture_device_android.cc |
@@ -40,12 +40,12 @@ mojom::MeteringMode ToMojomMeteringMode( |
return mojom::MeteringMode::SINGLE_SHOT; |
case PhotoCapabilities::AndroidMeteringMode::CONTINUOUS: |
return mojom::MeteringMode::CONTINUOUS; |
- case PhotoCapabilities::AndroidMeteringMode::UNAVAILABLE: |
- return mojom::MeteringMode::UNAVAILABLE; |
+ case PhotoCapabilities::AndroidMeteringMode::NONE: |
+ return mojom::MeteringMode::NONE; |
case PhotoCapabilities::AndroidMeteringMode::NOT_SET: |
NOTREACHED(); |
} |
- return mojom::MeteringMode::UNAVAILABLE; |
+ return mojom::MeteringMode::NONE; |
} |
PhotoCapabilities::AndroidMeteringMode ToAndroidMeteringMode( |
@@ -57,13 +57,50 @@ PhotoCapabilities::AndroidMeteringMode ToAndroidMeteringMode( |
return PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT; |
case mojom::MeteringMode::CONTINUOUS: |
return PhotoCapabilities::AndroidMeteringMode::CONTINUOUS; |
- case mojom::MeteringMode::UNAVAILABLE: |
- return PhotoCapabilities::AndroidMeteringMode::UNAVAILABLE; |
+ case mojom::MeteringMode::NONE: |
+ return PhotoCapabilities::AndroidMeteringMode::NONE; |
} |
NOTREACHED(); |
return PhotoCapabilities::AndroidMeteringMode::NOT_SET; |
} |
+mojom::FillLightMode ToMojomFillLightMode( |
+ PhotoCapabilities::AndroidFillLightMode android_mode) { |
+ switch (android_mode) { |
+ case PhotoCapabilities::AndroidFillLightMode::TORCH: |
+ return mojom::FillLightMode::TORCH; |
+ case PhotoCapabilities::AndroidFillLightMode::FLASH: |
+ return mojom::FillLightMode::FLASH; |
+ case PhotoCapabilities::AndroidFillLightMode::AUTO: |
+ return mojom::FillLightMode::AUTO; |
+ case PhotoCapabilities::AndroidFillLightMode::OFF: |
+ return mojom::FillLightMode::OFF; |
+ case PhotoCapabilities::AndroidFillLightMode::NONE: |
+ return mojom::FillLightMode::NONE; |
+ case PhotoCapabilities::AndroidFillLightMode::NOT_SET: |
+ NOTREACHED(); |
+ } |
+ return mojom::FillLightMode::NONE; |
+} |
+ |
+PhotoCapabilities::AndroidFillLightMode ToAndroidFillLightMode( |
+ mojom::FillLightMode mojom_mode) { |
+ switch (mojom_mode) { |
+ case mojom::FillLightMode::TORCH: |
+ return PhotoCapabilities::AndroidFillLightMode::TORCH; |
+ case mojom::FillLightMode::FLASH: |
+ return PhotoCapabilities::AndroidFillLightMode::FLASH; |
+ case mojom::FillLightMode::AUTO: |
+ return PhotoCapabilities::AndroidFillLightMode::AUTO; |
+ case mojom::FillLightMode::OFF: |
+ return PhotoCapabilities::AndroidFillLightMode::OFF; |
+ case mojom::FillLightMode::NONE: |
+ return PhotoCapabilities::AndroidFillLightMode::NONE; |
+ } |
+ NOTREACHED(); |
+ return PhotoCapabilities::AndroidFillLightMode::NOT_SET; |
+} |
+ |
} // anonymous namespace |
// static |
@@ -483,6 +520,8 @@ void VideoCaptureDeviceAndroid::DoGetPhotoCapabilities( |
caps.getMinExposureCompensation(); |
photo_capabilities->white_balance_mode = |
ToMojomMeteringMode(caps.getWhiteBalanceMode()); |
+ photo_capabilities->fill_light_mode = |
+ ToMojomFillLightMode(caps.getFillLightMode()); |
callback.Run(std::move(photo_capabilities)); |
} |
@@ -532,12 +571,18 @@ void VideoCaptureDeviceAndroid::DoSetPhotoOptions( |
const int iso = settings->has_iso ? settings->iso : 0; |
+ const PhotoCapabilities::AndroidFillLightMode fill_light_mode = |
+ settings->has_fill_light_mode |
+ ? ToAndroidFillLightMode(settings->fill_light_mode) |
+ : PhotoCapabilities::AndroidFillLightMode::NOT_SET; |
+ |
Java_VideoCapture_setPhotoOptions( |
env, j_capture_, zoom, static_cast<int>(focus_mode), |
static_cast<int>(exposure_mode), width, height, points_of_interest, |
settings->has_exposure_compensation, exposure_compensation, |
static_cast<int>(white_balance_mode), iso, |
- settings->has_red_eye_reduction, settings->red_eye_reduction); |
+ settings->has_red_eye_reduction, settings->red_eye_reduction, |
+ static_cast<int>(fill_light_mode)); |
callback.Run(true); |
} |