首先需要实现高通平台采集帧率的切换,参考前一篇文章

我们拍照和录像的数据流一直都是使用的预览流,由媒控去编码,实现拍照和录像的功能。高通的高帧率HFR模式需要在video流下实现,这就意味着我们的很多代码都失效了,加上初步配置video流出现异常的问题,最后还是决定在preview数据流上实现60帧采集

  1. 首先我们需要工作在普通的预览模式,sensor配置文件中out_info的mode需要是SENSOR_DEFAULT_MODE,而非是SENSOR_HFR_MODE

  2. 相比于配置30帧,注意一下60帧需要的寄存器配置更多,主要是global timing。我们需要根据sensor手册修改60帧对应的寄存器列表RES_1080P60_REG_ARRAY,如下图:

  3. 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
  1. 注意在xml里面增加50帧和60帧的chromatix文件配置