海思視頻緩存池 cat /proc/media-mem 查看mmz記憶體使用情況,找到VB申請情況如下:(單位:kb) cat /proc/umap/vb 查看VB申請情況,(單位:byte) 通過計算發現大小是一致的。 不斷地查看VB的使用情況: 發現不同時刻poolid0中的緩衝塊的使用模塊是不同 ...
海思視頻緩存池
cat /proc/media-mem 查看mmz記憶體使用情況,找到VB申請情況如下:(單位:kb)
cat /proc/umap/vb 查看VB申請情況,(單位:byte)
通過計算發現大小是一致的。
不斷地查看VB的使用情況:
發現不同時刻poolid0中的緩衝塊的使用模塊是不同的,說明瞭每個緩衝池不僅僅是只提供給一個模塊。
我原來的猜想:
poolid0和poolid1是按最大解析度申請的緩衝塊大小,打算給VI使用的
poolid0和poolid1是按縮小後的解析度申請的緩衝塊大小,打算給VPSS和VENC使用的
實際上:
VENC使用了poolid0和poolid1中的緩衝塊,因為VI只能使用poolid0和poolid1中的緩衝塊,所以導致了一下問題:
cat /dev/logmpp
大神講解是:
初始化開了兩個vb pool一個是10個100k的,一個是10個200k,當海思模塊要用一個90k的VB時,會優先從100k的那個vb pool中去申請,有就用,沒有就去200k那個vb pool中申請,再沒有就會報vb fail的錯誤。
關於海思視頻緩衝池可以參考:
http://bbs.ebaina.com/forum.php?mod=viewthread&tid=52277&fromuid=29553