当前位置: 代码迷 >> Android >> 怎么将视频解码器移植到Android中
  详细解决方案

怎么将视频解码器移植到Android中

热度:1022   发布时间:2016-05-01 22:30:39.0
如何将视频解码器移植到Android中
老板想把AVS解码器移植到Android 2.3 系统中,但是小弟现在还不知道如何入手,请各位大虾指点下,如果有相关资料就更好了,谢谢大家了。

------解决方案--------------------
可以参考framework/base/media/libstagefright/AwesomePlayer.cpp中的
sp<MediaSource> OMXCodec::Create(
const sp<IOMX> &omx,
const sp<MetaData> &meta, bool createEncoder,
const sp<MediaSource> &source,
const char *matchComponentName,
uint32_t flags)
函数。
android在这里面创建了软解码器,
一般的软解码器是派生自MediaSource。
只能提供这么多帮助了。
------解决方案--------------------
1 写java端播放器 ,留下jni接口
2 使用你本地的c代码(已有的解码代码)实现这个jni接口. 

 1 > 关于写播放器,我想出了基本的界面布局以外,你还会用到SurfaceView 就是底层的支持opengl的绘图view. 这个你如果不清楚,找些游戏引擎代码看看,会有帮助. 

你整个程序的流程就是

播放器打开文件,得到输入流 ,输入流传递给解码器, 解码器解码, 解码器输出流, 输出流来到java端,java端调用SurfaceView绘图. 

或者我看一些游戏绘图,也使用了c++代码,你可以参考一下.这样 效率应该更高.


------解决方案--------------------
移植个解码器而已,没必要还非得自己写个播放器吧
参考libstatefright/codecs目录里的代码,封装实现start、stop、read三个接口就可以了
  相关解决方案