Camera HAL中参数管理 --- SprdCamera3Setting.cpp

在一次拍照请求中,CameraApp会设置一些参数下来,如果只看App,就会以为这就是Camera拍照需要的所有参数了。但其实hal管理着比App下发参数多得多的参数集合,并且提供构建一个默认CameraMetadata对象的方法。
定义一个代表所有参数集合的struct

typedef struct {
    struct img_size preview_size;
    struct img_size picture_size;
    struct img_size video_size;
    struct img_size callback_size;

    COLOR_Tag colorInfo;
    CONTROL_Tag controlInfo;
    CONTROL_Tag resultInfo;
    EDGE_Tag edgeInfo;
    FLASH_Tag flashInfo;
    FLASH_INFO_Tag flash_InfoInfo;
    GEOMETRIC_Tag geometricInfo;
    HOT_PIXEL_Tag hotpixerInfo;
    JPEG_Tag jpgInfo;
    LENS_Tag lensInfo;
    LENS_INFO_Tag lens_InfoInfo;
    NOISE_Tag noiseInfo;
    QUIRKS_Tag quirksInfo;
    REQUEST_Tag requestInfo;
    SCALER_Tag scalerInfo;
    SENSOR_Tag sensorInfo;
    SENSOR_INFO_Tag sensor_InfoInfo;
    SHADING_Tag shadingInfo;
    STATISTICS_Tag statisticsInfo;
    STATISTICS_INFO_Tag statis_InfoInfo;
    TONEMAP_Tag toneInfo;
    LED_Tag ledInfo;
    FACE_Tag faceInfo;
    FACE_Tag orifaceInfo;
    SYNC_Tag syncInfo;
    meta_info_t metaInfo;
    uint8_t info_supported_hardware_level;
    uint8_t black_level_lock;

    SPRD_DEF_Tag sprddefInfo;

    uint8_t supported_hardware_level;
    uint8_t demosaic_mode;
    EIS_CROP_Tag eiscrop_Info;
    OTP_Tag otpInfo;
    VCM_Tag vcmInfo;
    int32_t vcm_dac[VCM_DISTANCE_COUNT];
    int32_t vcm_num;
    int32_t vcm_result;
    int32_t verification_enable;
    VCM_DIST_TAG vcmDist;
    CAL_OTP_Tag calOtpInfo;
    int32_t hist_report[CAMERA_ISP_HIST_ITEMS];
    AUTO_TRACKING_Tag autotrackingInfo;
    MLOG_Tag mlogInfo;
    int32_t fd_score[10];
    uint8_t get_algo_version;
} sprd_setting_info_t;

SprdCamera3Setting.cpp的所有内容便是对这个struct的各个成员变量进行set或者get的操作。

需要注意,所有的参数大致可分为3类:

  1. Android 原生的
  2. SPRD自定义的
  3. CallbackStream(少用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值