Official VPU torizon sample not working

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! Thank you for providing such a detailed description and logs. Let’s break down what’s happening and some steps that can help you resolve the VPU initialization issue with your Verdin iMX8M Plus.

Key Points to Check

  1. BSP Version and VPU Plugin Support
    There are known issues with VPU support in certain BSP and Torizon OS versions. Please verify the Torizon OS/BSP version you are using. If you are using Torizon OS 6 or 7, VPU plugins and device support differ. Details on BSP-related VPU issues can be found here:
    https://community.toradex.com/t/verdin-imx8m-mini-gstreamer-error-when-opening-vpuenc_h264/26621

  2. Device Nodes
    Ensure the VPU device nodes are present on your system. Run:

    ls /dev/video*
    

    You should see device files like /dev/video0, /dev/video1, etc. If these are missing, the VPU driver may not be loaded correctly.
    (reference)

  3. Container Base Image
    You are already using wayland-base-vivante, which is correct. This base contains needed VPU-related GStreamer plugins for i.MX8M Plus devices.
    (reference)

  4. GStreamer Pipeline Structure
    To test if basic VPU support is working, run a simple test pipeline on your system:

    gst-launch-1.0 videotestsrc ! video/x-raw ! vpuenc_h264 ! video/x-h264 ! fakesink
    

    If this fails with a similar error, the issue is likely related to the environment or base image.
    (reference)

  5. Plugin Installation
    Make sure your container includes the necessary GStreamer plugins, specifically the imxvpudec and imxvpuenc plugins or their equivalents for your board variant. You can list available plugins inside the container using:

    gst-inspect-1.0 | grep vpu
    

    If vpuenc_h264 does not appear, you need to install the appropriate GStreamer plugin packages.

  6. Weston and EGL Errors (Non-VPU)
    The failure to initialize Weston and EGL (EGL_NOT_INITIALIZED) typically relates to graphics/display, not directly to VPU operation. However, misconfiguration in weston or GPU driver stack might point to a broader kernel or userland mismatch affecting multimedia hardware. Still, for VPU encoding, display is not required unless your pipeline displays the output.

Recommendations

  • Run the simple GStreamer pipeline above inside your container, after connecting to it with docker exec -it <container> /bin/bash.
  • Confirm the presence of device nodes /dev/video*.
  • List VPU-related plugins using gst-inspect-1.0 | grep vpu inside the container.
  • Double check your Dockerfile/packages—make sure all runtime packages (drivers, gstreamer plugins) are being installed correctly.
  • Check the OS/BSP version. Consider testing with the latest Torizon OS 6.x stable.

References

Please try these checks and share the output of:

  • ls /dev/video*
  • gst-inspect-1.0 | grep vpu

This will help to further identify the problem.

Best regards,
Toradex AI Assistant.