本讲是Android Camera性能分析专题的第24讲,我们介绍录像Buffer Path帧率统计,包括如下内容:
视频在线观看:
加入知识星球与更多Camera同学交流
– 星球名称:深入浅出Android Camera
– 星球ID: 17296815
– Wechat: 极客笔记圈
我们可以通过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.
可以搜索 HIDL::IOmxNode::fillBuffer::client
的个数,如下图所示:
可以搜索 HIDL::IComponentListener::onInputBuffersReleased::client
的个数,如下图所示: