第24讲 录像Buffer Path帧率统计 - Android Camera性能分析

2024年10月29日 第24讲 录像Buffer Path帧率统计 极客笔记

本讲是Android Camera性能分析专题的第24讲,我们介绍录像Buffer Path帧率统计,包括如下内容:

  1. 从GraphicBufferSource统计录像Buffer Path帧率
  2. Video Codec角度统计视频帧率
  3. Video Codec2角度统计视频帧率
资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera
星球ID: 17296815
Wechat 极客笔记圈

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.

本文链接:http://so.lmcjl.com/news/16528/

展开阅读全文