Android MediaCodec類中dequeueInputBuffer和queueInputBuffer作用
阿新 • • 發佈:2019-02-18
queueInputBuffer和dequeueInputBuffer是一對方法,兩個要在一起使用哦。
首先,這一對函式的應用場合是對輸入的資料流進行編碼或者解碼處理的時候,你會通過各種方法獲得一個ByteBuffer的陣列,這些資料就是準備處理的資料。
你要通過自己的方法找到你要處理的部分,然後呼叫dequeueInputBuffer方法提取出要處理的部分(也就是一個ByteBuffer資料流),把這一部分放到快取區。
接下來就是你自己對於這個資料流的處理了。
然後在處理完畢之後,一定要呼叫queueInputBuffer把這個ByteBuffer放回到佇列中,這樣才能正確釋放快取區。
對於輸出的資料流,同樣也有一對這樣的函式,叫做queueOutputBuffer和dequeueOutputBuffer,作用類似哦。
希望採納~w
謝謝, 我看了一下API,其他幾個引數我都知道是做什麼的 唯獨這個presentationTimeUs引數我不太清楚它的作用,就寫的0,現在我用MediaCodec類實現硬編硬解使用兩種不同PAD(一個小米一個三星)接影象一個正常一個延遲3秒 會是java這塊程式碼的問題嗎?
The presentation timestamp in microseconds for this buffer. This is normally the media time at which this buffer should be presented (rendered). When using an output surface, this will be propagated as the timestamp for the frame (after conversion to nanoseconds).這一段是javadoc中對這個變數的解釋,具體如何翻譯我不是特別清楚。