首先需要实现高通平台采集帧率的切换,参考前一篇文章
我们拍照和录像的数据流一直都是使用的预览流,由媒控去编码,实现拍照和录像的功能。高通的高帧率HFR模式需要在video流下实现,这就意味着我们的很多代码都失效了,加上初步配置video流出现异常的问题,最后还是决定在preview数据流上实现60帧采集
首先我们需要工作在普通的预览模式,sensor配置文件中out_info的mode需要是SENSOR_DEFAULT_MODE,而非是SENSOR_HFR_MODE
相比于配置30帧,注意一下60帧需要的寄存器配置更多,主要是
global timing
。我们需要根据sensor手册修改60帧对应的寄存器列表RES_1080P60_REG_ARRAY
,如下图:preview默认限制在最高30帧,我们修改到60帧
//mct_pipeline.c mct_pipeline_fill_dimensions_snapshot() #ifdef IPC_60FPS_SUPPORT property_get("persist.camera.max.previewfps", fps_str, "60"); #else property_get("persist.camera.max.previewfps", fps_str, "30"); #endif |
- 注意在xml里面增加50帧和60帧的chromatix文件配置