Wolfgang Wegner

BSP 11.09: video decoding issues

Discussion created by Wolfgang Wegner on Oct 21, 2011
Latest reply on Oct 28, 2011 by Wolfgang Wegner


after having sorted out some of my own problems I am still having various issues with video decoding using the MX53QSB. I am using the basic ext2 rootfs and playing video using gst-launch playbin2 from the command line.


1) With some [1080p] videos, playing them immediately after boot crashes the video decoder hard (kernel oops with NULL pointer dereference), only chance for recovery is board reboot. However, playing another [720p] video before "fixes" this, so I can also play these problematic videos without a crash after having first played any of these [720p] movies.

On of these candidates is hd_other_samsung_led_motion.m2ts from demo world. Can anybody else reproduce this and/or comment on this?


2) Video is always a bit jerky - sometimes more, sometimes less. This is especially influenced by audio, as I saw with the original hd_other_samsung_led_motion.m2ts audio can not be decoded and is discarded, playback is almost good. Recoded with AAC audio (thus audio is played back, too), the video is always very jerky. However, even the "good" clips (without audio or those [720p] clips that work good with audio) are jerky on some playbacks while playing really smooth on another occasion.

So both things seem to point to some synchronisation problems?

Unfortunately, I was not able to disable overlay and use synchronous decode/output mode, which should be available, too, if I understand correctly?


3) With some recoded videos, decoding is not possible at all due to dma buffer allocation failure. I get messages like these:

allocated software buffer
>>V4L_SINK: Actually buffer status:
hardware buffer : 11
software buffer : 3
[ERR] mem allocation failed!
ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/MfwGstVPU_Dec:mfwgstvpu_dec0: fatal error
Additional debug info:
Allocation of the Frame Buffers Failed

(leaving out kernel messages here, which basically tell me dma_alloc_coherent with order 10 failed)

This will likely be an encoding error [although these videos still play on other decoders...], but it would be interesting to get more information which buffer is too large here. Or is there any chance to reserve more memory for this purpose via kernel command line?


Does anybody have experience what could be done to avoid these problems?


Thank you for reading,