OMXCodec,

来源:互联网 发布:基带工程师知乎 编辑:程序博客网 时间:2024/06/07 03:27
OMXCodec read InputBuffer,消耗InputBuffer,拿到OutPutBuffer的过程如下:

(1) OMXCodec使用OMX_EmptyThisBuffer传递未解码的buffer给component, component收到该命令后会读取input port buffer中的数据,将其组装成帧进行解码;

(2) decoder component 读取buffer中的数据完成后会调用EmptyBufferDone 通知OMXCodec,已完成inputport buffer的读取;

(3) OMXCodec收到该命令后会通过mVideoTrack读取新的视频buffer到input port的buffer中,并调用OMX_EmptyThisBuffer通知component;

(4) OMXCodec使用OMX_FillThisBuffer传递的buffer给component用于存储解码后的帧,component收到该命令后将解码好的帧数据复制到该buffer上;

(5) 然后调用FillBufferDone通知OMXCodec,已完成outputport buffer的填充;

(6) OMXCodec收到该命令后将解码好的帧传递给mISurface进行图像绘制绘制完毕后使用OMX_FillThisBuffer通知component有空的buffer可填充。
0 0