Viele der neueren Hardware-Plattformen mit Android, insbesondere Tegra 2 von NVIDIA, unterstützen OpenMAX zur Medienbeschleunigung. Auf den heutigen Geräten ist es praktisch unmöglich, 720p-Video ohne diese Unterstützung zu dekodieren, aber die Anzahl der auf Android unterstützten Demuxer ist ziemlich gering. Die einzige öffentliche API, die ich finden konnte, war über die Klasse MediaPlayer im Android SDK. Es gibt jedoch mehrere Orte im Android-Quellenbaum mit OpenMAX verwandten Leckerbissen.
Auf meinem Gerät (Samsung Galaxy Tab 10.1) habe ich Zugriff auf Hardware-Decoder über eine Vielzahl von OpenMAX-Bibliotheken in / system / lib, und es wäre toll, meine Videoanwendung mit diesen zu verbinden. Kann mir jemand Hinweise geben, wie man einen mit OpenMAX betriebenen Decoder implementiert? Ich habe die Dokumentation von Khronos gefunden, aber nichts in der Art von Beispielcode oder Tutorials. Ich habe bereits das Demuxing und sogar die Software-Dekodierung erledigt (via libavcodec / libavformat), ich möchte nur Haken setzen, um die Hardware-Kodierung zu ermöglichen. Ich gehe hier auch davon aus, dass es notwendig wäre, direkt mit den auf dem Gerät verfügbaren Links zu verlinken, was es in Bezug auf Portabilität ziemlich glanzlos macht, aber es funktioniert.
Alternativ bin ich an allem interessiert, das irgendjemand über private APIs für den Zugriff auf die Videodekodierung auf Tegra 2-Geräten weiß. Vor allem, wenn es ein vdpau Interface gibt, wie es NVIDIA für Desktop-Linux-Distributionen implementiert, da dafür reichlich vorhanden ist - aber ich konnte keine shared libraries finden, die diese Unterstützung anzeigen.
Ich habe eine Dokumentation über die Verwendung von OpenMAX gefunden, um Zugang zu den Hardware-Decodern der neueren Qualcomm-Prozessoren zu bekommen - es ist unordentlich, erfordert die Verwendung des Android-Quellbaums in Verbindung mit dem NDK, aber es ist das Beste, was ich bisher gesehen habe .
Der Beispielcode, auf den er verweist, wurde auf seiner Entwicklerwebsite gefunden. Suchen Sie einfach den Titel des Dokuments, und es wird angezeigt.
Ich kenne keine Dokumente, die sich auf Tegra2 beziehen.
Allerdings könnte es auf einigen anderen Prozessoren wie TI OMAP4 möglich sein.
OPENMAX wird in TI OMAP4-Prozessoren (wie Archos Gen9 und wahrscheinlich RIM Playbook) verwendet.
Sowohl unter Linux als auch unter Android wird die OPENMAX-API für den Zugriff auf den Videobeschleuniger und die Videoschnittstellen verwendet. Einige Details finden Sie hier: Ссылка http://processors.wiki.ti.com/index.php/OpenMax_Development_Guide
Wenn Archos ein Angstroem-Linux-Image für Gen 9 veröffentlicht, wie es für Gen 8 der Fall war, dann könnte es auf dem Tablet Platz zum Spielen geben. Infos über Archos G9: Ссылка
Anth.
Tags und Links android ffmpeg decoding libavcodec tegra