No webcam in chrome (works in firefox)

Frederic Chardon chardon.frederic at gmail.com
Fri Aug 9 04:26:46 UTC 2019


Le jeu. 8 août 2019 à 20:36, Jan Beich <jbeich at freebsd.org> a écrit :
>
> (redirecting to a better list)
>
> Frederic Chardon <chardon.frederic at gmail.com> writes:
>
> > Hi
> >
> > I can't make chrome to recognize my webcam. webcamd is running, pwcview,
> > firefox or mpv all works
> > Ports are at revision 507476 and base at 350255 (amd64).
> >
> > There is no camera listed in chrome://media-internals and typing
> > "navigator.mediaDevices.getUserMedia({video:true});" in the javascript
> > console throw a NotFoundError.
> >
> > ktrace shows that open() succeed
> >  83513 chrome   CALL  openat(AT_FDCWD,0x81812d101,0<O_RDONLY>)
> >  83513 chrome   NAMI  "/dev/video0"
> >  83513 chrome   RET   openat 159/0x9f
> >  83513 chrome   CALL  ioctl(0x9f,0x40685600,0x7fffde9f2aa8)
>
> 0x40685600 is probably VIDIOC_QUERYCAP, used by Chromium in a number of places.
> https://cs.chromium.org/search/?q=VIDIOC_QUERYCAP
>
> Firefox also uses VIDIOC_QUERYCAP but doesn't seem to check capabilities.
> https://searchfox.org/mozilla-central/search?q=VIDIOC_QUERYCAP
>
> >  83513 chrome   RET   ioctl 0
> >  83513 chrome   CALL  close(0x9f)
> >  83513 chrome   RET   close 0
> >
> > So this is rather not a permission issue (and anyway, the other programs
> > all work)
>
> Can you show output from the following? I don't have a camera, so no
> clue which capabilities Chromium wants.
>
> $ cat a.c
> #include <linux/videodev2.h>
> #include <err.h>
> #include <fcntl.h>
>
> int main(void)
> {
>     int fd;
>     if ((fd = open("/dev/video0", O_RDWR)) == -1)
>         err(1, "failed to open /dev/video0");
>
>     struct v4l2_capability cap = {};
>     if (ioctl(fd, VIDIOC_QUERYCAP, &cap) == -1)
>         err(1, "VIDIOC_QUERYCAP failed");
>
>     warnx("/dev/video0 capabilities: %#x", cap.capabilities);
>     if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE))
>         warnx("V4L2_CAP_VIDEO_CAPTURE is missing");
>     if (cap.capabilities & V4L2_CAP_VIDEO_OUTPUT)
>         warnx("V4L2_CAP_VIDEO_OUTPUT is present, not allowed for delegation");
>     if (!(cap.capabilities & V4L2_CAP_STREAMING))
>         warnx("V4L2_CAP_STREAMING is missing");
>     if (!(cap.capabilities & V4L2_CAP_VIDEO_M2M_MPLANE))
>         warnx("V4L2_CAP_VIDEO_M2M_MPLANE is missing, required for streaming");
>
>     return 0;
> }
>
> $ pkg install v4l_compat
> $ cc a.c -isystem/usr/local/include
> $ ./a.out
>

a.out: /dev/video0 capabilities: 0x84a00001
a.out: V4L2_CAP_VIDEO_M2M_MPLANE is missing, required for streaming

>
> > Is it a known issue? Or am I missing something?
> > Thanks
>
> Did previous www/chromium major versions work fine?

No idea, I only recently (~2 weeks) started needing a webcam.

Thanks!


More information about the freebsd-chromium mailing list