Android 编解码框架概述

935 阅读1分钟

总体框架

Android 编解码总体框架可用下图表示

image.png

  • 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