Cómo crear un plugin stagefright

Tengo una tarea que implica la integración de un decodificador de vídeo en Stagefright (Android marco multimedia). Busqué y encontré lo siguiente acerca de crear un nuevo complemento para Stagefright :

Para agregar soporte para un nuevo formato, debe:

  • Desarrolle una nueva clase de Extractor, si el contenedor no está soportado todavía.

  • Desarrolle una nueva clase Decoder, que implemente la interfaz que necesita el núcleo de StageFright para leer los datos.

  • Asociar el tipo mime de los archivos para leer a su nuevo decodificador en el archivo OMXCodec.cpp , en la matriz kDecoderInfo .

  static const CodecInfo kDecoderInfo[] = { {MEDIA_MIMETYPE_AUDIO_AAC, "OMX.TI.AAC.decode"}, {MEDIA_MIMETYPE_AUDIO_AAC, "AACDecoder"}, }; 

Los datos anteriores son todo lo que podría encontrar en la red. Ahora tengo una aplicación sencilla que tomará un archivo como entrada y lo mostrará en la pantalla usando la API nativa de android. ¿Puede alguien por favor decirme cómo proceder más. Y de dónde hacen todos estos OMXCodec.cpp y otros entran en la imagen y qué directorio de mi proyecto debe tenerlos adentro. Proporcione por favor soluciones con respecto a la misma. Gracias por adelantado.

One Solution collect form web for “Cómo crear un plugin stagefright”

De su pregunta, parece que está buscando una recomendación específica para Ice-Cream Sandwich o versiones anteriores de Android. Lo primero que debe tener claro es la versión del androide es decir, Ice-Cream Sandwich o antes o JellyBean y después. La integración de los códecs es diferente en las diferentes versiones de Android.

Ya he comentado en su otra pregunta que es específico para JellyBean y más tarde (Referencia: Android: Cómo integrar un decodificador al marco multimedia )

Si desea integrar su códec en Ice-Cream Sandwich o antes, los pasos ya están disponibles en su pregunta. Además de añadir el decodificador a la lista kDecoderInfo , es posible que desee configurar ciertas peculiaridades como se muestra aquí .

Para la pregunta sobre OMXCodec.cpp , puede encontrar este archivo en frameworks/base/media/libstagefright/ en caso de Ice-Cream Sandwich y frameworks/av/media/libstagefright/ en caso de JellyBean .

Si ha seguido todos los pasos para integrar el decodificador de vídeo en el marco Stagefright , entonces la prueba más fácil sería realizar lo siguiente:

  1. Copiar un archivo multimedia en una tarjeta SD

  2. En OMXCodec.cpp , habilite los registros quitando el comentario en esta sentencia //#define LOG_NDEBUG 0 y ejecuta un mm en el directorio. Copie la libstagefright.so reconstruida en /system/lib en su dispositivo.

  3. Habilitar logcat y comenzar a capturar registros.

  4. Ir a galería, seleccione su archivo y permitir que el reproductor estándar reproduzca su archivo.

  5. Compruebe su archivo de registro si el jugador ha seleccionado su componente OMX buscando el nombre de su componente. Si se encuentra, su integración de codec en Stagefright es exitosa. De lo contrario, tendrá que depurar y averiguar cuál es el problema.

Posdata:

  1. Según sus consultas, supongo que no está familiarizado con las fuentes de Android. Consulte el sitio de androidxref para familiarizarse con las distribuciones de AOSP .

  2. A menos que esté planeando soportar un nuevo formato de archivo multimedia, no necesitará soportar la clase Extractor . MediaExtractor abstrae un analizador de formato de archivo y ayuda a des-multiplexar las diferentes pistas en un archivo multimedia.

Espero que con esta información, usted debe ser capaz de obtener su códec integrado y funcional en Android.

  • Arquitectura de Stagefright
  • ¿Cómo usar la decodificación acelerada por hardware en Android?
  • Integración personalizada de Codecs Wrapper en Android
  • Android: incluye funciones nativas de StageFright en mi propio proyecto
  • Compatibilidad con FFmpeg para descodificación de hardware libstagefright
  • FFMpeg Android Stagefright SIGSEGV error (decodificación h264)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.