Использование OpenMAX (IL?) Для декодирования аудио / видео на Android

Многие новейшие аппаратные платформы под управлением Android, в частности NVIDIA Tegra 2, поддерживают OpenMAX для ускорения мультимедиа. На современных устройствах практически невозможно декодировать видео 720p без этой поддержки, но количество демультиплексоров, поддерживаемых на Android, довольно невелико. Единственный общедоступный API, который мне удалось найти, был через класс MediaPlayer в Android SDK.Однако в дереве исходных текстов Android есть несколько мест, связанных с OpenMAX .

На моем устройстве (Samsung Galaxy Tab 10.1) у меня есть доступ к аппаратным декодерам через множество библиотек OpenMAX в / system / lib, и было бы здорово связать с ними мое видео приложение. Может ли кто-нибудь указать мне на информацию о реализации декодера на базе OpenMAX? Я нашел документацию от Khronos, но ничего, кроме примеров кода или руководств. Я уже позаботился о демультиплексировании и даже программном декодировании (через libavcodec / libavformat), я просто хотел бы добавить хуки, чтобы включить аппаратное кодирование. Я также предполагаю, что здесь будет необходимо напрямую ссылаться на те, которые доступны на устройстве, что делает его довольно тусклым с точки зрения переносимости, но он работает.

В качестве альтернативы меня интересует все, что кто-либо знает о частных API-интерфейсы для доступа к декодированию видео, доступные на устройствах Tegra 2. Особенно, если есть интерфейс vdpau , подобный тому, что NVIDIA реализует для настольных дистрибутивов Linux, поскольку для этого доступно много - но мне не удалось найти разделяемые библиотеки, указывающие на эту поддержку.

9
задан HitOdessit 14 September 2012 в 02:38
поделиться