在Android上使用OpenMAX(IL?)进行音频/视频解码

时间:2011-08-09 00:04:43

标签: android ffmpeg decoding libavcodec tegra

许多运行Android的新硬件平台,特别是NVIDIA的Tegra 2,支持OpenMAX进行媒体加速。如果没有这种支持,在今天的设备上解码720p视频实际上是不可能的,但Android上支持的解复用器数量相当渺茫。我能找到的唯一公共API是通过Android SDK中的MediaPlayer类。但是,Android源代码树中有多个地方有OpenMAX个相关的花絮。

在我的设备上(三星Galaxy Tab 10.1)我可以通过/ system / lib中的大量OpenMAX库访问硬件解码器,将视频应用程序与这些接口连接起来会很棒。有人能指出我有关实现OpenMAX驱动的解码器的信息吗?我找到了来自Khronos的文档,但没有任何代码示例代码或教程。我已经完成了demuxing甚至软件解码(通过libavcodec / libavformat),我只想把钩子放进去启用硬件编码。我也在这里假设有必要直接链接到设备上可用的设备,这使得它在便携性方面相当黯淡,但它确实有效。

或者,我对任何人都知道有关用于访问Tegra 2设备上可用的视频解码的私有API感兴趣。特别是如果有一个 vdpau 接口,就像NVIDIA为桌面Linux发行版实现的那样,因为有很多可用的 - 但是我找不到表明支持的共享库。

2 个答案:

答案 0 :(得分:4)

https://www.uplinq.com/2011/sites/default/files/images/Snapdragon-Lab-Accessing-Hardware-Accelerated-Video-Codecs-Android-Steve-Lukas.pdf

我找到了使用OpenMAX来访问较新的Qualcomm处理器上的硬件解码器的文档 - 它很麻烦,需要将android源代码树与NDK结合使用,但它是迄今为止最好的,我可以看到

它引用的示例代码可以在他们的开发者网站上找到 - 只需搜索文档的标题即可。

答案 1 :(得分:1)

我不知道与Tegra2相关的文档。

然而,在TI OMAP4等其他处理器上也可能。

OPENMAX正在TI OMAP4处理器中使用(如Archos Gen9和可能的RIM Playbook)。

在Linux和Android上,OPENMAX API用于访问视频加速器和视频接口。这里提供了一些细节: http://omappedia.com/wiki/OpenMAX_Project http://processors.wiki.ti.com/index.php/OpenMax_Development_Guide

如果Archos为Gen 9发布了第8代的Angstroem Linux映像,那么可能还有空间直接在平板电脑上使用它。 有关Archos G9的信息: http://www.archos.com/products/gen9/archos_80g9/specs.html?country=us&lang=en

ANTH。