| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/capture/video/android/video_capture_device_android.h" | 5 #include "media/capture/video/android/video_capture_device_android.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 | 33 |
| 34 mojom::MeteringMode ToMojomMeteringMode( | 34 mojom::MeteringMode ToMojomMeteringMode( |
| 35 PhotoCapabilities::AndroidMeteringMode android_mode) { | 35 PhotoCapabilities::AndroidMeteringMode android_mode) { |
| 36 switch (android_mode) { | 36 switch (android_mode) { |
| 37 case PhotoCapabilities::AndroidMeteringMode::FIXED: | 37 case PhotoCapabilities::AndroidMeteringMode::FIXED: |
| 38 return mojom::MeteringMode::MANUAL; | 38 return mojom::MeteringMode::MANUAL; |
| 39 case PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT: | 39 case PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT: |
| 40 return mojom::MeteringMode::SINGLE_SHOT; | 40 return mojom::MeteringMode::SINGLE_SHOT; |
| 41 case PhotoCapabilities::AndroidMeteringMode::CONTINUOUS: | 41 case PhotoCapabilities::AndroidMeteringMode::CONTINUOUS: |
| 42 return mojom::MeteringMode::CONTINUOUS; | 42 return mojom::MeteringMode::CONTINUOUS; |
| 43 case PhotoCapabilities::AndroidMeteringMode::UNAVAILABLE: | 43 case PhotoCapabilities::AndroidMeteringMode::NONE: |
| 44 return mojom::MeteringMode::UNAVAILABLE; | 44 return mojom::MeteringMode::NONE; |
| 45 case PhotoCapabilities::AndroidMeteringMode::NOT_SET: | 45 case PhotoCapabilities::AndroidMeteringMode::NOT_SET: |
| 46 NOTREACHED(); | 46 NOTREACHED(); |
| 47 } | 47 } |
| 48 return mojom::MeteringMode::UNAVAILABLE; | 48 return mojom::MeteringMode::NONE; |
| 49 } | 49 } |
| 50 | 50 |
| 51 PhotoCapabilities::AndroidMeteringMode ToAndroidMeteringMode( | 51 PhotoCapabilities::AndroidMeteringMode ToAndroidMeteringMode( |
| 52 mojom::MeteringMode mojom_mode) { | 52 mojom::MeteringMode mojom_mode) { |
| 53 switch (mojom_mode) { | 53 switch (mojom_mode) { |
| 54 case mojom::MeteringMode::MANUAL: | 54 case mojom::MeteringMode::MANUAL: |
| 55 return PhotoCapabilities::AndroidMeteringMode::FIXED; | 55 return PhotoCapabilities::AndroidMeteringMode::FIXED; |
| 56 case mojom::MeteringMode::SINGLE_SHOT: | 56 case mojom::MeteringMode::SINGLE_SHOT: |
| 57 return PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT; | 57 return PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT; |
| 58 case mojom::MeteringMode::CONTINUOUS: | 58 case mojom::MeteringMode::CONTINUOUS: |
| 59 return PhotoCapabilities::AndroidMeteringMode::CONTINUOUS; | 59 return PhotoCapabilities::AndroidMeteringMode::CONTINUOUS; |
| 60 case mojom::MeteringMode::UNAVAILABLE: | 60 case mojom::MeteringMode::NONE: |
| 61 return PhotoCapabilities::AndroidMeteringMode::UNAVAILABLE; | 61 return PhotoCapabilities::AndroidMeteringMode::NONE; |
| 62 } | 62 } |
| 63 NOTREACHED(); | 63 NOTREACHED(); |
| 64 return PhotoCapabilities::AndroidMeteringMode::NOT_SET; | 64 return PhotoCapabilities::AndroidMeteringMode::NOT_SET; |
| 65 } | 65 } |
| 66 | 66 |
| 67 mojom::FillLightMode ToMojomFillLightMode( |
| 68 PhotoCapabilities::AndroidFillLightMode android_mode) { |
| 69 switch (android_mode) { |
| 70 case PhotoCapabilities::AndroidFillLightMode::TORCH: |
| 71 return mojom::FillLightMode::TORCH; |
| 72 case PhotoCapabilities::AndroidFillLightMode::FLASH: |
| 73 return mojom::FillLightMode::FLASH; |
| 74 case PhotoCapabilities::AndroidFillLightMode::AUTO: |
| 75 return mojom::FillLightMode::AUTO; |
| 76 case PhotoCapabilities::AndroidFillLightMode::OFF: |
| 77 return mojom::FillLightMode::OFF; |
| 78 case PhotoCapabilities::AndroidFillLightMode::NONE: |
| 79 return mojom::FillLightMode::NONE; |
| 80 case PhotoCapabilities::AndroidFillLightMode::NOT_SET: |
| 81 NOTREACHED(); |
| 82 } |
| 83 return mojom::FillLightMode::NONE; |
| 84 } |
| 85 |
| 86 PhotoCapabilities::AndroidFillLightMode ToAndroidFillLightMode( |
| 87 mojom::FillLightMode mojom_mode) { |
| 88 switch (mojom_mode) { |
| 89 case mojom::FillLightMode::TORCH: |
| 90 return PhotoCapabilities::AndroidFillLightMode::TORCH; |
| 91 case mojom::FillLightMode::FLASH: |
| 92 return PhotoCapabilities::AndroidFillLightMode::FLASH; |
| 93 case mojom::FillLightMode::AUTO: |
| 94 return PhotoCapabilities::AndroidFillLightMode::AUTO; |
| 95 case mojom::FillLightMode::OFF: |
| 96 return PhotoCapabilities::AndroidFillLightMode::OFF; |
| 97 case mojom::FillLightMode::NONE: |
| 98 return PhotoCapabilities::AndroidFillLightMode::NONE; |
| 99 } |
| 100 NOTREACHED(); |
| 101 return PhotoCapabilities::AndroidFillLightMode::NOT_SET; |
| 102 } |
| 103 |
| 67 } // anonymous namespace | 104 } // anonymous namespace |
| 68 | 105 |
| 69 // static | 106 // static |
| 70 bool VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice(JNIEnv* env) { | 107 bool VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice(JNIEnv* env) { |
| 71 return RegisterNativesImpl(env); | 108 return RegisterNativesImpl(env); |
| 72 } | 109 } |
| 73 | 110 |
| 74 VideoCaptureDeviceAndroid::VideoCaptureDeviceAndroid( | 111 VideoCaptureDeviceAndroid::VideoCaptureDeviceAndroid( |
| 75 const VideoCaptureDeviceDescriptor& device_descriptor) | 112 const VideoCaptureDeviceDescriptor& device_descriptor) |
| 76 : main_task_runner_(base::ThreadTaskRunnerHandle::Get()), | 113 : main_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 ToMojomMeteringMode(caps.getExposureMode()); | 513 ToMojomMeteringMode(caps.getExposureMode()); |
| 477 photo_capabilities->exposure_compensation = mojom::Range::New(); | 514 photo_capabilities->exposure_compensation = mojom::Range::New(); |
| 478 photo_capabilities->exposure_compensation->current = | 515 photo_capabilities->exposure_compensation->current = |
| 479 caps.getCurrentExposureCompensation(); | 516 caps.getCurrentExposureCompensation(); |
| 480 photo_capabilities->exposure_compensation->max = | 517 photo_capabilities->exposure_compensation->max = |
| 481 caps.getMaxExposureCompensation(); | 518 caps.getMaxExposureCompensation(); |
| 482 photo_capabilities->exposure_compensation->min = | 519 photo_capabilities->exposure_compensation->min = |
| 483 caps.getMinExposureCompensation(); | 520 caps.getMinExposureCompensation(); |
| 484 photo_capabilities->white_balance_mode = | 521 photo_capabilities->white_balance_mode = |
| 485 ToMojomMeteringMode(caps.getWhiteBalanceMode()); | 522 ToMojomMeteringMode(caps.getWhiteBalanceMode()); |
| 523 photo_capabilities->fill_light_mode = |
| 524 ToMojomFillLightMode(caps.getFillLightMode()); |
| 486 | 525 |
| 487 callback.Run(std::move(photo_capabilities)); | 526 callback.Run(std::move(photo_capabilities)); |
| 488 } | 527 } |
| 489 | 528 |
| 490 void VideoCaptureDeviceAndroid::DoSetPhotoOptions( | 529 void VideoCaptureDeviceAndroid::DoSetPhotoOptions( |
| 491 mojom::PhotoSettingsPtr settings, | 530 mojom::PhotoSettingsPtr settings, |
| 492 SetPhotoOptionsCallback callback) { | 531 SetPhotoOptionsCallback callback) { |
| 493 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 532 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 494 #if DCHECK_IS_ON() | 533 #if DCHECK_IS_ON() |
| 495 { | 534 { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 525 const int exposure_compensation = | 564 const int exposure_compensation = |
| 526 settings->has_exposure_compensation ? settings->exposure_compensation : 0; | 565 settings->has_exposure_compensation ? settings->exposure_compensation : 0; |
| 527 | 566 |
| 528 const PhotoCapabilities::AndroidMeteringMode white_balance_mode = | 567 const PhotoCapabilities::AndroidMeteringMode white_balance_mode = |
| 529 settings->has_white_balance_mode | 568 settings->has_white_balance_mode |
| 530 ? ToAndroidMeteringMode(settings->white_balance_mode) | 569 ? ToAndroidMeteringMode(settings->white_balance_mode) |
| 531 : PhotoCapabilities::AndroidMeteringMode::NOT_SET; | 570 : PhotoCapabilities::AndroidMeteringMode::NOT_SET; |
| 532 | 571 |
| 533 const int iso = settings->has_iso ? settings->iso : 0; | 572 const int iso = settings->has_iso ? settings->iso : 0; |
| 534 | 573 |
| 574 const PhotoCapabilities::AndroidFillLightMode fill_light_mode = |
| 575 settings->has_fill_light_mode |
| 576 ? ToAndroidFillLightMode(settings->fill_light_mode) |
| 577 : PhotoCapabilities::AndroidFillLightMode::NOT_SET; |
| 578 |
| 535 Java_VideoCapture_setPhotoOptions( | 579 Java_VideoCapture_setPhotoOptions( |
| 536 env, j_capture_, zoom, static_cast<int>(focus_mode), | 580 env, j_capture_, zoom, static_cast<int>(focus_mode), |
| 537 static_cast<int>(exposure_mode), width, height, points_of_interest, | 581 static_cast<int>(exposure_mode), width, height, points_of_interest, |
| 538 settings->has_exposure_compensation, exposure_compensation, | 582 settings->has_exposure_compensation, exposure_compensation, |
| 539 static_cast<int>(white_balance_mode), iso, | 583 static_cast<int>(white_balance_mode), iso, |
| 540 settings->has_red_eye_reduction, settings->red_eye_reduction); | 584 settings->has_red_eye_reduction, settings->red_eye_reduction, |
| 585 static_cast<int>(fill_light_mode)); |
| 541 | 586 |
| 542 callback.Run(true); | 587 callback.Run(true); |
| 543 } | 588 } |
| 544 | 589 |
| 545 } // namespace media | 590 } // namespace media |
| OLD | NEW |