按关键词阅读: android 基于 论文 硕士学位 开发 研究 框架 OpenMAX
62、ne通知OMXCodec 。
Compoment使用EmptyBufferDone消息通知OMXCodec已完成input buffer的读取, 具体的实现是通过调用回调函数OnEmptyBufferDone()实现的 。
OMXCodec收到该命令后会通过mVideoTrack读取新的视频码流到input port的buffer中,并调用OMX_EmptyThisBuffer通知component 。
OMXCodec使用OMX_FillThisBuffer传递空的bffer给component用于存储解码后的帧 , Component收到该命令后将解码好的帧数据复制到该buffer上,然后调用FillBu 。
63、fferDone通知OMXCodec 。
Compoment使用FillBufferDone通知OMXCodec已完成output port buffer的填充 , 具体的实现是通过调用回调函数OnFillBufferDone()实现的 。
OMXCodec收到该命令后将解码好的帧存入可显示队列中 , AwesomePlayer调用OMXCodec:read()函数读出可显示队列的对头送给Renderer完成颜色转换等操作 , 再传递给mISurface进行图像绘制 , 同时Render调用release()函数,其中的SignalBufferDone()会用OMX_FillThisBuffer通知component有空的buffer可填充 。
假设input port buffer中有2个buffer,分别为buffer_1和buffer_2 , 并且这两个buffer所携带的数据可构成1帧,则AssemblePartialFrames首先申请一块内存区域tmp_buffer_1,将buffer_1的有效数据拷贝到tm 。

稿源:(未知)
【傻大方】网址:/a/2021/0621/0022536619.html
标题:基于|基于Android的OpenMAX框架研究与开发硕士学位论文( 九 )