i.MX8MP G2 HEVC slice input timeout instead of BUFFER_EMPTY Hello NXP Support, We are investigating low-latency HEVC decoding on an i.MX8MP EVK. Could you confirm whether the G2 decoder supports incremental input of one picture, where complete slices are submitted before the remaining slices of that picture arrive? We are not requesting partial-picture display. We only want decoding to overlap with reception, and to output the complete picture after all slices have been decoded. 1. Platform - Hardware: i.MX8MP EVK - SoC revision reported by Linux: 1.1 - BSP: Linux 6.12.49, Walnascar - Decoder package: imx-vpu-hantro 1.39.0-ea804d0 - G2 ASIC ID: 0x67323088 - Decoder API: HevcDecDecode() - Device: /dev/mxc_hantro 2. Expected behavior The i.MX8MP Reference Manual, Rev. 3, section 16.2.5.1.8.3, describes supplying another stream buffer when the current buffer is insufficient to finish a picture, with at least one slice/VP provided for HEVC. The SDK also contains DEC_BUF_EMPTY / HEVCDEC_BUFFER_EMPTY handling and a hardware continuation path. Our expected sequence is: - Submit one complete HEVC slice from a multi-slice picture. - Receive DEC_BUF_EMPTY while preserving the current decoding state. - Submit subsequent slices of the same picture. - Receive the correctly decoded complete picture. 3. Actual behavior We reproduced the issue using a small native application calling the decoder SDK directly, without GStreamer, RTSP, camera capture, or display. Test stream: - HEVC Main, 8-bit, 1920x1080 at 60 fps - Initial IDR followed by P pictures - 17 independent CTU-row slices per picture - No B pictures Complete-AU control: All 120 pictures decode correctly. Every visible NV12 frame SHA256 matches an independent software-decoder reference. Partial-picture input: After decoding the initial IDR as a complete AU, submitting only 1, 2, 8, or 16 complete slices of the next P picture fails. DEC_BUF_EMPTY is never returned. A temporary read-only kernel diagnostic captured the actual hardware IRQ status before the ISR cleared it: - Complete picture: 0x00001100 - Incomplete picture: 0x00040100 Thus, the hardware reports timeout bit 18, not buffer-empty bit 14. The public API subsequently returns DEC_PIC_CONSUMED (13), without a decoded P picture. 4. Additional checks - Partial decoding does start: output-buffer comparisons show correct pixels for most of the supplied slice area before failure. - Disabling SAO and deblocking does not fix it. - CTU sizes 64, 32, and 16 do not fix it. - Separately generated, software-validated tile and dependent-slice streams also pass complete-AU decoding but fail partial-picture input. - We also tested the official testbench NextPacket() splitting logic in an isolated harness, with the same failure. - The published IMX8MP_1P33A Rev. 2.1 errata does not appear to describe this specific G2 input-exhaustion behavior. 5. Questions a) Is HEVC partial-picture input with BUFFER_EMPTY continuation supported on this exact G2 ASIC / i.MX8MP configuration? b) If supported, could you provide a minimal working example and the required SDK, driver, and configuration? c) Are there specific requirements for input-buffer alignment, padding, NAL boundaries, ring-buffer mode, prefetch settings, or slice organization? d) Is there a known SDK/driver limitation or silicon restriction that requires supplying a complete HEVC picture? We can provide a small test stream, the native reproducer, pixel-validation results, and IRQ logs upon request. Thank you. i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MP G2 HEVC slice input timeout instead of BUFFER_EMPTY Hello,
Unfortunately, this is not documented at that level, and we need to check with internal team and there are no working example or validated SDK/driver available.
Could you please raise a ticket with your information to start with the scalation?
Best regards. Re: i.MX8MP G2 HEVC slice input timeout instead of BUFFER_EMPTY Hello,
Please check it here:
Support Tickets
Confidential assistance with an NXP support professional.
Submit a ticket
Best regards.
Re: i.MX8MP G2 HEVC slice input timeout instead of BUFFER_EMPTY Hello Jorge, Thank you for checking. We would like to open a technical support ticket for escalation to the internal team. Could you please provide the appropriate ticket submission link and advise which product/category we should select? Please also let us know what information and attachments are required. We can provide the i.MX8MP EVK hardware details, BSP/kernel and decoder library versions, a minimal reproducer, an HEVC sample stream, and logs comparing successful complete-picture input with the hardware timeout observed during incremental slice input. Our requirement is to start decoding complete slices before the remaining slices of the same picture arrive, and output the picture only after decoding is complete. We are not requesting partial-picture display. Please also advise how to link the ticket to this forum discussion and route it to the appropriate internal decoder team. Once submitted, I will share the ticket number here. Best regards.
View full article