I am running the Ubuntu Noble 24.04 XFCE image on a Radxa Zero SBC (first generation device). Trying to play a video with parole (gstreamer video player) produces the error message "GStreamer Backend Error: Could not read from resource. "
Increasing the gstreamer debug level produces the following additional information:
0:00:00.329008719 131342 0xaaab079354e0 WARN GST_ELEMENT_FACTORY gstelementfactory.c:765:gst_element_factory_make_valist: no such element factory "autoimagesink"!
0:00:05.702394971 131342 0xffff7c0013d0 ERROR v4l2bufferpool gstv4l2bufferpool.c:716:gst_v4l2_buffer_pool_streamon:<v4l2h264dec0:pool0:sink> error with STREAMON 22 (Invalid argument)
0:00:05.702572595 131342 0xffff7c0013d0 ERROR v4l2bufferpool gstv4l2bufferpool.c:2233:gst_v4l2_buffer_pool_process:<v4l2h264dec0:pool0:sink> failed to start streaming
0:00:05.703109216 131342 0xffff7c000da0 WARN v4l2 gstv4l2object.c:5887:gst_v4l2_object_poll:<v4l2h264dec0> error: poll error 1: Connection timed out (110)
0:00:05.703217049 131342 0xffff7c0011a0 WARN qtdemux qtdemux.c:7423:gst_qtdemux_loop:<qtdemux0> error: Internal data stream error.
0:00:05.703483881 131342 0xffff7c0011a0 WARN qtdemux qtdemux.c:7423:gst_qtdemux_loop:<qtdemux0> error: streaming stopped, reason error (-5)
Looks like there is an issue with the v4l device provided by the meson_vdec kernel module. Removing the meson_vdec kernel module indeed eliminates problem. Videos are played without error message using software decoding. The frame rate is unfortunately low. Otherwise I would not care about hardware decoding.
Interestingly, the v4l2-compliance command suggests that the v4l device for the VPU is in good shape:
$ v4l2-compliance
v4l2-compliance 1.26.1, 64 bits, 64-bit time_t
Compliance test for meson-vdec device /dev/video0:
Driver Info:
Driver name : meson-vdec
Card type : Amlogic Video Decoder
Bus info : platform:meson-vdec
Driver version : 6.6.31
Capabilities : 0x84204000
Video Memory-to-Memory Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04204000
Video Memory-to-Memory Multiplanar
Streaming
Extended Pix Format
Detected Stateful Decoder
Required ioctls:
test VIDIOC_QUERYCAP: OK
test invalid ioctls: OK
Allow for multiple opens:
test second /dev/video0 open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK
test for unlimited opens: OK
Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls:
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
test VIDIOC_QUERYCTRL: OK
test VIDIOC_G/S_CTRL: OK
test VIDIOC_G/S/TRY_EXT_CTRLS: OK
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 2 Private Controls: 0
Format ioctls:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK (Not Supported)
test Composing: OK (Not Supported)
test Scaling: OK (Not Supported)
Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK
Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test CREATE_BUFS maximum buffers: OK
test VIDIOC_EXPBUF: OK
test Requests: OK (Not Supported)
Total for meson-vdec device /dev/video0: 46, Succeeded: 46, Failed: 0, Warnings: 0
What is the current status of meson VPU support? Is this a known issue? Has anyone ever got video hardware decoding to work with the Radxa Zero SBC?
Thanks for any hint in advance!