I am still trying to get smooth and reliable (FullHD) video playback from i.MX53 using BSP 11.09.01 with the latest patches. One of the problems I am facing is that from time to time, the player tries to play back video much too fast.
This is how the problem seems to start:
IPU Error - IPU_INT_STAT_5 = 0x08000000
After this message, I continuously get the message:
MXCFB_WAIT_FOR_VSYNC: timeout 0
when playing back video. If I play video only, the stream seems to be played back at about 10 times regular speed, showing only some partially decoded frames with much blocking and other artefacts. Playing back video and audio together, audio is played back normally, with the few broken video frames being shown at the beginning of the whole sequence time.
In this state, I see that ipu interrupts are not incremented any more:
10: 661 MXC_TZIC mxc_ipu
11: 1699155 MXC_TZIC mxc_ipu <- this value is stuck now
I can resume correct operation by disabling and re-enabling the console:
root@freescale ~$ echo 1 > /sys/class/graphics/fb0/blank
root@freescale ~$ echo 0 > /sys/class/graphics/fb0/blank
mxc_ipu mxc_ipu: Channel already disabled 9
mxc_ipu mxc_ipu: Channel already uninitialized 9
Sometimes playback also resumes automatically, but this seems to happen only by accident. ;-) The above worked reliably up to now.
In ipu_common.c:ipu_irq_handler(), it looks as if the error interrupt should be disabled in case the overrun condition occurs, but obviously (also) regular IPU interrupts are disabled, and I could not yet figure out, why.
Did anybody else also encounter this problem? I did encounter it at least once with a lower output resolution, but normally I am running the HDMI output at 1080p60 and am playing back 1080p30 video on it. Just as a note, as from the user manual I see that this "new-frame before end-of-frame" error is probable related to IPU data rate.
Any help or hints are appreciated!
Best regards, Wolfgang