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