我想解码并在屏幕上显示h264帧。现在我想做的就是使用omx编解码器解码我的帧,因为它在硬件中解码,这有助于实现高分辨率的fps。到目前为止,我只知道有不同的方式来访问硬件解码器。我遇到了一些名字,比如stagefraght、omxcodec、openmax。所有这些都是不同的东西。我想一帧一帧地解码。据我所知,android库只接受媒体的文件路径或url。但这里我的要求不同。我需要逐帧解码。有人能告诉我从哪里开始挖吗?我知道在最新版本的android中,他们已经发布了api来解码。但我想支持所有版本的android。所以任何建议或指导都会很好。
谢谢。
最佳答案
您是对的,实际上在顶级libstagefraght库中有一个“流”接口。
也就是说,创建音频或视频源,配置编解码器,然后开始编码或解码过程。
但是,使用接口omxcodec可以访问各个帧。
不幸的是,我不知道官方omxcodec文档的任何来源。
唯一的来源-这些是android存储库中的代码示例。
如果您想了解更多有关如何使用omxcodec的信息,可以查看awesomeplayer.cpp文件
(http://gitorious.org/rowboat/frameworks-base/blobs/rowboat-ics/media/libstagefright/AwesomePlayer.cpp)
从stageFrightRecorder.cpp(在同一个存储库中)中可以清除libstageFright库的使用
关于omxcodec体系结构的有用信息还有
here
请记住,omxcodec api不稳定,可能因版本而异…