OpenMAX大意 二 组件缓冲处理

二、组件缓冲处理

当组件完成数据输出(Fill Buffer)后会调用FillBufferDone回调函数以通知应用层准备数据(仅非Tunneled模式)
函数C代码原型:
FillBufferDone(OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer)
其中hComponent是组件句柄;pAppData为GetHandle时赋入的应用数据;pBuffer为缓冲地址。由于该缓冲已经填写完毕(通常是一帧完成),回调函数将改数据输出到适当位置,完后再次调用OMX_FillThisBuffer,链入下一轮工作。

当组件完成数据消耗(Empty Buffer)后会调用EmptyBufferDone回调函数以通知应用层准备数据(仅非Tunneled模式)
函数C代码原型:
EmptyBufferDone(OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer)
三个参数含义同上。由于改缓冲已经消耗殆尽,回调函数将读入数据载入缓冲,完后再次调用OMX_EmptyThisBuffer,链入下一轮工作。

上述缓冲操作是组件运行的一个环节,OpenMAX组件运行于一个独立线程。
 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值