Android多媒体框架的核心 OpenCore 解析


1. OpenCore介绍

  • OpenCore是android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现。通过Open Core程序员可以方便快速的开发出想要的多媒体应用程序,例如:音视频的采集,回放,视频会议,实时的流媒体播放等等应用。

2. OpenCore代码结构

  • 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:编译工具以及一些可注册的模块。

3. OpenMax介绍

  • OpenMAX是Khronos制定的API,Khronos也是OpenGL的制定者。

  • OpenMAX是无授权费、跨平台的应用程序接口API,通过媒体加速组件能够在开发、集成和编程环节中实现跨多操作系统和处理器硬件平台,提供全面的流媒体编解码器和应用程序便携化。

  • 在架构底层上为多媒体codec和数据处理定义了一套统一的编程接口(OpenMAX IL API),对多媒体数据的处理功能进行系统级抽象,为用户屏蔽了底层细节。因此多媒体应用程序和多媒体框架通过 OpenMAX IL可以以一种统一方式来使用codec和其他多媒体数据处理功能,具有了跨越软硬件平台的移植性。

4. OpenMax层次

  • 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增加了异步接口。

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告