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

Side by Side Diff: media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera2.java

Issue 2873843004: Image Capture Android: make torch mode override other fill light mode(s) (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 package org.chromium.media; 5 package org.chromium.media;
6 6
7 import android.annotation.TargetApi; 7 import android.annotation.TargetApi;
8 import android.content.Context; 8 import android.content.Context;
9 import android.graphics.ImageFormat; 9 import android.graphics.ImageFormat;
10 import android.graphics.Rect; 10 import android.graphics.Rect;
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 // We need to configure by hand the exposure time when AE mode is of f. Set it to the 383 // We need to configure by hand the exposure time when AE mode is of f. Set it to the
384 // middle of the allowed range. Further tuning will be done via |mIs o|. 384 // middle of the allowed range. Further tuning will be done via |mIs o|.
385 final CameraCharacteristics cameraCharacteristics = 385 final CameraCharacteristics cameraCharacteristics =
386 getCameraCharacteristics(mContext, mId); 386 getCameraCharacteristics(mContext, mId);
387 Range<Long> range = cameraCharacteristics.get( 387 Range<Long> range = cameraCharacteristics.get(
388 CameraCharacteristics.SENSOR_INFO_EXPOSURE_TIME_RANGE); 388 CameraCharacteristics.SENSOR_INFO_EXPOSURE_TIME_RANGE);
389 requestBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, 389 requestBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME,
390 range.getLower() + (range.getUpper() + range.getLower()) / 2 /* nanoseconds*/); 390 range.getLower() + (range.getUpper() + range.getLower()) / 2 /* nanoseconds*/);
391 391
392 } else { 392 } else {
393 requestBuilder.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTR OL_MODE_AUTO);
393 requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CO NTROL_AE_MODE_ON); 394 requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CO NTROL_AE_MODE_ON);
394 requestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, mAeFp sRange); 395 requestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, mAeFp sRange);
395 } 396 }
396 switch (mFillLightMode) { 397
397 case AndroidFillLightMode.OFF: 398 if (mTorch) {
398 requestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLA SH_MODE_OFF); 399 requestBuilder.set(CaptureRequest.CONTROL_AE_MODE,
399 break; 400 mExposureMode == AndroidMeteringMode.CONTINUOUS
400 case AndroidFillLightMode.AUTO: 401 ? CameraMetadata.CONTROL_AE_MODE_ON
401 // Setting the AE to CONTROL_AE_MODE_ON_AUTO_FLASH[_REDEYE] over rides FLASH_MODE. 402 : CameraMetadata.CONTROL_AE_MODE_OFF);
402 requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, mRedEyeReduct ion 403 requestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_M ODE_TORCH);
403 ? CameraMetadata.CONTROL_AE_MODE_ON_AUTO_FLASH_R EDEYE 404 } else {
404 : CameraMetadata.CONTROL_AE_MODE_ON_AUTO_FLASH); 405 switch (mFillLightMode) {
405 break; 406 case AndroidFillLightMode.OFF:
406 case AndroidFillLightMode.FLASH: 407 requestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata .FLASH_MODE_OFF);
407 // Setting the AE to CONTROL_AE_MODE_ON_ALWAYS_FLASH overrides F LASH_MODE. 408 break;
408 requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, 409 case AndroidFillLightMode.AUTO:
409 CameraMetadata.CONTROL_AE_MODE_ON_ALWAYS_FLASH); 410 // Setting the AE to CONTROL_AE_MODE_ON_AUTO_FLASH[_REDEYE] overrides
410 break; 411 // FLASH_MODE.
411 default: 412 requestBuilder.set(CaptureRequest.CONTROL_AE_MODE,
413 mRedEyeReduction ? CameraMetadata.CONTROL_AE_MODE_ON _AUTO_FLASH_REDEYE
414 : CameraMetadata.CONTROL_AE_MODE_ON _AUTO_FLASH);
415 break;
416 case AndroidFillLightMode.FLASH:
417 // Setting the AE to CONTROL_AE_MODE_ON_ALWAYS_FLASH overrid es FLASH_MODE.
418 requestBuilder.set(CaptureRequest.CONTROL_AE_MODE,
419 CameraMetadata.CONTROL_AE_MODE_ON_ALWAYS_FLASH);
420 requestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata .FLASH_MODE_SINGLE);
421 break;
422 default:
423 }
424 requestBuilder.set(CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER,
425 CaptureRequest.CONTROL_AE_PRECAPTURE_TRIGGER_IDLE);
412 } 426 }
413 if (mTorch) requestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata .FLASH_MODE_TORCH);
414 427
415 requestBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, mExp osureCompensation); 428 requestBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, mExp osureCompensation);
416 429
417 // White Balance mode AndroidMeteringMode.SINGLE_SHOT is not supported. 430 // White Balance mode AndroidMeteringMode.SINGLE_SHOT is not supported.
418 if (mWhiteBalanceMode == AndroidMeteringMode.CONTINUOUS) { 431 if (mWhiteBalanceMode == AndroidMeteringMode.CONTINUOUS) {
419 requestBuilder.set(CaptureRequest.CONTROL_AWB_LOCK, false); 432 requestBuilder.set(CaptureRequest.CONTROL_AWB_LOCK, false);
420 requestBuilder.set( 433 requestBuilder.set(
421 CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_ MODE_AUTO); 434 CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_ MODE_AUTO);
422 // TODO(mcasas): support different luminant color temperatures, e.g. DAYLIGHT, SHADE. 435 // TODO(mcasas): support different luminant color temperatures, e.g. DAYLIGHT, SHADE.
423 // https://crbug.com/518807 436 // https://crbug.com/518807
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 return false; 1055 return false;
1043 } 1056 }
1044 return true; 1057 return true;
1045 } 1058 }
1046 1059
1047 @Override 1060 @Override
1048 public void deallocate() { 1061 public void deallocate() {
1049 Log.d(TAG, "deallocate"); 1062 Log.d(TAG, "deallocate");
1050 } 1063 }
1051 } 1064 }
OLDNEW
« no previous file with comments | « media/capture/video/android/java/src/org/chromium/media/VideoCaptureCamera.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698