总体框架
Android 编解码总体框架可用下图表示
-
MeidaPlayer, Nuplayer
Android原生播放器,是MediaCodec的使用者
-
MediaCodec(java, native)
framework接口,为使用者提供接口调用
-
CCodec / ACodec + OpenMax
framework框架, 这里同时存在两套框架 CCodec和 ACodec+OMX。 CCodec是Android Q上引入的新框架,用于替代ACodec+OMX。Android的传统是会两套框架同时存在一段时间,之后再把旧框架移除
-
Hal
分为软件实现和硬件实现,同时也分成两套框架,meida.codec为对接OMX的进程,media.swcodec 对接的C2框架,为Android原生的编辑码软件实现。media.hwcodec 对接的C2框架,是高通对编解码的硬件实现,不同的平台会有不同的实现,名字也不一定是这个。 hal层实现了video和audio各种编解码组件
接下来要从以下几方面来学习,对编解码整体有一个了解
- MediaCodec使用,对接口的认识
- MediaCodec是如何选择使用Codec2 还是 ACodec框架
- 编解码组件创建
接着会对C2 和 ACode框架做一系列详细的学习
-
C2
-
ACode