OmxCodec与Component(解码组件)消息处理流程

buffer的处理主要由以下4个命令来进行驱动

 
OMXCodec使用OMX_EmptyThisBuffer传递未解码的buffer给component,
 
component收到该命令后会读取input port buffer中的数据,将其组装成帧进行解码,
 
读取buffer中的数据完成后会调用EmptyBufferDone通知OMXCodec
 
compoment使用EmptyBufferDone通知OMXCodec已完成inputport buffer的读取,
 
OMXCodec收到该命令后会通过mVideoTrack读取新的视频buffer到input port的buffer中,
 
并调用OMX_EmptyThisBuffer通知component
 
OMXCodec使用OMX_FillThisBuffer传递空的buffer给component用于存储解码后的帧,
 
component收到该命令后将解码好的帧数据复制到该buffer上,
 
然后调用FillBufferDone通知OMXCodec
 
compoment使用FillBufferDone通知OMXCodec已完成outputport buffer的填充,
 
OMXCodec收到该命令后将解码好的帧传递给mISurface进行图像绘制,
 
绘制完毕后使用OMX_FillThisBuffer通知component有空的buffer可填充。
posted @ 2019-08-27 11:01  general001  阅读(585)  评论(0)    收藏  举报