Многие новейшие аппаратные платформы под управлением Android, в частности NVIDIA Tegra 2, поддерживают OpenMAX для ускорения мультимедиа.На сегодняшних устройствах практически невозможно декодировать видео 720p без этой поддержки, но количество демультиплексоров, поддерживаемых на Android, довольно мало.Единственный общедоступный API, который мне удалось найти, был через класс MediaPlayer в Android SDK.Однако в дереве исходных текстов Android есть несколько мест с OpenMAX связанными с этим лакомыми кусочками.
На моем устройстве (Samsung Galaxy Tab 10.1) я получил доступ к аппаратным декодерам через множество OpenMAXlibs в / system / lib, и было бы здорово связать мое видео приложение с ними.Может кто-нибудь указать мне информацию о реализации декодера на основе OpenMAX?Я нашел документацию от Khronos, но ничего, кроме примеров кода или учебных пособий.Я уже позаботился о демультиплексировании и даже программном декодировании (через libavcodec / libavformat), я просто хотел бы добавить хуки для аппаратного кодирования.Я также предполагаю, что здесь было бы необходимо напрямую связать с доступными на устройстве, что делает его довольно тусклым с точки зрения мобильности, но это работает.
В качестве альтернативы, я могу заинтересовать кого угоднознает о частных API для доступа к декодированию видео, доступному на устройствах Tegra 2.Особенно, если есть интерфейс vdpau , подобный тому, который NVIDIA реализует для настольных дистрибутивов Linux, поскольку для этого есть много возможностей, но я не смог найти разделяемые библиотеки, которые указывают на такую поддержку.