Android 12(S) 圖像顯示系統 - BufferQueue的工作流程(十一)



題外話

我竟然已經寫了這個系列的十一篇文章了,雖然內容很淺顯,雖然內容很枯燥,雖然內容也許沒營養,但我為自己的堅持點贊!

必讀:Android 12(S) 圖像顯示系統 - 開篇


 

一、前言


前面的兩篇文章,分別講解了Producer的處理邏輯和queue buffer后通過FrameAvailableListener通知到Consumer的基本過程。

流程已經走到了BufferQueueConsumer::acquireBuffer中,所以這篇文章聚焦Consumer的一些處理邏輯。

還是把流程圖貼上來

從流程圖中看,這篇文章就是講解右半部分的內容。

 

二、消費者-Consumer的相關邏輯


了解了 BufferQueueCore 和 BufferQueueProducer,接着看 BufferQueue 的最后一個元素:BufferQueueConsumer。

BufferQueueConsumer作為消費者的一個代表元素通過 acquireBuffer 來獲取圖像緩沖區,通過 releaseBuffer 來釋放該緩沖區。

下面就分別看看 BufferQueueConsumer 中 acquireBuffer 和 releaseBuffer 兩個操作的具體流程。

2.1 代碼位置

/frameworks/native/libs/gui/BufferQueueConsumer.cpp

 

2.2 acquireBuffer的邏輯

 

關注公眾號 Android元宇宙 繼續閱讀相關文章!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM