本讲是android camera native framework专题的第11讲,我们介绍cameraserver进程启动之hidl cameradevice初始化修正cameracharacteristics。
更多资源:
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出android camera 星球id: 17296815 |
极客笔记圈 |
修复/更新 mcameracharacteristics
fixupmonochrometags
当camera device < 3.5 且 包含 monochrome capability(hal 3.3新增)的camera device
- 更新android_sensor_info_color_filter_arrangement(hal 3.2就有)为android_sensor_info_color_filter_arrangement_mono(hal3.4新增)
- 删除monochrome camera不需要的static keys,request keys,result keys
- 更新android_sensor_black_level_pattern,monochrome camera的所有的2×2通道必须有相同的值。
adddynamicdepthtags
dynamic depth是指包含depth信息的jpeg,在camera framework完成jpeg和depth buffer的composite,因此相关静态metadata hal不会填,这里要补充上,筛选规则是:jpeg和depth size相同(或宽高比近似)的streams
- android_depth_available_dynamic_depth_stream_configurations
- android_depth_available_dynamic_depth_stall_durations
- android_depth_available_dynamic_depth_min_frame_durations
deriveheictags
heic是camera framework调用encoder的接口压成的,因此相关静态metadata需要补上
- android_heic_available_heic_stream_configurations
- android_heic_available_heic_min_frame_durations
- android_heic_available_heic_stall_durations
addrotatecroptags
如果android_scaler_available_rotate_and_crop_modes没有填,则至少条一个值:android_scaler_rotate_and_crop_none
addprecorrectionactivearraysize
如果android_sensor_info_pre_correction_active_array_size没有填,则获取android_sensor_info_active_array_size的值填进去
overridezoomratiotags
- 如果hal不支持android_control_zoom_ratio_range,则通过android_scaler_available_max_digital_zoom来构造一个zoom ratio range,更新到android_control_zoom_ratio_range。并增加zoom ratio相关的static/request/result keys
fixuptorchstrengthtags
- 如果没有填android_flash_info_strength_default_level,则填成1
- 如果没有填android_flash_info_strength_maximum_level,则填成1
queryphysicalcameraids
如果支持multi_camera capability,则从android_logical_multi_camera_physical_ids获取到physical camera ids放到mphysicalids
修复/更新 physicalcamera characteristics
如果支持logical multicamera
- getphysicalcameracharacteristics
- overridezoomratiotags