许多运行 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接口,因为有很多可用的 - 但我无法找到表明支持的共享库。