如何使用MediaCodec API来调用我的自定义解码器

时间:2013-08-28 06:55:18

标签: android android-ndk android-mediaplayer android-framework stagefright

我有一个移植到Android的视频解码器,并成功地作为一个独立的应用程序工作,但我想将此代码集成到Android多媒体框架。所以,这个代码我已经添加到android的媒体框架中。那是我已将其添加到root/media/libstagefright/codecs/myDecoder

我在myDecoder文件夹下写了一个Android.mk我添加并放置了我的解码器的源代码,编译成功,我可以在模拟器中运行它。

现在,我已经读过android中新的MediaCodec API允许我们访问和使用android源代码中可用的编解码器。

我的问题是,现在我已将我的解码器集成到android源代码中:

我是否可以使用我的解码器解码输入流并在设备屏幕上呈现它?

我的解码器有一个函数应该被调用来解码流。此函数将输入流的路径作为参数。

我应该修改解码器源代码中的内容以符合MediaCodec API的要求。

对此有任何帮助对我有用。

-Regards。

1 个答案:

答案 0 :(得分:2)

MediaCodec内部使用ACodec抽象,它与底层OMX组件对话。因此,您的编解码器应该在您平台的OMX文件中注册一个media_codecs.xml组件。

为确保始终选择自定义编解码器,您可以确保将编解码器注册为media_codecs.xml文件中您希望使用的特定type编解码器的第一个组件。

除此之外,只要您的编解码器支持标准OMX功能和Android特定扩展(如Native Buffer使用等),它就可以正常工作。

注意:我认为您的应用程序需要提供输入并使用MediaCodec的输出。