Android MediaCodec类中dequeueInputBuffer和queueInputBuffer作用

来源:互联网 发布:linux usermod a 编辑:程序博客网 时间:2024/06/03 23:06



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中对这个变量的解释,具体如何翻译我不是特别清楚。
1 0