2011-08-09 5 views
9

Muchas de las plataformas de hardware más nuevas con Android, en particular Tegra 2 de NVIDIA, admiten OpenMAX para la aceleración de medios. Es efectivamente imposible en los dispositivos de hoy en día decodificar videos de 720p sin este soporte, pero la cantidad de demultiplexores compatibles con Android es bastante pequeña. La única API pública que he podido encontrar ha sido a través de la clase MediaPlayer en el SDK de Android. Sin embargo, hay varios lugares en el árbol fuente de Android con OpenMAX tidbits relacionados.Uso de OpenMAX (IL?) Para decodificación de audio/video en Android

En mi dispositivo (Samsung Galaxy Tab 10.1) tengo acceso a decodificadores de hardware a través de una gran cantidad de libs de OpenMAX en/system/lib, y sería genial interactuar con mi aplicación de video con estos. ¿Alguien puede indicarme información sobre la implementación de un decodificador con tecnología OpenMAX? Encontré la documentación de Khronos, pero nada de código de ejemplo o tutoriales. Ya tengo demuxing e incluso la descodificación de software cuidada (a través de libavcodec/libavformat), me gustaría poner ganchos para habilitar la codificación de hardware. También supongo que aquí sería necesario enlazar directamente con los disponibles en el dispositivo, lo que lo hace bastante deslucido en términos de portabilidad, pero funciona.

Como alternativa, me interesa cualquier cosa que alguien sepa sobre las API privadas para acceder a la decodificación de video disponible en los dispositivos Tegra 2. Especialmente si hay una interfaz vdpau, como lo que NVIDIA implementa para las distribuciones de escritorio de Linux, ya que hay muchas disponibles para eso, pero no pude encontrar bibliotecas compartidas que indiquen esa compatibilidad.

Respuesta

4

https://www.uplinq.com/2011/sites/default/files/images/Snapdragon-Lab-Accessing-Hardware-Accelerated-Video-Codecs-Android-Steve-Lukas.pdf

He encontrado documentación sobre usando OpenMAX para obtener acceso a los descodificadores de hardware de los procesadores Qualcomm nuevas - es complicado, requiere el uso de la estructura de directorios androide junto con el NDK, pero es lo mejor que hay ahí fuera tan lejos que puedo ver.

El código de muestra al que hace referencia se encontró en su sitio web de desarrollador: simplemente busque el título del documento y aparece.

+5

Enlace muerto, movido a https://www.uplinq.com/2011/sites/default/files/images/Snapdragon-Lab-Accessing-Hardware-Accelerated-Video-Codecs-Android-Steve-Lukas.pdf – Pedro

+0

No se puede encontrar "el código de muestra". Cualquier enlace? El sitio web QuIC no tiene función de búsqueda. –

1

No conozco los documentos para esto relacionados con Tegra2.

Sin embargo, podría ser posible en algunos otros procesadores como TI OMAP4.

OPENMAX está siendo utilizado en procesadores TI OMAP4 (como Archos Gen9 y probablemente RIM Playbook).

Tanto en Linux como en Android, la API de OPENMAX se utiliza para acceder al acelerador de video y las interfaces de video. Se proporcionan algunos detalles aquí: http://omappedia.com/wiki/OpenMAX_Project http://processors.wiki.ti.com/index.php/OpenMax_Development_Guide

Si Archos lanza una imagen angstroem Linux para Gen 9 como lo hicieron para Gen 8 es posible que haya espacio para jugar con esto en la tableta directamente. Información sobre Archos G9: http://www.archos.com/products/gen9/archos_80g9/specs.html?country=us&lang=en

Ant.