9

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

在我的设备(Samsung Galaxy Tab 10.1)上,我可以通过 /system/lib 中的大量 OpenMAX 库访问硬件解码器,将我的视频应用程序与这些库连接会很棒。谁能告诉我有关实现由 OpenMAX 提供支持的解码器的信息?我从 Khronos 找到了文档,但没有任何示例代码或教程。我已经完成了解复用甚至软件解码(通过 libavcodec/libavformat),我只想放入钩子以启用硬件编码。我在这里还假设有必要直接链接到设备上可用的链接,这使得它在便携性方面相当乏味,但它确实有效。

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

4

2 回答 2

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 结合使用,但它是迄今为止我能看到的最好的。

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

于 2011-08-10T02:37:00.333 回答
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

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

安特。

于 2011-09-15T12:14:48.043 回答