VIDIOC_QUERYCAP on v4l subdevice - v4l-subdev*

Nicolas Dufresne nicolas at ndufresne.ca
Tue Nov 1 15:32:01 UTC 2022


Hi,

Le mardi 01 novembre 2022 à 15:02 +0100, Claus Stovgaard via gstreamer-devel a
écrit :
> Hi folks.
> 
> I have also posted on the linux-media mailing list.
> 
> https://lore.kernel.org/linux-media/93834b3d7d4abfabdc7285af0c5e57d015c97107.camel@gmail.com/
> 
> In short, I am working on a system based around the Intel Apollo Lake
> with an IPU4. The system is having a configuration with a number of
> subdevices. Going from v4l-subdev0 to v4-subdev10.
> 
> Running gst-device-monitor-1.0 results in a number of errors like.
> 
> GStreamer-CRITICAL **: 13:27:36.763:
> gst_element_message_full_with_details: assertion 'GST_IS_ELEMENT
> (element)' failed        


Thanks for reporting, would you mind filling an issue instead ?

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/new

> 
> The reason is because a VIDIOC_QUERYCAP on the subdevice fails.
> 
> Looking at the documentation
> 
> https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/vidioc-querycap.html
> 
> it states that "All V4L2 devices support the VIDIOC_QUERYCAP ioctl"
> 
> On the other hand VIDIOC_QUERYCAP is not part of the subset mentioned
> in documentation for V4L2 sub-device.

In theory, GStreamer was only supposed to loos at v4l2 device nodes, but I think
everything got made identical, and there is little way to know other then trying
it out. V4L2 media controller devices are largely incompatible with V4L2 devices
in general and should not work at all. Best is to improve GStreamer so that it
can fail cleanly, or even detect that earlier and skip.

To use IPU with GStreamer, you must use libcamera. The libcamera gstreamer
provider will mask the v4l2 one, as it meant to completely replace it even for
legacy devices.

> 
> https://www.kernel.org/doc/html/latest/driver-api/media/v4l2-subdev.html
> 
> So is I correct that gstreamer has a bug in gst-device-monitor-1.0, and
> it should not try to use the VIDIOC_QUERYCAP ioctl for a sub-device?
> 
> It could be that gstreamer should just skip the sub-device.
> 
> Notice - gstreamer is 1.20.1 from yocto kirkstone.
> 
> Regards
> Claus
> 



More information about the gstreamer-devel mailing list