We use among other video inputs/outputs GStreamer to play back video files. Most of the time it works fine and the video plays perfectly along with all the other video inputs/outputs. However at random intervals of time, the system would stop working. The GStreamer video (VideoX) is overlayed (hardware) with a Qt application (FramebufferY). Both are 1280x720. However, just before the system stops working, the Qt application output gets wildly stretched. At this point we start getting the following printouts
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x08800000
imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_10 = 0x00100000
and after a small amount of time the system stops working completely (video) an we get the following
mxc_sdc_fb fb.24: timeout when waiting for flip irq
Interestingly when we start a playback with a new Gstreamer stream(different file) before the system gets to the "flip irq" error, the wild stretch of the Qt application sometimes gets fixed and the the system continues to work without any further errors.
When all stopped working, stopping and starting the involved processes (programs) will get the system to run again.
I have seen threads that state it is a performance issue. In our case it can hardly be the issue, as the CPU is at 40% usage when all the video parts in the system is running (Recording, playback, streaming, overlay, GUIs etc)
After some digging it seems like when calling mxcfb_set_par func() we sometimes get this problem. We could not see any change in the variables settings, and this leads us to conclude that there might be a reantrancy issue where some critical section is not protected as it should.
Can somebody help out to find this issue...? Thanks