Just getting the iMX53 QSB up and running and trying to run the mxc_vpu_test from the imx-test applications. I’ve used ltib to unpack and build the test apps fine but there’s a problem running this. I put some additional debug statements in to show me what it’s doing (marked as [SRG] below), the rest of the code is unchanged. I’m trying to play the sample MP4 file that comes with the demo. The debug is to show when the application functions and the VPU API functions get called:
root@freescale /tmp$ ./mxc_vpu_test.out -D "-i akiyo.mp4"
[INFO] main.c:390 VPU test program built on Jan 26 2012 09:48:58
[SRG] main.c:398 call to vpu_Init
[SRG] main.c:406 call to vpu_GetVersionInfo
[INFO] Product Info: i.MX53
[INFO] main.c:416 VPU firmware version: 13.4.41
[INFO] main.c:418 VPU library version: 5.3.2
[INFO] utils.c:436 Format: STD_MPEG4
[INFO] utils.c:439 MPEG4 class: MPEG4
[INFO] utils.c:374 Input file "akiyo.mp4" opened.
[SRG] dec.c:1985 enter function decoder_test()
[SRG] dec.c:1905 enter function decoder_open()
[SRG] dec.c:1946 call vpu_DecOpen
[SRG] dec.c:215 enter function dec_fill_bsbuffer()
[SRG] dec.c:217 call to vpu_DecGetBitstreamBuffer
[SRG] dec.c:310 call to vpu_DecUpdateBitstreamBuffer
[SRG] dec.c:1597 enter function decoder_parse()
[SRG] dec.c:1621 call to vpu_DecSetEscSeqInit 1
[SRG] dec.c:1623 call to vpu_DecGetInitialInfo
[SRG] dec.c:1625 call to vpu_DecSetEscSeqInit 0
[ERR] dec.c:1629 vpu_DecGetInitialInfo failed, ret:-10, errorcode:0
[ERR] dec.c:2059 decoder parse failed
[SRG] dec.c:1963 enter function decoder_Close()
[SRG] dec.c:1964 call vpu_DecClose
[SRG] dec.c:1278 enter function decoder_free_framebuffer()
[SRG] main.c:490 call to vpu_UnInit
According to the decoder info in document “i.MX5x_Linux_VPU_API.pdf”, this says return code ‘-10’ means “wrong call sequence”, so calls to the VPU seem to be done out of order. The document says the error could be caused when “the application might call this function before successfully putting the bitstream into the buffer data by calling vpu_DecUpdateBitstreamBuffer().”. Though the order above looks correct to that document. Any ideas for why this might be? Many thanks.
Sorry I do not have the pmic tests in my build. I remember some time back when we originally tried building all the tests that some of them failed to build. We removed these from the build if we didn't need them, and fixed the ones that we did need.
Update - got it working but don’t know which change actually made the difference as I made all the changes at the same time:
1) using a new clean 4GB SD card
2) an ltib distclean and full rebuild
3) changed the loaded packages in ltib so it does not load matchbox at startup. Some of the test utils don’t seem to mind matchbox being loaded and just overwrite the screen contents, maybe the vpu test doesn’t like it. Though perhaps the error message would likely have been something like ‘can’t open’, rather than ‘bad sequence’.