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

Side by Side Diff: media/capture/video/android/video_capture_device_android.cc

Issue 2787933002: ImageCapture: separate fillLightMode, redEyeReduction and Torch (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « media/capture/video/android/photo_capabilities.cc ('k') | media/capture/video/fake_video_capture_device.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698