最近在看Opencore和OpenMAX,有几个问题咨询一下
最近在看OpenMAX的相关资料,需要移植一个基于VC的解码器到Android中。在看官方文档OMX Core Integration guide 的时候,里面提到了两个概念,一个是OMX 组件,一个是OMX内核,这两个有什么区别吗?
就拿Android自带的H.264来说吧,在源码codec.v2文件夹下,video里面有一个AVC_h264文件夹,在OMX文件夹里也有个OMX_h264,那这两个东西都是啥,实现了啥具体功能?
都说openmax提供了统一的接口,那我想从H.264来了解视频解码器与openmax的接口连接,那我需要看哪些代码?希望知道的大牛能具体说一下代码的位置,谢谢了。。。 --------------------编程问答-------------------- 关注 ,学习 --------------------编程问答-------------------- 楼主知道如何调用opencore接口去播放一个mp3文件吗?网上搜了很多资料都是讲opencore这个框架的,没有示例的代码。我现在想在bootanimation里面调用opencore去播放一段开机音乐,求指导!谢谢! --------------------编程问答--------------------
系统都没起来,怎么播? --------------------编程问答--------------------
系统已经起来了,android把声卡设备打开了,所以我用移植的播放器(mp3play)去播会提示打不开声卡设备,所以才要用opencore来播放 --------------------编程问答-------------------- 没弄太懂 ,是在本地库自己扩充MP3支持库 ?那你不如直接整合到opencore里面 , 然后上层还是走MediaPlayer ,这样更合理吧 。如果是上层的一个播放器 ,那你移植的时候 ,改里面相应的播放接口就可以了啊 , 为啥还要在播放器里面自己去调底层库哦。。 --------------------编程问答-------------------- 我对OPENCORE 不怎么熟悉
比较熟悉的是strangefright + omx
大致谈谈我对OMX的了解吧
OMX 只提供出来少数的几个函数接口路OMX_Init这样的标准接口,OMX core可以说是OMX IL层的具体实现,OMX Component 则是一个个编解码的具体实现,比如实现H264的解码。
这两个都是各个厂商有各个厂商自己的实现的。能拉到源码的话可以去源码目录中自己看看高通跟TI分别是怎么实现的。一般的大多会把单个的Component 写成一个类的形式,
OMX core 跟OMX Component 的关系是这样的:
OMX core中具体作用是实现OMX提供出来的几个接口,然后能让自己装载生成自己实现的Component 对象。OMX_GetHandle这个函数比较重要,他会返回一个OMX_HANDLETYPE*类型的句柄给调用者,这个句柄能被OMX core解析成具体的Component 对象。比如OPENCORE在H264解码的时候会使用这个句柄去调用EmptyThisBuffer这个函数把需要解码的数据送给具体的h264解码的Component 对象。这个中间的具体的解析过程就是由OMX core来负责的。 --------------------编程问答-------------------- 不晓得你有源码不
/hardware/qcom/media/mm-core是高通的omx core实现
/hardware/qcom/media/mm-video是高通的omx Component 实现,主要是视频的硬解码。 --------------------编程问答-------------------- 看来大家都研究的挺深的啊! --------------------编程问答-------------------- 看来还是要看源码啊,手头只有官方的源码,那我要移植一个解码器(目前只考虑解码,编码和文件解析不管)到openmax中,要关注的是OMX core和omx component之间的连接,对吗?
--------------------编程问答-------------------- 这个其实都是在OMX CORE里做好了,如果只是在现有的openmax框架之下弄的话,只需要关注component的实现就好了。
--------------------编程问答-------------------- 相关源码有些厂商是不给的。。我们就是。
还有啊,opencore已经被android抛弃了,现在只有stagefright了。 --------------------编程问答--------------------
补充:移动开发 , Android