exynos SOC 平台的openmax component 运行分析

研究了一下exynos平台上的openmax component组件,绕来绕去的很绕。
这里总结一下。
先上个总体图:


曾经尝试把awesomeplayer,以及OMXCodec里的各种event流程,queue流程,内存使用释放路径,以及各种线程概念全画到图里,却发现东西太多太杂,导致图混乱不堪。
索性,这里重点只贴Exynos平台自己的东西,把重点放在数据流向,以及大体的函数调用关系上。其他的只一笔带过。突出重点。

整个exynos 的OMX解码流程非常绕。这里记录几个关键点。

输入端分析:
1,OMXCodec 响应EMPTY_BUFFER_DONE, drainInputBuffer 里面通过buffer id得到这个使用完毕的OMX_BUFFERHEADERTYPE,把上游VideoTrack传来的数据挂上,
然后把OMX_BUFFERHEADERTYPE挂到message->pCmdData ,把message挂到 input port queue,然后启动信号量
2,数据送到decoder之后, OMX_BUFFERHEADERTYPE就可以释放回队列了。
3,可以看出,实际上有两条队列,一条是OMX_core用的OMX_BUFFERHEADERTYP
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值