Android 如何使用MediaCodec API调用自定义解码器

Android 如何使用MediaCodec API调用自定义解码器,android,android-ndk,android-mediaplayer,android-framework,stagefright,Android,Android Ndk,Android Mediaplayer,Android Framework,Stagefright,我有一个视频解码器,它被移植到android上,并成功地作为一个独立的应用程序工作,但是我想将这段代码集成到android多媒体框架中。所以,我将这段代码添加到android的媒体框架中。也就是说,我已经将它添加到了root/media/libstagefright/codecs/myDecoder 我已经在myDecoder文件夹下编写了一个Android.mk,我已经添加并放置了解码器的源代码,编译成功,我能够在模拟器中运行它 现在,我已经读到android中新的MediaCodecAPI允

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

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

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

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

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

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

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

任何关于这方面的帮助都会对我很有帮助


-关于。

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

为确保始终拾取自定义编解码器,您可以确保您的编解码器已注册为要使用的特定编解码器类型的
媒体\u codecs.xml
文件中的第一个组件

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


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

的输出,谢谢您的回复。但正如您所指定的,我的编解码器必须支持标准OMX功能和Android特定扩展,标准OMX功能和Android特定扩展是什么?请建议一些阅读材料的东西,以便我使我的编解码器与此兼容。是的,我将通过MediaCodec API调用编解码器,并使用其输出缓冲区在我的标准媒体播放器中呈现。请提供一些关于此问题的建议: