summaryrefslogtreecommitdiff
path: root/camera
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2018-01-19 13:36:06 -0800
committerEino-Ville Talvala <etalvala@google.com>2018-01-19 13:36:06 -0800
commite12b44b4ab318e6eea51a2d60da3af5aae4367b6 (patch)
treec7fc94a050de4939cd7a9164d851a981e507297a /camera
parentc180c57a1a60f7e559d617418841d69ffc41ce28 (diff)
Camera: Add shading mode to templates, fix hot pixel mode
Shading mode is required by spec to be present, but wasn't covered in CTS. Default to FAST for everything but STILL_CAPTURE. Hot pixel mode was also not covered, and needs to be HIGH_QUALITY if that is supported, for STILL_CAPTURE. Also clean up a little bit of oddness in static metadata with regards to hot pixel mode. Test: Shading mode and hot pixel mode appear in 'dumpsys media.camera -t' output, new CTS tests pass Bug: 70162745 Change-Id: I9087f0f37125eb2074788e983f7e68086b76f0b2
Diffstat (limited to 'camera')
-rw-r--r--camera/QCamera2/HAL3/QCamera3HWI.cpp31
1 files changed, 22 insertions, 9 deletions
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index 9068ed58..3050edf4 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -5995,10 +5995,6 @@ QCamera3HardwareInterface::translateFromHalMetadata(
camMetadata.update(ANDROID_CONTROL_MODE, &fwk_mode, 1);
}
- /* Constant metadata values to be update*/
- uint8_t hotPixelModeFast = ANDROID_HOT_PIXEL_MODE_FAST;
- camMetadata.update(ANDROID_HOT_PIXEL_MODE, &hotPixelModeFast, 1);
-
uint8_t hotPixelMapMode = ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF;
camMetadata.update(ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE, &hotPixelMapMode, 1);
@@ -7418,11 +7414,6 @@ int QCamera3HardwareInterface::initStaticMetadata(uint32_t cameraId)
staticInfo.update(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,
available_stream_configs.array(), available_stream_configs.size());
- static const uint8_t hotpixelMode = ANDROID_HOT_PIXEL_MODE_FAST;
- staticInfo.update(ANDROID_HOT_PIXEL_MODE, &hotpixelMode, 1);
-
- static const uint8_t hotPixelMapMode = ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF;
- staticInfo.update(ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE, &hotPixelMapMode, 1);
/* android.scaler.availableMinFrameDurations */
Vector<int64_t> available_min_durations;
@@ -8605,6 +8596,8 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
uint8_t cacMode;
uint8_t edge_mode;
uint8_t noise_red_mode;
+ uint8_t shading_mode;
+ uint8_t hot_pixel_mode;
uint8_t tonemap_mode;
bool highQualityModeEntryAvailable = FALSE;
bool fastModeEntryAvailable = FALSE;
@@ -8620,6 +8613,8 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
cacMode = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST;
edge_mode = ANDROID_EDGE_MODE_FAST;
noise_red_mode = ANDROID_NOISE_REDUCTION_MODE_FAST;
+ shading_mode = ANDROID_SHADING_MODE_FAST;
+ hot_pixel_mode = ANDROID_HOT_PIXEL_MODE_FAST;
tonemap_mode = ANDROID_TONEMAP_MODE_FAST;
break;
case CAMERA3_TEMPLATE_STILL_CAPTURE:
@@ -8628,6 +8623,8 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
optStabMode = ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON;
edge_mode = ANDROID_EDGE_MODE_HIGH_QUALITY;
noise_red_mode = ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY;
+ shading_mode = ANDROID_SHADING_MODE_HIGH_QUALITY;
+ hot_pixel_mode = ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY;
tonemap_mode = ANDROID_TONEMAP_MODE_HIGH_QUALITY;
cacMode = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF;
// Order of priority for default CAC is HIGH Quality -> FAST -> OFF
@@ -8659,6 +8656,8 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
cacMode = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST;
edge_mode = ANDROID_EDGE_MODE_FAST;
noise_red_mode = ANDROID_NOISE_REDUCTION_MODE_FAST;
+ shading_mode = ANDROID_SHADING_MODE_FAST;
+ hot_pixel_mode = ANDROID_HOT_PIXEL_MODE_FAST;
tonemap_mode = ANDROID_TONEMAP_MODE_FAST;
if (forceVideoOis)
optStabMode = ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON;
@@ -8673,6 +8672,8 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
cacMode = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST;
edge_mode = ANDROID_EDGE_MODE_FAST;
noise_red_mode = ANDROID_NOISE_REDUCTION_MODE_FAST;
+ shading_mode = ANDROID_SHADING_MODE_FAST;
+ hot_pixel_mode = ANDROID_HOT_PIXEL_MODE_FAST;
tonemap_mode = ANDROID_TONEMAP_MODE_FAST;
if (forceVideoOis)
optStabMode = ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON;
@@ -8684,11 +8685,15 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
cacMode = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST;
edge_mode = ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG;
noise_red_mode = ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG;
+ shading_mode = ANDROID_SHADING_MODE_FAST;
+ hot_pixel_mode = ANDROID_HOT_PIXEL_MODE_FAST;
tonemap_mode = ANDROID_TONEMAP_MODE_FAST;
break;
case CAMERA3_TEMPLATE_MANUAL:
edge_mode = ANDROID_EDGE_MODE_FAST;
noise_red_mode = ANDROID_NOISE_REDUCTION_MODE_FAST;
+ shading_mode = ANDROID_SHADING_MODE_FAST;
+ hot_pixel_mode = ANDROID_HOT_PIXEL_MODE_FAST;
tonemap_mode = ANDROID_TONEMAP_MODE_FAST;
cacMode = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST;
controlIntent = ANDROID_CONTROL_CAPTURE_INTENT_MANUAL;
@@ -8698,6 +8703,8 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
default:
edge_mode = ANDROID_EDGE_MODE_FAST;
noise_red_mode = ANDROID_NOISE_REDUCTION_MODE_FAST;
+ shading_mode = ANDROID_SHADING_MODE_FAST;
+ hot_pixel_mode = ANDROID_HOT_PIXEL_MODE_FAST;
tonemap_mode = ANDROID_TONEMAP_MODE_FAST;
cacMode = ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST;
controlIntent = ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM;
@@ -8820,6 +8827,12 @@ camera_metadata_t* QCamera3HardwareInterface::translateCapabilityToMetadata(int
/*noise reduction mode*/
settings.update(ANDROID_NOISE_REDUCTION_MODE, &noise_red_mode, 1);
+ /*shading mode*/
+ settings.update(ANDROID_SHADING_MODE, &shading_mode, 1);
+
+ /*hot pixel mode*/
+ settings.update(ANDROID_HOT_PIXEL_MODE, &hot_pixel_mode, 1);
+
/*color correction mode*/
static const uint8_t color_correct_mode = ANDROID_COLOR_CORRECTION_MODE_FAST;
settings.update(ANDROID_COLOR_CORRECTION_MODE, &color_correct_mode, 1);