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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 case mojom::MeteringMode::NONE: | 60 case mojom::MeteringMode::NONE: |
61 return PhotoCapabilities::AndroidMeteringMode::NONE; | 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( | 67 mojom::FillLightMode ToMojomFillLightMode( |
68 PhotoCapabilities::AndroidFillLightMode android_mode) { | 68 PhotoCapabilities::AndroidFillLightMode android_mode) { |
69 switch (android_mode) { | 69 switch (android_mode) { |
70 case PhotoCapabilities::AndroidFillLightMode::TORCH: | |
71 return mojom::FillLightMode::TORCH; | |
72 case PhotoCapabilities::AndroidFillLightMode::FLASH: | 70 case PhotoCapabilities::AndroidFillLightMode::FLASH: |
73 return mojom::FillLightMode::FLASH; | 71 return mojom::FillLightMode::FLASH; |
74 case PhotoCapabilities::AndroidFillLightMode::AUTO: | 72 case PhotoCapabilities::AndroidFillLightMode::AUTO: |
75 return mojom::FillLightMode::AUTO; | 73 return mojom::FillLightMode::AUTO; |
76 case PhotoCapabilities::AndroidFillLightMode::OFF: | 74 case PhotoCapabilities::AndroidFillLightMode::OFF: |
77 return mojom::FillLightMode::OFF; | 75 return mojom::FillLightMode::OFF; |
78 case PhotoCapabilities::AndroidFillLightMode::NONE: | |
79 return mojom::FillLightMode::NONE; | |
80 case PhotoCapabilities::AndroidFillLightMode::NOT_SET: | 76 case PhotoCapabilities::AndroidFillLightMode::NOT_SET: |
81 NOTREACHED(); | 77 NOTREACHED(); |
82 } | 78 } |
83 return mojom::FillLightMode::NONE; | 79 NOTREACHED(); |
| 80 return mojom::FillLightMode::OFF; |
84 } | 81 } |
85 | 82 |
86 PhotoCapabilities::AndroidFillLightMode ToAndroidFillLightMode( | 83 PhotoCapabilities::AndroidFillLightMode ToAndroidFillLightMode( |
87 mojom::FillLightMode mojom_mode) { | 84 mojom::FillLightMode mojom_mode) { |
88 switch (mojom_mode) { | 85 switch (mojom_mode) { |
89 case mojom::FillLightMode::TORCH: | |
90 return PhotoCapabilities::AndroidFillLightMode::TORCH; | |
91 case mojom::FillLightMode::FLASH: | 86 case mojom::FillLightMode::FLASH: |
92 return PhotoCapabilities::AndroidFillLightMode::FLASH; | 87 return PhotoCapabilities::AndroidFillLightMode::FLASH; |
93 case mojom::FillLightMode::AUTO: | 88 case mojom::FillLightMode::AUTO: |
94 return PhotoCapabilities::AndroidFillLightMode::AUTO; | 89 return PhotoCapabilities::AndroidFillLightMode::AUTO; |
95 case mojom::FillLightMode::OFF: | 90 case mojom::FillLightMode::OFF: |
96 return PhotoCapabilities::AndroidFillLightMode::OFF; | 91 return PhotoCapabilities::AndroidFillLightMode::OFF; |
97 case mojom::FillLightMode::NONE: | |
98 return PhotoCapabilities::AndroidFillLightMode::NONE; | |
99 } | 92 } |
100 NOTREACHED(); | 93 NOTREACHED(); |
101 return PhotoCapabilities::AndroidFillLightMode::NOT_SET; | 94 return PhotoCapabilities::AndroidFillLightMode::NOT_SET; |
102 } | 95 } |
103 | 96 |
104 } // anonymous namespace | 97 } // anonymous namespace |
105 | 98 |
106 // static | 99 // static |
107 bool VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice(JNIEnv* env) { | 100 bool VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice(JNIEnv* env) { |
108 return RegisterNativesImpl(env); | 101 return RegisterNativesImpl(env); |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 #endif | 496 #endif |
504 JNIEnv* env = AttachCurrentThread(); | 497 JNIEnv* env = AttachCurrentThread(); |
505 | 498 |
506 PhotoCapabilities caps( | 499 PhotoCapabilities caps( |
507 Java_VideoCapture_getPhotoCapabilities(env, j_capture_)); | 500 Java_VideoCapture_getPhotoCapabilities(env, j_capture_)); |
508 | 501 |
509 // TODO(mcasas): Manual member copying sucks, consider adding typemapping from | 502 // TODO(mcasas): Manual member copying sucks, consider adding typemapping from |
510 // PhotoCapabilities to mojom::PhotoCapabilitiesPtr, https://crbug.com/622002. | 503 // PhotoCapabilities to mojom::PhotoCapabilitiesPtr, https://crbug.com/622002. |
511 mojom::PhotoCapabilitiesPtr photo_capabilities = | 504 mojom::PhotoCapabilitiesPtr photo_capabilities = |
512 mojom::PhotoCapabilities::New(); | 505 mojom::PhotoCapabilities::New(); |
513 photo_capabilities->iso = mojom::Range::New(); | 506 |
514 photo_capabilities->iso->current = caps.getCurrentIso(); | 507 photo_capabilities->white_balance_mode = |
515 photo_capabilities->iso->max = caps.getMaxIso(); | 508 ToMojomMeteringMode(caps.getWhiteBalanceMode()); |
516 photo_capabilities->iso->min = caps.getMinIso(); | |
517 photo_capabilities->iso->step = caps.getStepIso(); | |
518 photo_capabilities->height = mojom::Range::New(); | |
519 photo_capabilities->height->current = caps.getCurrentHeight(); | |
520 photo_capabilities->height->max = caps.getMaxHeight(); | |
521 photo_capabilities->height->min = caps.getMinHeight(); | |
522 photo_capabilities->height->step = caps.getStepHeight(); | |
523 photo_capabilities->width = mojom::Range::New(); | |
524 photo_capabilities->width->current = caps.getCurrentWidth(); | |
525 photo_capabilities->width->max = caps.getMaxWidth(); | |
526 photo_capabilities->width->min = caps.getMinWidth(); | |
527 photo_capabilities->width->step = caps.getStepWidth(); | |
528 photo_capabilities->zoom = mojom::Range::New(); | |
529 photo_capabilities->zoom->current = caps.getCurrentZoom(); | |
530 photo_capabilities->zoom->max = caps.getMaxZoom(); | |
531 photo_capabilities->zoom->min = caps.getMinZoom(); | |
532 photo_capabilities->zoom->step = caps.getStepZoom(); | |
533 photo_capabilities->focus_mode = ToMojomMeteringMode(caps.getFocusMode()); | |
534 photo_capabilities->exposure_mode = | 509 photo_capabilities->exposure_mode = |
535 ToMojomMeteringMode(caps.getExposureMode()); | 510 ToMojomMeteringMode(caps.getExposureMode()); |
| 511 photo_capabilities->focus_mode = ToMojomMeteringMode(caps.getFocusMode()); |
| 512 |
536 photo_capabilities->exposure_compensation = mojom::Range::New(); | 513 photo_capabilities->exposure_compensation = mojom::Range::New(); |
537 photo_capabilities->exposure_compensation->current = | 514 photo_capabilities->exposure_compensation->current = |
538 caps.getCurrentExposureCompensation(); | 515 caps.getCurrentExposureCompensation(); |
539 photo_capabilities->exposure_compensation->max = | 516 photo_capabilities->exposure_compensation->max = |
540 caps.getMaxExposureCompensation(); | 517 caps.getMaxExposureCompensation(); |
541 photo_capabilities->exposure_compensation->min = | 518 photo_capabilities->exposure_compensation->min = |
542 caps.getMinExposureCompensation(); | 519 caps.getMinExposureCompensation(); |
543 photo_capabilities->exposure_compensation->step = | 520 photo_capabilities->exposure_compensation->step = |
544 caps.getStepExposureCompensation(); | 521 caps.getStepExposureCompensation(); |
545 photo_capabilities->white_balance_mode = | |
546 ToMojomMeteringMode(caps.getWhiteBalanceMode()); | |
547 photo_capabilities->fill_light_mode = | |
548 ToMojomFillLightMode(caps.getFillLightMode()); | |
549 photo_capabilities->red_eye_reduction = caps.getRedEyeReduction(); | |
550 photo_capabilities->color_temperature = mojom::Range::New(); | 522 photo_capabilities->color_temperature = mojom::Range::New(); |
551 photo_capabilities->color_temperature->current = | 523 photo_capabilities->color_temperature->current = |
552 caps.getCurrentColorTemperature(); | 524 caps.getCurrentColorTemperature(); |
553 photo_capabilities->color_temperature->max = caps.getMaxColorTemperature(); | 525 photo_capabilities->color_temperature->max = caps.getMaxColorTemperature(); |
554 photo_capabilities->color_temperature->min = caps.getMinColorTemperature(); | 526 photo_capabilities->color_temperature->min = caps.getMinColorTemperature(); |
555 photo_capabilities->color_temperature->step = caps.getStepColorTemperature(); | 527 photo_capabilities->color_temperature->step = caps.getStepColorTemperature(); |
| 528 photo_capabilities->iso = mojom::Range::New(); |
| 529 photo_capabilities->iso->current = caps.getCurrentIso(); |
| 530 photo_capabilities->iso->max = caps.getMaxIso(); |
| 531 photo_capabilities->iso->min = caps.getMinIso(); |
| 532 photo_capabilities->iso->step = caps.getStepIso(); |
| 533 |
556 photo_capabilities->brightness = media::mojom::Range::New(); | 534 photo_capabilities->brightness = media::mojom::Range::New(); |
557 photo_capabilities->contrast = media::mojom::Range::New(); | 535 photo_capabilities->contrast = media::mojom::Range::New(); |
558 photo_capabilities->saturation = media::mojom::Range::New(); | 536 photo_capabilities->saturation = media::mojom::Range::New(); |
559 photo_capabilities->sharpness = media::mojom::Range::New(); | 537 photo_capabilities->sharpness = media::mojom::Range::New(); |
560 | 538 |
| 539 photo_capabilities->zoom = mojom::Range::New(); |
| 540 photo_capabilities->zoom->current = caps.getCurrentZoom(); |
| 541 photo_capabilities->zoom->max = caps.getMaxZoom(); |
| 542 photo_capabilities->zoom->min = caps.getMinZoom(); |
| 543 photo_capabilities->zoom->step = caps.getStepZoom(); |
| 544 |
| 545 photo_capabilities->torch = caps.getTorch(); |
| 546 |
| 547 photo_capabilities->red_eye_reduction = |
| 548 caps.getRedEyeReduction() ? media::mojom::RedEyeReduction::CONTROLLABLE |
| 549 : media::mojom::RedEyeReduction::NEVER; |
| 550 photo_capabilities->height = mojom::Range::New(); |
| 551 photo_capabilities->height->current = caps.getCurrentHeight(); |
| 552 photo_capabilities->height->max = caps.getMaxHeight(); |
| 553 photo_capabilities->height->min = caps.getMinHeight(); |
| 554 photo_capabilities->height->step = caps.getStepHeight(); |
| 555 photo_capabilities->width = mojom::Range::New(); |
| 556 photo_capabilities->width->current = caps.getCurrentWidth(); |
| 557 photo_capabilities->width->max = caps.getMaxWidth(); |
| 558 photo_capabilities->width->min = caps.getMinWidth(); |
| 559 photo_capabilities->width->step = caps.getStepWidth(); |
| 560 const auto fill_light_modes = caps.getFillLightModes(); |
| 561 std::vector<media::mojom::FillLightMode> modes; |
| 562 for (const auto& fill_light_mode : fill_light_modes) |
| 563 modes.push_back(ToMojomFillLightMode(fill_light_mode)); |
| 564 photo_capabilities->fill_light_mode = modes; |
| 565 |
561 callback.Run(std::move(photo_capabilities)); | 566 callback.Run(std::move(photo_capabilities)); |
562 } | 567 } |
563 | 568 |
564 void VideoCaptureDeviceAndroid::DoSetPhotoOptions( | 569 void VideoCaptureDeviceAndroid::DoSetPhotoOptions( |
565 mojom::PhotoSettingsPtr settings, | 570 mojom::PhotoSettingsPtr settings, |
566 SetPhotoOptionsCallback callback) { | 571 SetPhotoOptionsCallback callback) { |
567 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 572 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
568 #if DCHECK_IS_ON() | 573 #if DCHECK_IS_ON() |
569 { | 574 { |
570 base::AutoLock lock(lock_); | 575 base::AutoLock lock(lock_); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 | 620 |
616 const double color_temperature = | 621 const double color_temperature = |
617 settings->has_color_temperature ? settings->color_temperature : 0.0; | 622 settings->has_color_temperature ? settings->color_temperature : 0.0; |
618 | 623 |
619 Java_VideoCapture_setPhotoOptions( | 624 Java_VideoCapture_setPhotoOptions( |
620 env, j_capture_, zoom, static_cast<int>(focus_mode), | 625 env, j_capture_, zoom, static_cast<int>(focus_mode), |
621 static_cast<int>(exposure_mode), width, height, points_of_interest, | 626 static_cast<int>(exposure_mode), width, height, points_of_interest, |
622 settings->has_exposure_compensation, exposure_compensation, | 627 settings->has_exposure_compensation, exposure_compensation, |
623 static_cast<int>(white_balance_mode), iso, | 628 static_cast<int>(white_balance_mode), iso, |
624 settings->has_red_eye_reduction, settings->red_eye_reduction, | 629 settings->has_red_eye_reduction, settings->red_eye_reduction, |
625 static_cast<int>(fill_light_mode), color_temperature); | 630 static_cast<int>(fill_light_mode), settings->has_torch, settings->torch, |
| 631 color_temperature); |
626 | 632 |
627 callback.Run(true); | 633 callback.Run(true); |
628 } | 634 } |
629 | 635 |
630 } // namespace media | 636 } // namespace media |
OLD | NEW |