Android Codec 集成和 video Overlay
2010-07-01 15:05:00 来源:WEB开发网Codec 集成和video overlay是现在FSL对android 多媒体修改的所有东西,codec library以.so的形式放在prebuilt目录下,没有源文件 。而video overlay的实现主要是使用了FSL的ipu底层库,将视频数据 直接发送到硬件,由硬件进行merge。
A、Codec 集成
1、codec 集成方法
首先声明一下俺说的codec集成是指将codec集成到opencore 框架中,网上看有人直接放个库然后通过jni调用,这种的方式有点扯蛋,得自己实现控制,同步,输出等一堆东西,完全是杀鸡取卵,我们就不讨论了。要把一个裸的codec放在opencore框架内有三种方式:
a、实现一个openmax component 注册在android已存在的omx core上,或者提供自己的omx core
b、实现一个封装了codec的PVMF 标准的 mio(media input/output)
c、 实现一个封装codec的PVMF的Node
三种方式都涉及到opencore一堆BT的术语,首先我们得来消化下这几个术语,不然很难有个直观的了解。因为opencore实在庞大得超出我的能力之外,所以俺只是从整体结构上看了下骨架,我是这么理解的:opencore实际包含两部分:一部分就是command管道,一个就是数据管道;command就是我们的player/author engine, 而数据的流动就是在pvmf 中进行。PVMF下面挂载的的基本组件就是Node,就是实现一个具体功能的单元,比如说file parse, codec, sink等等。前面提到的MIO实际上也是一个特殊的Node,它的功能就是media input/output 。
engline接受上层的command,控制PVMF下的Node进行工作,而Pvplayer/author是基于engline实现的一个提供给android使用的SDK,这就是Opencore的工作原理 了。
下载 (67.05 KB)
刚才 在这里只说第一种方式,就是omx封装的方式,FSL也是采用的这种方式的提供的 HW codec library,并且提供了自己的omx core。换句话就是说FSL实现了整个/external/opencore/codecs_v2这个目录的内容,虽然这个闷骚的公司只是提供了几个.so 。我们要想实现一个完整的omx封装的codec移植得准备下面的知识 :
/external/opencore/doc/openmax_call_sequences.pdf
/external/opencore/doc/omx_core_integration_guide.pdf
http://omxil.sourceforge.net/docs/modules.html
更多精彩
赞助商链接