Hi all,
I have a question about i.MX6SDL VPU API.
When using i.MX6SDL vpudec for L3.0.35_4.1.0, the following errors were output.
ERROR vpudec vpudec.c:1498:gst_vpudec_chain: Func VPU_DecDecodeBuf failed!! with ret 7
WARN vpudec vpudec.c:1409:gst_vpudec_process_error:<vpudec0> error: unknown error detect
I guess the downside log is caused by the upper side log, isn't it?
Then, could you let me know the factor to output the upper error?
Best Regards,
Satoshi Shimoda
Hello Satoshi San,
The VPU_DecDecodeBuf() call internally picks an available framebuffer, and at the same time, the bufferpool release() function
might be returning a framebuffer to the list of available ones. So the error you are having it is cause you do not have enough frame buffer to run.
So you command should be video-sink="queue max-size-buffers=1 max-size-bytes=0 max-size-time=0 ! mfw_v4lsink"
Currently, the minimum number of free output framebuffers is 6, meaning that the num_available_framebuffers
counter must always be at least at that value. Combined with the maximum number of frames h.264 could require
with frame reordering (which is 17 frames), this means that up to 23 frames will have to be allocated with the
physical memory allocators. For 1080p videos, this means (23*1920*1088*12/8 / 1048576) byte ~ 69 MB.
(1088, because the VPU needs width and height values to be aligned to 16-pixel boundaries, and 12/8, because
12 bit is the bit depth for the I420 format, 12/8 is the number of bytes per pixel. While the decoder can also
output I42B and Y444 for motion JPEG, it won't use that many frames then, so 12 bit is still a good pick.)
Adding the typical sizes of extra decoding buffers requested by the VPU, this sums up to 72 MB.
Therefore, it is recommended to make sure at least 72 MB RAM are available for a decoder instance. If multiple
streams need to be decoded at the same time, each one must have up to 72 MB available. This ensures the
decoder instance(s) can handle any kind of input stream. (In special cases the RAM usage might be
substantially less of course.)
Have a great day,
Jaime
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Jamesbon,
is VPU error just a warning message that does NOT causes crash? Can I ignore it?
If I understand, in case of "VPU_DecDecodeBuf failed", some video frame is skipped and not painted on screen, isn't it?
Thank you again for your help