Android 12(S) 图像显示系统 - BufferQueue的工作流程(十)



题外话

疫情隔离在家,周末还在努力学习的我  .....


 

一、前言


上一篇文章中,有基本讲清楚Producer一端的处理逻辑,最后也留下了一个疑问:

Consumer是什么时候来消费数据的?他是自己主动来取的?还是收到了某种通知后再来处理的?

这篇文章,就带着这些疑问来开始分析源码。开头还是把这种流程图贴一下

 

二、Listener监听器的回调过程解析


生产者写完数据,把buffer还给buffer queue后,又是怎样通知消费者来使用的呢?

下面这些解析步骤,就是回答上面的问题

1. 生产者把数据写入buffer后,调用BufferQueueProducer::queueBuffer 入队列这个buffer;

2. 怎么去通知消费者来取呢? queueBuffer函数中会调用frameAvailableListener->onFrameAvailable(item);

3. frameAvailableListener是什么呢?frameAvailableListener = mCore->mConsumerListener;

4. mCore即为BufferQueueCore, BufferQueueCore中有成员 sp<IConsumerListener> mConsumerListener


5. BufferQueueCore::mConsumerListener 是什么时候设置的呢?

   

 

关注公众号 Android元宇宙 继续阅读相关文章!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM