OpenCore的代码在Android代码的External/Opencore目录中。这个目录是OpenCore的根目录,其中包含的子目录如下所示:
android:这里面是一个上层的库,它实现了一个为Android使用的音视频采集,播放的接口,和DRM数字版权管理的接口实现。
baselibs:包含数据结构和线程安全等内容的底层库
codecs_v2:音视频的编解码器,基于OpenMAX实现
engines:核心部分,多媒体引擎的实现
extern_libs_v2:包含了khronos的OpenMAX的头文件
fileformats:文件格式的解析(parser)工具
nodes:提供一些PVMF的NODE,主要是编解码和文件解析方面的。
oscl:操作系统兼容库
pvmi:输入输出控制的抽象接口
protocols:主要是与网络相关的RTSP、RTP、HTTP等协议的相关内容
pvcommon:pvcommon库文件的Android.mk文件,没有源文件。
pvplayer:pvplayer库文件的Android.mk文件,没有源文件。
pvauthor:pvauthor库文件的Android.mk文件,没有源文件。
tools_v2:编译工具以及一些可注册的模块。
OpenMAX是Khronos制定的API,Khronos也是OpenGL的制定者。
OpenMAX是无授权费、跨平台的应用程序接口API,通过媒体加速组件能够在开发、集成和编程环节中实现跨多操作系统和处理器硬件平台,提供全面的流媒体编解码器和应用程序便携化。
在架构底层上为多媒体codec和数据处理定义了一套统一的编程接口(OpenMAX IL API),对多媒体数据的处理功能进行系统级抽象,为用户屏蔽了底层细节。因此多媒体应用程序和多媒体框架通过 OpenMAX IL可以以一种统一方式来使用codec和其他多媒体数据处理功能,具有了跨越软硬件平台的移植性。
OpenMAX AL(Appliction Layer)
OpenMAX AL API 在应用程序和多媒体中间件之间提供了一个标准化接口,多媒体中间件提供服务以实现被期待的 API 功能。 AL向多媒体接口提供应用册便携性。
OpenMAXIL(Integration Layer)
OpenMAX IL 作为音频,视频和图像编解码器,能与多媒体编解码器交互,并以统一的行为支持组件(例如资源和皮肤)。编解码器供应商必须写私有的或者封闭的接口集成进移动设备。IL的目的是使用特征集合为编解码器提供一个系统抽象,为解决多个不同媒体系统之间轻便性的问题。
OpenMAXDL(Development Layer)
OpenMAX DL 定义了一个API,它是音/视频和图像功能的集合。硅供应商能够在一个新的处理器上实现并优化其,然后编解码供应商使用其来编写更广泛的编解码器功能。它包括音频信号的处理功能,如FFT和filter;图像原始处理,如颜色空间转换和视频原始处理,以实现例如MPEG-4、H.264、MP3、AAC和JPEG等编解码器的优化。 OpenMAX通过iDL 和aDL来支持加速, iDL使用OpenMAX IL结构,aDL向OpenMAX DL API增加了异步接口。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。