[Android] native MediaCodec
最佳答案 问答题库508位专家为你答疑解惑
前言:
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
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"[Android] native MediaCodec":http://eshow365.cn/6-37940-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 计算模型参数量的方法
- 下一篇: Go 语言函数闭包(匿名函数)