I'm working to decode our samples, 4 x 720 25p H.264 ts (I-frame only,raw H.264 Annex-B byte-stream, like the "vpuenc code=6" produced), I first try the Gstreamer to drive VPU.
But I meet 2 problems when the 2nd to be played:
a. "Physical memory allocation error!"
This seems to be solved through we set "frame-plus=1" from the thread [ Memory Reserved on i.MX6 for VPU ]
but decoding fail is remained by the following 'b'.
b. "[WARN] ....VPU lock timeout" and a exception causes from gstreamer
Because the multi-streams decoding is OK when we change to use other 720 samples(H.264/MP4 720 30p x 3), we guess the error may be related to the GPO size of 1 in our TS, we try to prove our guess, and it seems to be proved:
to produce a H.264 stream by VPU as sample of GOP=15 :
gst-launch videotestsrc ! "video/x-raw-yuv,width=1280,height=720,framerate=25/1" ! vpuenc code=6 gopsize=15 ! filesink....
the 2nd decoding of the sample is OK:
gst-launch filesrc.... ! typefind ! vpudec ! fakesink sync=1.
as to another sample encoded in GOP=1,
gst-launch videotestsrc ! "video/x-raw-yuv,width=1280,height=720,framerate=25/1" ! vpuenc code=6 gopsize=1 ! filesink....
the 2nd decoding is fail, the error is the same as one from decoding our target sample.
I only try the SOLO now, but all S/DL/Q are on my hand, we'll get good news if trying the higher-end one? (so far as we know, the S/DL/D/Q's VPU have the same skill, the only difference is DL/D/Q could decode dual 1080 30p in dual screens because of bandwidth of DDR3 64bits)
If the foregoing is solved to be able to decode 4 x 720 25p in background, the performance needs to be considered? (though the VPU skill of multi-streams listed in Freescale slice is 3 x 720 30p, we think it's OK to decode the 4th one according to calculating(1280x720x25x4=92M pixels) refers to the thread [ Memory Reserved on i.MX6 for VPU ]