如何在android中为所有版本使用omxcodec

时间:2013-02-12 06:48:50

标签: android

我想解码并在屏幕上显示h264帧。现在,我想要做的就是使用omx编解码器来解码我的帧,因为它在硬件中进行解码,这有助于实现高分辨率的fps。到目前为止,我所知道的是有不同的方式来访问硬件解码器。我遇到过一些像stagefright,omxcodec,openmax这样的名字。所有这些都是不同的东西。我想逐帧解码。据我所知,android库只接受文件路径或媒体网址。但在这里,我的要求是不同的。我需要逐帧解码。那么有人能告诉我在哪里可以开始挖掘吗?我知道在最新版本的android中,他们已经发布了api来解码。但我想支持所有版本的android。所以任何建议或指导都会很棒。

感谢。

1 个答案:

答案 0 :(得分:3)

你是对的,确实在顶层libstagefright库有一个“流”接口。 也就是说,您可以创建音频或视频源,配置编解码器,然后开始编码或解码过程。

但是,使用OMXCodec接口可以获得对各个帧的访问权限。 不幸的是,我不知道官方OMXCodec文件的任何来源。

唯一的来源 - 这些是Android存储库中代码的示例。

如果您想了解有关如何使用OMXCodec的更多信息,可以查看AwesomePlayer.cpp文件 (http://gitorious.org/rowboat/frameworks-base/blobs/rowboat-ics/media/libstagefright/AwesomePlayer.cpp

可以从StagefrightRecorder.cpp(在同一个存储库中)清楚地使用库libstagefright

有关OMXCodec架构的有用信息也是 here

P.S。请记住,OMXCodec API不稳定,可能因版本而异......