On Thu, Jun 25, 2020 at 11:21:51PM +0100, Laurence Tratt wrote:

> It seems this is because the Logitech C920 has been revised (mine has the
> USB ID 046d:0892) and no longer supports a separate H264 mode.

This turns out to be a total red herring -- modern FFmpeg deals with the
MJPEG fine and you *can* get it to work for pointlessly small resolutions on
OpenBSD. Using this command:

  ffplay -f v4l2 -input_format mjpeg -video_size 160x90 -i /dev/video0

one can quickly map which resolutions work and which don't. There is some
variation from reboot to reboot, but the approximate summary for MJPEG
resolutions is roughly as follows:

  160x90       Works
  160x120      Works
  176x144      Works
  320x180      Mostly works
  320x240      Sometimes works
  352x288      Sometimes works
  432x240      Breaks up
  640x360      Breaks up
  640x480      Breaks up
  800x448      Breaks up
  800x600      Breaks up
  864x480      Breaks up
  960x720      Breaks up
  1024x576     Breaks up
  1280x720     Breaks up
  1600x896     Breaks up
  1920x1080    Breaks up

I can only guess as to why this might be: perhaps OpenBSD's USB stack isn't
able to transfer data from the USB device? Or maybe there's a problem in
uvideo.c (but I've spent several hours fiddling with it and comparing it to
the Linux UVC support: I couldn't find anything obvious)? Or ...?

I'm now stuck. If anyone has suggestions, I'm all ears! At a basic level, it
would be interesting simply to know if anyone else uses MJPEG mode on a
webcam and whether they've experienced video break-up too.


Laurie

Reply via email to