我的任务是将视频解码器集成到Stagefright(安卓的多媒体框架)中。我搜索并找到了关于为Stagefright创建一个新插件的以下内容
要添加对新格式的支持,需要::
StageFright核心读取数据所需的接口。OMXCodec.cpp文件中的新解码器和kDecoderInfo数组中。 static const CodecInfo kDecoderInfo[] = {
{MEDIA_MIMETYPE_AUDIO_AAC, "OMX.TI.AAC.decode"},
{MEDIA_MIMETYPE_AUDIO_AAC, "AACDecoder"},
};以上数据是我在网上所能找到的全部数据。现在,我有一个简单的应用程序,它将一个文件作为输入,并使用android中的原生API在屏幕上呈现它。有谁能告诉我如何继续前进吗。所有这些OMXCodec.cpp和其他文件都是从哪里得到的,以及我的项目应该放在哪个目录中。请提供有关这方面的解决办法。提前谢谢。
发布于 2013-03-12 13:39:59
从你的问题上看,你似乎是在考虑一项针对Ice-Cream Sandwich或早期版本安卓的推荐。首先,您应该清楚的是安卓的版本,即Ice-Cream Sandwich或and或JellyBean和after。在不同版本的安卓系统中,编解码器的集成是不同的。
我已经对您的另一个问题发表了评论,这个问题是针对JellyBean和以后的(参考:Android:如何将解码器集成到多媒体框架中)。
如果您希望将您的编解码器集成到Ice-Cream Sandwich或之前,那么这些步骤在您的问题中已经可用。除了将解码器添加到kDecoderInfo列表中外,您还可以设置某些特殊的功能,如这里所示。
关于OMXCodec.cpp的问题,您可以在frameworks/base/media/libstagefright/找到Ice-Cream Sandwich的情况下的文件,在JellyBean的情况下找到frameworks/av/media/libstagefright/的文件。
如果您遵循了将视频解码器集成到Stagefright框架中的所有步骤,那么最简单的测试将是执行以下操作:
OMXCodec.cpp中,通过删除此语句//#define LOG_NDEBUG 0中的注释并在目录中运行mm来启用日志。将重新生成的libstagefright.so复制到设备上的/system/lib。logcat并开始捕获日志。OMX组件,请检查您的日志文件。如果找到,则将编解码器集成到Stagefright中是成功的。否则,您将不得不调试并找出问题所在。后记:
AOSP发行版。Extractor类。MediaExtractor抽象文件格式解析器,并帮助在媒体文件中解复用不同的曲目。我希望有了这些信息,你应该能够让你的编解码器集成到Android系统中。
https://stackoverflow.com/questions/15356629
复制相似问题