The returned -3 in field "indexFrameDisplay" means no frame is decoded successfully:
1. No free buffer in VPU to oputput the decoded that
2. the input data is the partial of one compressed video frame
TIP: the vpu unit test DecDemo.exe is a good sample of how to use the API and verify if the bitstream is corrupted
I'm having the same problem for i.MX6 running Linux.
I've checked that the VPU output buffers are free so it must be input data is partial.
Could you please shed some light on how to check bit stream corruption for this platform?
Thanks
Please refer to VPU unit test code.
There are cases they should ignore outinfo (including indexFrameDisplay)
- Incomplete decoding
outinfo.decodingSuccess == 0
- Rollback triggered in rollback mode
outinfo.decodingSuccess == 0x10
There are cases indexFrameDisplay == -3 is expected
- No display output due to display reorder
Normally for first several frames, indexFrameDisplay == -3
- Skipped frame
e.g. You set skip PB mode, and the frame is P frame.
- frame buffer exhausted
confirmed it’s not your case.