diff options
| author | Mansoor Aftab <maftab@codeaurora.org> | 2014-03-28 17:33:49 -0700 |
|---|---|---|
| committer | Ali B <abittin@gmail.com> | 2018-06-17 19:19:52 +0300 |
| commit | 6e8772e9fbf2d25fd0c1b9c361a420f8b2b731c6 (patch) | |
| tree | 6885b3608cf1528ab161cee524b0a42259376171 | |
| parent | 35699c063a9b19aeb6ba21febbd2570cd2258b3e (diff) | |
Camera3: Add new static metadata
Add the new static metadata for 3.2
Bug: 13653652, 13516241, 13528518, 13527179, 13527177,
12958238, 12958122, 12958122, 12957740, 12958062, 12957596,
12957732, 12957688, 12957685, 12958201, 12957788, 13527175
Change-Id: Idb2ed5e963683556a0066b77e30bd160b1eb0e29
Signed-off-by: Daniel Jarai <jaraidaniel@gmail.com>
| -rwxr-xr-x | camera/QCamera2/HAL3/QCamera3HWI.cpp | 217 |
1 files changed, 212 insertions, 5 deletions
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp index ce496df..406befc 100755 --- a/camera/QCamera2/HAL3/QCamera3HWI.cpp +++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp @@ -2216,7 +2216,7 @@ int QCamera3HardwareInterface::initStaticMetadata(int cameraId) gCamCapability[cameraId]->optical_stab_modes_count); int32_t lens_shading_map_size[] = {gCamCapability[cameraId]->lens_shading_map_size.width, - gCamCapability[cameraId]->lens_shading_map_size.height}; + gCamCapability[cameraId]->lens_shading_map_size.height}; staticInfo.update(ANDROID_LENS_INFO_SHADING_MAP_SIZE, lens_shading_map_size, sizeof(lens_shading_map_size)/sizeof(int32_t)); @@ -2240,7 +2240,7 @@ int QCamera3HardwareInterface::initStaticMetadata(int cameraId) (uint8_t*)&gCamCapability[cameraId]->color_arrangement, 1); int32_t pixel_array_size[] = {gCamCapability[cameraId]->pixel_array_size.width, - gCamCapability[cameraId]->pixel_array_size.height}; + gCamCapability[cameraId]->pixel_array_size.height}; staticInfo.update(ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE, pixel_array_size, 2); @@ -2276,7 +2276,7 @@ int QCamera3HardwareInterface::initStaticMetadata(int cameraId) &gCamCapability[cameraId]->max_histogram_count, 1); int32_t sharpness_map_size[] = {gCamCapability[cameraId]->sharpness_map_size.width, - gCamCapability[cameraId]->sharpness_map_size.height}; + gCamCapability[cameraId]->sharpness_map_size.height}; staticInfo.update(ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE, sharpness_map_size, sizeof(sharpness_map_size)/sizeof(int32_t)); @@ -2290,7 +2290,8 @@ int QCamera3HardwareInterface::initStaticMetadata(int cameraId) 1); int32_t scalar_formats[] = {HAL_PIXEL_FORMAT_YCbCr_420_888, - HAL_PIXEL_FORMAT_BLOB}; + HAL_PIXEL_FORMAT_BLOB, + HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED}; int scalar_formats_count = sizeof(scalar_formats)/sizeof(int32_t); staticInfo.update(ANDROID_SCALER_AVAILABLE_FORMATS, scalar_formats, @@ -2342,7 +2343,7 @@ int QCamera3HardwareInterface::initStaticMetadata(int cameraId) sizeof(availableFaceDetectModes)); int32_t exposureCompensationRange[] = {gCamCapability[cameraId]->exposure_compensation_min, - gCamCapability[cameraId]->exposure_compensation_max}; + gCamCapability[cameraId]->exposure_compensation_max}; staticInfo.update(ANDROID_CONTROL_AE_COMPENSATION_RANGE, exposureCompensationRange, sizeof(exposureCompensationRange)/sizeof(int32_t)); @@ -2359,6 +2360,27 @@ int QCamera3HardwareInterface::initStaticMetadata(int cameraId) available_thumbnail_sizes, sizeof(available_thumbnail_sizes)/sizeof(int32_t)); + /*all sizes will be clubbed into this tag*/ + int32_t available_stream_configs_size = gCamCapability[cameraId]->picture_sizes_tbl_cnt * + sizeof(scalar_formats)/sizeof(int32_t) * 4; + int32_t available_stream_configs[available_stream_configs_size]; + int idx = 0; + for (int j = 0; j < scalar_formats_count; j++) { + for (int i = 0; i < gCamCapability[cameraId]->picture_sizes_tbl_cnt; i++) { + available_stream_configs[idx] = scalar_formats[j]; + available_stream_configs[idx+1] = gCamCapability[cameraId]->picture_sizes_tbl[i].width; + available_stream_configs[idx+2] = gCamCapability[cameraId]->picture_sizes_tbl[i].height; + available_stream_configs[idx+3] = ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT; + idx+=4; + } + } + + staticInfo.update(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, + available_stream_configs, + available_stream_configs_size); + + + int32_t max_jpeg_size = 0; int temp_width, temp_height; for (int i = 0; i < gCamCapability[cameraId]->picture_sizes_tbl_cnt; i++) { @@ -2517,6 +2539,191 @@ int QCamera3HardwareInterface::initStaticMetadata(int cameraId) max_output_streams, 3); + uint8_t max_pipeline_depth = 4; + staticInfo.update(ANDROID_REQUEST_PIPELINE_MAX_DEPTH, + &max_pipeline_depth, + 1); + + int32_t partial_result_count = 2; + staticInfo.update(ANDROID_REQUEST_PARTIAL_RESULT_COUNT, + &partial_result_count, + 1); + + uint8_t available_capabilities[] = + {ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR}; + staticInfo.update(ANDROID_REQUEST_AVAILABLE_CAPABILITIES, + available_capabilities, + 3); + + int32_t max_input_streams = 0; + staticInfo.update(ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS, + &max_input_streams, + 1); + + int32_t io_format_map[] = {}; + staticInfo.update(ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP, + io_format_map, 0); + + int32_t max_latency = ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL; + staticInfo.update(ANDROID_SYNC_MAX_LATENCY, + &max_latency, + 1); + + uint8_t available_hot_pixel_modes[] = {ANDROID_HOT_PIXEL_MODE_FAST}; + staticInfo.update(ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES, + available_hot_pixel_modes, + 1); + + uint8_t available_edge_modes[] = {ANDROID_EDGE_MODE_OFF, + ANDROID_EDGE_MODE_FAST}; + staticInfo.update(ANDROID_EDGE_AVAILABLE_EDGE_MODES, + available_edge_modes, + 2); + + uint8_t available_noise_red_modes[] = {ANDROID_NOISE_REDUCTION_MODE_OFF, + ANDROID_NOISE_REDUCTION_MODE_FAST}; + staticInfo.update(ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES, + available_noise_red_modes, + 2); + + uint8_t available_tonemap_modes[] = {ANDROID_TONEMAP_MODE_CONTRAST_CURVE, + ANDROID_TONEMAP_MODE_FAST, + ANDROID_TONEMAP_MODE_HIGH_QUALITY}; + staticInfo.update(ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES, + available_tonemap_modes, + 3); + + uint8_t available_hot_pixel_map_modes[] = {ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF}; + staticInfo.update(ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES, + available_hot_pixel_map_modes, + 1); + + + int32_t avail_min_frame_durations_size = gCamCapability[cameraId]->picture_sizes_tbl_cnt * + sizeof(scalar_formats)/sizeof(int32_t) * 4; + int64_t avail_min_frame_durations[avail_min_frame_durations_size]; + int pos = 0; + for (int j = 0; j < scalar_formats_count; j++) { + for (int i = 0; i < gCamCapability[cameraId]->picture_sizes_tbl_cnt; i++) { + avail_min_frame_durations[pos] = scalar_formats[j]; + avail_min_frame_durations[pos+1] = gCamCapability[cameraId]->picture_sizes_tbl[i].width; + avail_min_frame_durations[pos+2] = gCamCapability[cameraId]->picture_sizes_tbl[i].height; + avail_min_frame_durations[pos+3] = gCamCapability[cameraId]->jpeg_min_duration[i]; + pos+=4; + } + } + staticInfo.update(ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS, + avail_min_frame_durations, + avail_min_frame_durations_size); + + int32_t available_request_keys[] = {ANDROID_COLOR_CORRECTION_MODE, + ANDROID_COLOR_CORRECTION_TRANSFORM, ANDROID_COLOR_CORRECTION_GAINS, + ANDROID_CONTROL_AE_ANTIBANDING_MODE, ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION, + ANDROID_CONTROL_AE_LOCK, ANDROID_CONTROL_AE_MODE, + ANDROID_CONTROL_AE_REGIONS, ANDROID_CONTROL_AE_TARGET_FPS_RANGE, + ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, ANDROID_CONTROL_AF_MODE, + ANDROID_CONTROL_AF_REGIONS, ANDROID_CONTROL_AF_TRIGGER, + ANDROID_CONTROL_AWB_LOCK, ANDROID_CONTROL_AWB_MODE, ANDROID_CONTROL_AWB_REGIONS, + ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_EFFECT_MODE, ANDROID_CONTROL_MODE, + ANDROID_CONTROL_SCENE_MODE, ANDROID_CONTROL_VIDEO_STABILIZATION_MODE, + ANDROID_DEMOSAIC_MODE, ANDROID_EDGE_MODE, ANDROID_EDGE_STRENGTH, + ANDROID_FLASH_FIRING_POWER, ANDROID_FLASH_FIRING_TIME, ANDROID_FLASH_MODE, + ANDROID_JPEG_GPS_COORDINATES, + ANDROID_JPEG_GPS_PROCESSING_METHOD, ANDROID_JPEG_GPS_TIMESTAMP, + ANDROID_JPEG_ORIENTATION, ANDROID_JPEG_QUALITY, ANDROID_JPEG_THUMBNAIL_QUALITY, + ANDROID_JPEG_THUMBNAIL_SIZE, ANDROID_LENS_APERTURE, ANDROID_LENS_FILTER_DENSITY, + ANDROID_LENS_FOCAL_LENGTH, ANDROID_LENS_FOCUS_DISTANCE, + ANDROID_LENS_OPTICAL_STABILIZATION_MODE, ANDROID_NOISE_REDUCTION_MODE, + ANDROID_NOISE_REDUCTION_STRENGTH, ANDROID_REQUEST_ID, ANDROID_REQUEST_TYPE, + ANDROID_SCALER_CROP_REGION, ANDROID_SENSOR_EXPOSURE_TIME, + ANDROID_SENSOR_FRAME_DURATION, + ANDROID_SENSOR_SENSITIVITY, ANDROID_SHADING_MODE, + ANDROID_SHADING_STRENGTH, ANDROID_STATISTICS_FACE_DETECT_MODE, + ANDROID_STATISTICS_HISTOGRAM_MODE, ANDROID_STATISTICS_SHARPNESS_MAP_MODE, + ANDROID_STATISTICS_LENS_SHADING_MAP_MODE, ANDROID_TONEMAP_CURVE_BLUE, + ANDROID_TONEMAP_CURVE_GREEN, ANDROID_TONEMAP_CURVE_RED, ANDROID_TONEMAP_MODE, + ANDROID_BLACK_LEVEL_LOCK }; + staticInfo.update(ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS, + available_request_keys, + sizeof(available_request_keys)/sizeof(int32_t)); + + int32_t available_result_keys[] = {ANDROID_COLOR_CORRECTION_TRANSFORM, + ANDROID_COLOR_CORRECTION_GAINS, ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_REGIONS, + ANDROID_CONTROL_AE_STATE, ANDROID_CONTROL_AF_MODE, ANDROID_CONTROL_AF_REGIONS, + ANDROID_CONTROL_AF_STATE, ANDROID_CONTROL_AWB_MODE, ANDROID_CONTROL_AWB_REGIONS, + ANDROID_CONTROL_AWB_STATE, ANDROID_CONTROL_MODE, ANDROID_EDGE_MODE, + ANDROID_FLASH_FIRING_POWER, ANDROID_FLASH_FIRING_TIME, ANDROID_FLASH_MODE, + ANDROID_FLASH_STATE, ANDROID_JPEG_GPS_COORDINATES, ANDROID_JPEG_GPS_PROCESSING_METHOD, + ANDROID_JPEG_GPS_TIMESTAMP, ANDROID_JPEG_ORIENTATION, ANDROID_JPEG_QUALITY, + ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_JPEG_THUMBNAIL_SIZE, ANDROID_LENS_APERTURE, + ANDROID_LENS_FILTER_DENSITY, ANDROID_LENS_FOCAL_LENGTH, ANDROID_LENS_FOCUS_DISTANCE, + ANDROID_LENS_FOCUS_RANGE, ANDROID_LENS_STATE, ANDROID_LENS_OPTICAL_STABILIZATION_MODE, + ANDROID_NOISE_REDUCTION_MODE, ANDROID_QUIRKS_PARTIAL_RESULT, ANDROID_REQUEST_ID, + ANDROID_SCALER_CROP_REGION, ANDROID_SHADING_MODE, ANDROID_SENSOR_EXPOSURE_TIME, + ANDROID_SENSOR_FRAME_DURATION, ANDROID_SENSOR_SENSITIVITY, + ANDROID_SENSOR_TIMESTAMP, ANDROID_SENSOR_NEUTRAL_COLOR_POINT, + ANDROID_SENSOR_PROFILE_TONE_CURVE, ANDROID_BLACK_LEVEL_LOCK, ANDROID_TONEMAP_CURVE_BLUE, + ANDROID_TONEMAP_CURVE_GREEN, ANDROID_TONEMAP_CURVE_RED, ANDROID_TONEMAP_MODE, + ANDROID_STATISTICS_FACE_DETECT_MODE, ANDROID_STATISTICS_HISTOGRAM_MODE, + ANDROID_STATISTICS_SHARPNESS_MAP, ANDROID_STATISTICS_SHARPNESS_MAP_MODE, + ANDROID_STATISTICS_PREDICTED_COLOR_GAINS, ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM, + ANDROID_STATISTICS_SCENE_FLICKER, ANDROID_STATISTICS_FACE_IDS, + ANDROID_STATISTICS_FACE_LANDMARKS, ANDROID_STATISTICS_FACE_RECTANGLES, + ANDROID_STATISTICS_FACE_SCORES}; + staticInfo.update(ANDROID_REQUEST_AVAILABLE_RESULT_KEYS, + available_result_keys, + sizeof(available_result_keys)/sizeof(int32_t)); + + int32_t available_characteristics_keys[] = {ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES, + ANDROID_CONTROL_AE_AVAILABLE_MODES, ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, + ANDROID_CONTROL_AE_COMPENSATION_RANGE, ANDROID_CONTROL_AE_COMPENSATION_STEP, + ANDROID_CONTROL_AF_AVAILABLE_MODES, ANDROID_CONTROL_AVAILABLE_EFFECTS, + ANDROID_CONTROL_AVAILABLE_SCENE_MODES, + ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES, + ANDROID_CONTROL_AWB_AVAILABLE_MODES, ANDROID_CONTROL_MAX_REGIONS, + ANDROID_CONTROL_SCENE_MODE_OVERRIDES,ANDROID_FLASH_INFO_AVAILABLE, + ANDROID_FLASH_INFO_CHARGE_DURATION, ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, + ANDROID_JPEG_MAX_SIZE, ANDROID_LENS_INFO_AVAILABLE_APERTURES, + ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES, + ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS, + ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION, + ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE, ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE, + ANDROID_LENS_INFO_SHADING_MAP_SIZE, ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION, + ANDROID_LENS_FACING, + ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS, ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS, + ANDROID_REQUEST_PIPELINE_MAX_DEPTH, ANDROID_REQUEST_AVAILABLE_CAPABILITIES, + ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS, ANDROID_REQUEST_AVAILABLE_RESULT_KEYS, + ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS, ANDROID_REQUEST_PARTIAL_RESULT_COUNT, + ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM, + ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, + /*ANDROID_SCALER_AVAILABLE_STALL_DURATIONS,*/ + ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS, ANDROID_SENSOR_FORWARD_MATRIX1, + ANDROID_SENSOR_REFERENCE_ILLUMINANT1, ANDROID_SENSOR_REFERENCE_ILLUMINANT2, + ANDROID_SENSOR_FORWARD_MATRIX2, ANDROID_SENSOR_COLOR_TRANSFORM1, + ANDROID_SENSOR_COLOR_TRANSFORM2, ANDROID_SENSOR_CALIBRATION_TRANSFORM1, + ANDROID_SENSOR_CALIBRATION_TRANSFORM2, ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE, + ANDROID_SENSOR_INFO_SENSITIVITY_RANGE, ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT, + ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE, ANDROID_SENSOR_INFO_MAX_FRAME_DURATION, + ANDROID_SENSOR_INFO_PHYSICAL_SIZE, ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE, + ANDROID_SENSOR_INFO_WHITE_LEVEL, ANDROID_SENSOR_BASE_GAIN_FACTOR, + ANDROID_SENSOR_BLACK_LEVEL_PATTERN, ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY, + ANDROID_SENSOR_ORIENTATION, ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES, + ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES, + ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT, + ANDROID_STATISTICS_INFO_MAX_FACE_COUNT, ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT, + ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE, + ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE, ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES, + ANDROID_EDGE_AVAILABLE_EDGE_MODES, + ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES, + ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES, + ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES, + ANDROID_TONEMAP_MAX_CURVE_POINTS, ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL }; + staticInfo.update(ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS, + available_characteristics_keys, + sizeof(available_characteristics_keys)/sizeof(int32_t)); + gStaticMetadata[cameraId] = staticInfo.release(); return rc; } |
