On Wed, Sep 07, 2022 at 04:02:50PM +0200, Michael Grzeschik wrote: > This series improves the uvc video gadget by parsing the configfs > entries. With the configfs data, the driver now is able to negotiate the > format with the usb host in the kernel and also exports the supported > frames/formats/intervals via the v4l2 VIDIOC interface. > > The uvc userspace stack is also under development. One example is an generic > v4l2uvcsink gstreamer elemnt, which is currently under discussion. [1] > > [1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1304 > > With the libusbgx library [1] used by the gadget-tool [2] it is now also > possible to fully describe the configfs layout of the uvc gadget with scheme > files. > > [2] https://github.com/linux-usb-gadgets/libusbgx/pull/61/commits/53231c76f9d512f59fdc23b65cd5c46b7fb09eb4 > > [3] https://github.com/linux-usb-gadgets/gt/tree/master/examples/systemd > > The bigger picture of these patches is to provide a more versatile interface to > the uvc gadget. The goal is to simply start a uvc-gadget with the following > commands: > > $ gt load uvc.scheme > $ gst-launch v4l2src ! v4l2uvcsink > > -- > > v1: https://lore.kernel.org/linux-usb/20210530222239.8793-1-m.grzeschik@xxxxxxxxxxxxxx/ > v2: https://lore.kernel.org/linux-usb/20211117004432.3763306-1-m.grzeschik@xxxxxxxxxxxxxx/ > v3: https://lore.kernel.org/linux-usb/20211117122435.2409362-1-m.grzeschik@xxxxxxxxxxxxxx/ > v4: https://lore.kernel.org/linux-usb/20211205225803.268492-1-m.grzeschik@xxxxxxxxxxxxxx/ > v5: https://lore.kernel.org/linux-usb/20211209084322.2662616-1-m.grzeschik@xxxxxxxxxxxxxx/ > v6: https://lore.kernel.org/linux-usb/20220105115527.3592860-1-m.grzeschik@xxxxxxxxxxxxxx/ > v7: https://lore.kernel.org/linux-usb/20220608105748.139922-1-m.grzeschik@xxxxxxxxxxxxxx/ Please say what changed somewhere :( Anyway, this patch series does not even build properly: drivers/usb/gadget/function/uvc_v4l2.c: In function ‘uvc_v4l2_get_format’: drivers/usb/gadget/function/uvc_v4l2.c:258:42: error: ‘struct uvc_video’ has no member named ‘bpp’ 258 | fmt->fmt.pix.bytesperline = video->bpp * video->width / 8; | ^~ drivers/usb/gadget/function/uvc_v4l2.c:258:55: error: ‘struct uvc_video’ has no member named ‘width’ 258 | fmt->fmt.pix.bytesperline = video->bpp * video->width / 8; | ^~ drivers/usb/gadget/function/uvc_v4l2.c:259:39: error: ‘struct uvc_video’ has no member named ‘imagesize’ 259 | fmt->fmt.pix.sizeimage = video->imagesize; | ^~ drivers/usb/gadget/function/uvc_v4l2.c: In function ‘uvc_v4l2_try_format’: drivers/usb/gadget/function/uvc_v4l2.c:316:37: error: ‘bpl’ undeclared (first use in this function) 316 | fmt->fmt.pix.bytesperline = bpl; | ^~~ drivers/usb/gadget/function/uvc_v4l2.c:316:37: note: each undeclared identifier is reported only once for each function it appears in drivers/usb/gadget/function/uvc_v4l2.c:317:34: error: ‘imagesize’ undeclared (first use in this function); did you mean ‘page_size’? 317 | fmt->fmt.pix.sizeimage = imagesize; | ^~~~~~~~~ | page_size What did you test this with? thanks, greg k-h