diff options
| author | Eino-Ville Talvala <etalvala@google.com> | 2018-01-19 13:36:06 -0800 |
|---|---|---|
| committer | Eino-Ville Talvala <etalvala@google.com> | 2018-01-19 13:36:06 -0800 |
| commit | e12b44b4ab318e6eea51a2d60da3af5aae4367b6 (patch) | |
| tree | c7fc94a050de4939cd7a9164d851a981e507297a /camera | |
| parent | c180c57a1a60f7e559d617418841d69ffc41ce28 (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.cpp | 31 |
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); |
