On Sat, 14 Dec 2024 16:47:12 +0100,
Stefan Hagen <sh+openbsd-m...@codevoid.de> wrote:
>
> Kirill A. Korinsky wrote (2024-12-14 12:39 CET):
> > Here a blind shot. Future debug requires uvideo_debug = 2 which very noise.
>
> Cool, thank you! Unfortunately it doesn't change much.
>
> Below is a dmesg with uvideo_debug = 2 while I was running:
>
> Once:
> $ video -f /dev/video0
>
> And then twice:
> $ ffplay -f v4l2 -input_format mjpeg -i /dev/video0
>
> The first time it showed a window with was mostly grey, with some light
> green resemblance of the actual image.
>
> The second time, it only showed grey.
>
> No change in error messages.
>
> dmesg (12MB): https://ptrace.org/dmesg_uvideo_debug2.txt
>

Thanks for dmesg with detailed output. I see a lot of empty frames from the
camera, and that it may produce some of them after EOF.

I had notices that we have a bit larger limit of packets 40 instead of 32 in
Linux. [1] Here I wonder can it overload the cam?

Anyway, here a trivial diff which synchronizes it with Linux.

Index: sys/dev/usb/uvideo.h
===================================================================
RCS file: /home/cvs/src/sys/dev/usb/uvideo.h,v
diff -u -p -r1.60 uvideo.h
--- sys/dev/usb/uvideo.h        8 Dec 2019 13:21:21 -0000       1.60
+++ sys/dev/usb/uvideo.h        15 Dec 2024 01:11:38 -0000
@@ -416,7 +416,7 @@ struct uvideo_format_desc {
        } u;
 } __packed;
 
-#define UVIDEO_NFRAMES_MAX     40
+#define UVIDEO_NFRAMES_MAX     32
 struct uvideo_isoc_xfer {
        struct uvideo_softc     *sc;
        struct usbd_xfer        *xfer;



Footnotes:
[1]  
https://github.com/torvalds/linux/blob/v6.12/drivers/media/usb/uvc/uvcvideo.h#L50-L53b

--
wbr, Kirill

Reply via email to