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>
This commit is contained in:
Mansoor Aftab 2014-03-28 17:33:49 -07:00 committed by Artem Borisov
parent af9d64ef7d
commit b401285aa3
1 changed files with 212 additions and 5 deletions

View File

@ -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;
}