[Android] native MediaCodec
  tCdZJQtjUpyw 2023年12月06日 17 0


前言:

Android 的 libstagefright 库提供了 MediaCodec 组件,让应用层可以直接与 平台编解码器 交互。

MediaCodec 既有 JAVA 接口(\frameworks\base\media\java\android\media\MediaCodec.java),又有 NDK 接口(/frameworks/av/media/ndk/include/NdkMediaCodec.h  &&  /frameworks/av/media/ndk/NdkMediaCodec.cpp)。开发者可以自行选择使用 JAVA 还是 c++ 对MediaCodec 进行封装,由此可见MediaCodec 的重要性。

MediaCodec 的功能定位是编解码器中间件,它规范了编解码器的工作流程,并提供了成员变量mCodec 和 mBufferChannel 给平台层用以集成,平台层只需要实现两个继承于类CodecBase 和 BufferChannelBase 的子类,然后把他们自己实现的类封装成动态库,再把动态库注册到 libstagerfrightloader 里面即可,这样MediaCodec便可以连接到自定义的 CodeBase 子类 和 BufferChannelBase 子类。

不论是 JAVA 接口还是 NDK 接口,最终都会进入 native MediaCodec : /frameworks/av/media/libstagefright/MediaCodec.cpp

官方参考:https://developer.android.com/reference/android/media/MediaCodec

NDK 接口介绍:

见:/frameworks/av/media/ndk/include/media/NdkMediaCodec.h

native 介绍:

源码:/frameworks/av/media/libstagefright/MediaCodec.cpp

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

推荐阅读
  2iBE5Ikkruz5   2023年12月12日   63   0   0 JavaJavaredisredis
tCdZJQtjUpyw
最新推荐 更多

2024-05-17