[英]MediaCodec as decoder to send decoded data to two surfaces. How can we avoid big trunk data copy?
要配置解碼器,我們稱
decoder.configure(format,surface, crypto,flags)
。
然后,在
MediaCodec.Callback.onOutputBufferAvailable()
,
我們稱之為
codec.releaseOutputBuffer(index,System.nanoTime())
在該表面上繪制解碼的視頻,該視頻在configure()函數中傳遞。 我們是否有辦法將輸出緩沖區發送到另一個表面,該表面由編碼器從
MediaCodec.createInputSurface()
避免大量中繼數據復制。
沒有辦法做到這一點。 研究完Nvidia的Android源代碼和omx解碼器工具之后; 如果需要將數據發送到兩個表面,則必須使用制造商提供的本地DMA內存復制功能,或直接使用本地omx解碼器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.