Si, el programa echa mano de Openmax, pero la documentación que hay al respecto es muy confusa. Lo único que encontré es el libro "Raspberry Pi GPU Audio Video Programming", que no me aclara mucho porque prácticamente es una colección de fuentes.
La idea original, era editar el programa en C++ de ejemplo, que reproduce un video, para meter una función que lee constantemente varios expansores de puertos MCP23s17, y en función del estado de varias matrices de señales, lanzar videos distintos.
Si un video está en ejecución, y se detecta una señal para lanzar otro video, hay que parar ese, y lanzar el nuevo. El problema es que para hacer eso, tocando el fuente del reproductor, hay que hacerlo dentro del bucle que alimenta constantemente la GPU con datos del video a reproducir. Eso lo conseguí, pero siempre hay que dejar que el video se reproduzca al menos un par de segundos o la GPU se queda colgada.
Al ver todo esto de lanzar un programa externo al principal y poder cancelarlo, me parece mejor idea. Por ahora no tengo necesidad de interactuar con el video, este solo se reproduce o se cancela cuando se tenga que lanzar uno nuevo.
Por ahora prefiero dejar el programa reproductor original sin tocar, y simplemente llamarlo desde un programa principal mío, para cancelarlo con pkill y lanzar uno nuevo cuando sea necesario reproducir otro video.
Si que estuve mirando algo para mezclar texto con ese vídeo en tiempo de ejecución, es lo único que me interesaría para interactuar con el vídeo en curso. Las pruebas que hice funcionaron bastante bien con varios efectos de texto sobre el vídeo, pero es todo muy complejo y la documentación que hay se hace pesada de manejar.
También me gustaría reproducir uno o varios videos simultaneamente en ventanas, ahora sale a pantalla completa. Algo se cuenta en el libro al respecto, aún lo tengo que probar.
La posibilidad de lanzar el reproductor una sola vez desde un programa principal mío, e interactuar con este por medio de algún sistema de comunicación, todo esto de las "pipes", también se ve interesante. En el ejemplo que he puesto antes creando una especie de cola FIFO, creo que lo hacen así.
