Hi.
Some time ago I started to develop a product, which plays videos triggered by signals generated by an arcade machine.
At first I tried to do the development with QT Creator, but I had many problems and I stopped using it. Then I tried the examples that Raspberry brings in their libraries, specifically with Hello_video.
The problem I had with the Hello_video is that I need to be able to immediately stop a video playing, to play another one. I modified the source, in the player loop, but it only works fine, if you let it play a minimum of time of the video (I remember that at least 2 seconds), otherwise the GPU is locked and you have to restart the program.
Right now the idea is not to modify the Hello_video, keep it as it is and launch it from another program, passing it as a parameter the video to play, before I thought to use the KILL Linux command to end any program Hello_video that is still playing. I still have to test it to see if this system works well.
The omxplayer program does not work for me because it responds very slowly to playing a video, I need it to be instantaneous.
Right now I have my main program in a loop that reads the external signals of a machine, using port expanders mcp23s17 by SPI. When the appropriate signals are given, which can be configured by the user, a video is launched by calling the hello_video program, passing as a parameter the file to be played.
I also read the book "Raspberry Pi GPU Audio Video Programming 2017", to directly program the GPU, but it is quite complex, and to play a video we end up using the hello_video, which comes to contain what is exposed in the book.
Summarizing:
Do you know any other system to launch the reproduction of a video, at full screen, from your own application in a Raspebery Pi ?. It has to be instantaneous and cancelable immediately if you need to play another video.
Best Regards