最終更新:2017-04-05 (水) 06:32:29 (2577d)
cam_capability_t
Top / cam_capability_t
capability struct definition for HAL 1
gCamCapability?
メモ
- cam_capability_t.fps_ranges_tbl?
構造体
/* capability struct definition for HAL 1*/ typedef struct{ cam_hal_version_t version; cam_position_t position; /* sensor position: front, back */ uint8_t auto_hdr_supported; uint16_t isWnrSupported; /* supported iso modes */ size_t supported_iso_modes_cnt; cam_iso_mode_type supported_iso_modes[CAM_ISO_MODE_MAX]; /* supported flash modes */ size_t supported_flash_modes_cnt; cam_flash_mode_t supported_flash_modes[CAM_FLASH_MODE_MAX]; size_t zoom_ratio_tbl_cnt; /* table size for zoom ratios */ uint32_t zoom_ratio_tbl[MAX_ZOOMS_CNT]; /* zoom ratios table */ /* supported effect modes */ size_t supported_effects_cnt; cam_effect_mode_type supported_effects[CAM_EFFECT_MODE_MAX]; /* supported scene modes */ size_t supported_scene_modes_cnt; cam_scene_mode_type supported_scene_modes[CAM_SCENE_MODE_MAX]; /* supported auto exposure modes */ size_t supported_aec_modes_cnt; cam_auto_exposure_mode_type supported_aec_modes[CAM_AEC_MODE_MAX]; size_t fps_ranges_tbl_cnt; /* fps ranges table size */ cam_fps_range_t fps_ranges_tbl[MAX_SIZES_CNT]; /* fps ranges table */ /* supported antibanding modes */ size_t supported_antibandings_cnt; cam_antibanding_mode_type supported_antibandings[CAM_ANTIBANDING_MODE_MAX]; /* supported white balance modes */ size_t supported_white_balances_cnt; cam_wb_mode_type supported_white_balances[CAM_WB_MODE_MAX]; /* supported manual wb cct */ int32_t min_wb_cct; int32_t max_wb_cct; /* supported manual wb rgb gains */ float min_wb_gain; float max_wb_gain; /* supported focus modes */ size_t supported_focus_modes_cnt; cam_focus_mode_type supported_focus_modes[CAM_FOCUS_MODE_MAX]; /* supported manual focus position */ float min_focus_pos[CAM_MANUAL_FOCUS_MODE_MAX]; float max_focus_pos[CAM_MANUAL_FOCUS_MODE_MAX]; int32_t exposure_compensation_min; /* min value of exposure compensation index */ int32_t exposure_compensation_max; /* max value of exposure compensation index */ int32_t exposure_compensation_default; /* default value of exposure compensation index */ float exposure_compensation_step; cam_rational_type_t exp_compensation_step; /* exposure compensation step value */ uint8_t video_stablization_supported; /* flag id video stablization is supported */ size_t picture_sizes_tbl_cnt; /* picture sizes table size */ cam_dimension_t picture_sizes_tbl[MAX_SIZES_CNT]; /* picture sizes table */ /* The minimum frame duration that is supported for each * resolution in availableProcessedSizes. Should correspond * to the frame duration when only that processed stream * is active, with all processing set to FAST */ int64_t picture_min_duration[MAX_SIZES_CNT]; /* capabilities specific to HAL 1 */ int32_t modes_supported; /* mask of modes supported: 2D, 3D */ uint32_t sensor_mount_angle; /* sensor mount angle */ float focal_length; /* focal length */ float hor_view_angle; /* horizontal view angle */ float ver_view_angle; /* vertical view angle */ size_t preview_sizes_tbl_cnt; /* preview sizes table size */ cam_dimension_t preview_sizes_tbl[MAX_SIZES_CNT]; /* preiew sizes table */ size_t video_sizes_tbl_cnt; /* video sizes table size */ cam_dimension_t video_sizes_tbl[MAX_SIZES_CNT]; /* video sizes table */ size_t livesnapshot_sizes_tbl_cnt; /* livesnapshot sizes table size */ cam_dimension_t livesnapshot_sizes_tbl[MAX_SIZES_CNT]; /* livesnapshot sizes table */ size_t hfr_tbl_cnt; /* table size for HFR */ cam_hfr_info_t hfr_tbl[CAM_HFR_MODE_MAX]; /* HFR table */ /* supported preview formats */ size_t supported_preview_fmt_cnt; cam_format_t supported_preview_fmts[CAM_FORMAT_MAX]; /* supported picture formats */ size_t supported_picture_fmt_cnt; cam_format_t supported_picture_fmts[CAM_FORMAT_MAX]; uint8_t max_downscale_factor; /* dimension and supported output format of raw dump from camif */ size_t supported_raw_dim_cnt; cam_dimension_t raw_dim[MAX_SIZES_CNT]; size_t supported_raw_fmt_cnt; cam_format_t supported_raw_fmts[CAM_FORMAT_MAX]; /* The minimum frame duration that is supported for above raw resolution */ int64_t raw_min_duration[MAX_SIZES_CNT]; /* 3A version*/ cam_q3a_version_t q3a_version; /* supported focus algorithms */ size_t supported_focus_algos_cnt; cam_focus_algorithm_type supported_focus_algos[CAM_FOCUS_ALGO_MAX]; uint8_t auto_wb_lock_supported; /* flag if auto white balance lock is supported */ uint8_t zoom_supported; /* flag if zoom is supported */ uint8_t smooth_zoom_supported; /* flag if smooth zoom is supported */ uint8_t auto_exposure_lock_supported; /* flag if auto exposure lock is supported */ uint8_t video_snapshot_supported; /* flag if video snapshot is supported */ uint8_t max_num_roi; /* max number of roi can be detected */ uint8_t max_num_focus_areas; /* max num of focus areas */ uint8_t max_num_metering_areas; /* max num opf metering areas */ uint8_t max_zoom_step; /* max zoom step value */ /* QCOM specific control */ cam_control_range_t brightness_ctrl; /* brightness */ cam_control_range_t sharpness_ctrl; /* sharpness */ cam_control_range_t contrast_ctrl; /* contrast */ cam_control_range_t saturation_ctrl; /* saturation */ cam_control_range_t sce_ctrl; /* skintone enhancement factor */ /* QCOM HDR specific control. Indicates number of frames and exposure needs for the frames */ cam_hdr_bracketing_info_t hdr_bracketing_setting; uint32_t qcom_supported_feature_mask; /* mask of qcom specific features supported: * such as CAM_QCOM_FEATURE_SUPPORTED_FACE_DETECTION*/ cam_padding_info_t padding_info; /* padding information from PP */ uint32_t min_num_pp_bufs; /* minimum number of buffers needed by postproc module */ uint32_t min_required_pp_mask; /* min required pp feature masks for ZSL. * depends on hardware limitation, i.e. for 8974, * sharpness is required for all ZSL snapshot frames */ cam_format_t rdi_mode_stream_fmt; /* stream format supported in rdi mode */ /* capabilities specific to HAL 3 */ float min_focus_distance; float hyper_focal_distance; float focal_lengths[CAM_FOCAL_LENGTHS_MAX]; uint8_t focal_lengths_count; /* Needs to be regular f number instead of APEX */ float apertures[CAM_APERTURES_MAX]; uint8_t apertures_count; float filter_densities[CAM_FILTER_DENSITIES_MAX]; uint8_t filter_densities_count; uint8_t optical_stab_modes[CAM_OPT_STAB_MAX]; uint8_t optical_stab_modes_count; cam_dimension_t lens_shading_map_size; float lens_shading_map[3 * CAM_MAX_MAP_WIDTH * CAM_MAX_MAP_HEIGHT]; cam_dimension_t geo_correction_map_size; float geo_correction_map[2 * 3 * CAM_MAX_MAP_WIDTH * CAM_MAX_MAP_HEIGHT]; float lens_position[3]; /* nano seconds */ int64_t exposure_time_range[EXPOSURE_TIME_RANGE_CNT]; /* nano seconds */ int64_t max_frame_duration; cam_color_filter_arrangement_t color_arrangement; uint8_t num_color_channels; /* parameters required to calculate S and O co-efficients */ double gradient_S; double offset_S; double gradient_O; double offset_O; float sensor_physical_size[SENSOR_PHYSICAL_SIZE_CNT]; /* Dimensions of full pixel array, possibly including black calibration pixels */ cam_dimension_t pixel_array_size; /* Area of raw data which corresponds to only active pixels; smaller or equal to pixelArraySize. */ cam_rect_t active_array_size; /* Maximum raw value output by sensor */ int32_t white_level; /* A fixed black level offset for each of the Bayer mosaic channels */ int32_t black_level_pattern[BLACK_LEVEL_PATTERN_CNT]; /* Time taken before flash can fire again in nano secs */ int64_t flash_charge_duration; /* flash firing power */ size_t supported_flash_firing_level_cnt; cam_format_t supported_firing_levels[CAM_FLASH_FIRING_LEVEL_MAX]; /* Flash Firing Time */ int64_t flash_firing_time; /* Flash Ciolor Temperature */ uint8_t flash_color_temp; /* Flash max Energy */ uint8_t flash_max_energy; /* Maximum number of supported points in the tonemap curve */ int32_t max_tone_map_curve_points; /* supported formats */ size_t supported_scalar_format_cnt; cam_format_t supported_scalar_fmts[CAM_FORMAT_MAX]; uint32_t max_face_detection_count; uint8_t hw_analysis_supported; uint8_t histogram_supported; /* Number of histogram buckets supported */ int32_t histogram_size; /* Maximum value possible for a histogram bucket */ int32_t max_histogram_count; cam_dimension_t sharpness_map_size; /* Maximum value possible for a sharpness map region */ int32_t max_sharpness_map_value; /*Autoexposure modes for camera 3 api*/ size_t supported_ae_modes_cnt; cam_ae_mode_type supported_ae_modes[CAM_AE_MODE_MAX]; cam_sensitivity_range_t sensitivity_range; int32_t max_analog_sensitivity; /* picture sizes need scale*/ cam_scene_mode_overrides_t scene_mode_overrides[CAM_SCENE_MODE_MAX]; size_t scale_picture_sizes_cnt; cam_dimension_t scale_picture_sizes[MAX_SCALE_SIZES_CNT]; uint8_t flash_available; cam_rational_type_t base_gain_factor; /* sensor base gain factor */ /* AF Bracketing info */ cam_af_bracketing_t ubifocus_af_bracketing_need; cam_af_bracketing_t refocus_af_bracketing_need; /* opti Zoom info */ cam_opti_zoom_t opti_zoom_settings_need; /* still more info */ cam_still_more_t stillmore_settings_need; /* chroma flash info */ cam_chroma_flash_t chroma_flash_settings_need; cam_rational_type_t forward_matrix[3][3]; cam_rational_type_t color_transform[3][3]; uint8_t focus_dist_calibrated; uint8_t supported_test_pattern_modes_cnt; cam_test_pattern_mode_t supported_test_pattern_modes[MAX_TEST_PATTERN_CNT]; int64_t stall_durations[MAX_SIZES_CNT]; cam_illuminat_t reference_illuminant1; cam_illuminat_t reference_illuminant2; int64_t jpeg_stall_durations[MAX_SIZES_CNT]; int64_t raw16_stall_durations[MAX_SIZES_CNT]; cam_rational_type_t forward_matrix1[FORWARD_MATRIX_ROWS][FORWARD_MATRIX_COLS]; cam_rational_type_t forward_matrix2[FORWARD_MATRIX_ROWS][FORWARD_MATRIX_COLS]; cam_rational_type_t color_transform1[COLOR_TRANSFORM_ROWS][COLOR_TRANSFORM_COLS]; cam_rational_type_t color_transform2[COLOR_TRANSFORM_ROWS][COLOR_TRANSFORM_COLS]; cam_rational_type_t calibration_transform1[CAL_TRANSFORM_ROWS][CAL_TRANSFORM_COLS]; cam_rational_type_t calibration_transform2[CAL_TRANSFORM_ROWS][CAL_TRANSFORM_COLS]; uint16_t isCacSupported; cam_opaque_raw_format_t opaque_raw_fmt; /* true Portrait info */ cam_true_portrait_t true_portrait_settings_need; /* Sensor type information */ cam_sensor_type_t sensor_type; cam_aberration_mode_t aberration_modes[CAM_COLOR_CORRECTION_ABERRATION_MAX]; uint32_t aberration_modes_count; /* Can the sensor timestamp be compared to * timestamps from other sub-systems (gyro, accelerometer etc.) */ uint8_t isTimestampCalibrated; /* Analysis stream max supported size */ cam_dimension_t analysis_max_res; /* Analysis stream padding info */ cam_padding_info_t analysis_padding_info; /* Max size supported by ISP viewfinder path */ cam_dimension_t max_viewfinder_size; /* Analysis recommended size */ cam_dimension_t analysis_recommended_res; /* Analysis recommended format */ cam_format_t analysis_recommended_format; /* This is set to 'true' if sensor cannot guarantee per frame control */ /* Default value of this capability is 'false' indicating per-frame */ /* control is supported */ uint8_t no_per_frame_control_support; /* EIS information */ uint8_t supported_is_types_cnt; uint32_t supported_is_types[IS_TYPE_MAX]; /*for each type, specify the margin needed. Margin will be the decimal representation of a percentage ex: 10% margin = 0.1 */ float supported_is_type_margins[IS_TYPE_MAX]; /* Max cpp batch size */ uint8_t max_batch_bufs_supported; uint8_t flash_dev_name[QCAMERA_MAX_FILEPATH_LENGTH]; uint8_t eeprom_version_info[MAX_EEPROM_VERSION_INFO_LEN]; /* maximum pixel bandwidth shared between cameras */ uint64_t max_pixel_bandwidth; /* Array of K integers, where K%4==0, as a list of rectangles in the pixelArray co-ord system left, top, right, bottom */ int32_t optical_black_regions[MAX_OPTICAL_BLACK_REGIONS * 4]; /* Count is K/4 */ uint8_t optical_black_region_count; } cam_capability_t;