Android 如何使用MediaCodec API调用自定义解码器
我有一个视频解码器,它被移植到android上,并成功地作为一个独立的应用程序工作,但是我想将这段代码集成到android多媒体框架中。所以,我将这段代码添加到android的媒体框架中。也就是说,我已经将它添加到了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允
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调用编解码器,并使用其输出缓冲区在我的标准媒体播放器中呈现。请提供一些关于此问题的建议: