本讲是android camera性能分析专题的第24讲,我们介绍录像buffer path帧率统计,包括如下内容:
- 从graphicbuffersource统计录像buffer path帧率
- video codec角度统计视频帧率
- video codec2角度统计视频帧率
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出android camera 星球id: 17296815 |
极客笔记圈 |
1. 从graphicbuffersource统计录像buffer path帧率
我们可以通过graphicbuffersource来统计录像帧率,在trace中将graphicbuffersource的trace圈起来选中,如下图所示;
- 在9143.92ms内,发生了526次0和1,其中counter为0表示graphicbuffersource acquire了一张buffer,counter为表示graphicbuffer queue了一张buffer。
- 因此我们可以计算平均每隔多久送一帧: 9143.92ms / (526/2) = 34.768ms (注:这里简单让526除以2,理论上要计算counter为1的个数,这个可以参考我们第20讲介绍的sql语句来精确查询counter为1的个数)
- 根据每隔多久送一帧来计算帧率:1000/34.768 = 28.762fps.
2. video codec角度统计视频帧率
可以搜索 hidl::iomxnode::fillbuffer::client
的个数,如下图所示:
- 9143.92ms内发生了264次,帧率为:1000 / (9143.92 / 263) = 28.762fps.
3. video codec2角度统计视频帧率
可以搜索 hidl::icomponentlistener::oninputbuffersreleased::client
的个数,如下图所示:
- 5616.245ms内发生了169次,则帧率为:1000/(5616.245/169) = 30.093fps.