Re: USB camera on ARM64 RPi3

[email protected] (Michael van Elst)
Newsgroups gmane.os.netbsd.ports.arm
Organization Serpens User Group
Message-ID <[email protected]>
[email protected] (Joel) writes:

>Hello -- I have an RPi3 running GENERIC Aarch64 NetBSD 10-RELEASE. It 
>has generally been good. Recently I'm trying to get an OpenCV 4.x build 
>to work. With some minimal cmake file changes, I've had success on a 
>RockPro64 and Pinebook Pro -- same Rockchip SoC. Motivation is that 
>current pkgsrc OpenCV 3.x doesn't work (ARM64 nor AMD64) with USB 
>cameras (separate thread on that, related to buffer reallocation to 
>change resolution). Okay, plot is set.


For me OpenCV (opencv-3.4.20nb6) itself already fails with:

******************************************************************
* FATAL ERROR:                                                   *
* This OpenCV build doesn't support current CPU/HW configuration *
*                                                                *
* Use OPENCV_DUMP_CONFIG=1 environment variable for details      *
******************************************************************

Required baseline features:
    ID=100 (NEON) - NOT AVAILABLE
    ID=  9 (FP16) - NOT AVAILABLE

But I can use a USB camera with ffmpeg6. E.g.:

ffplay6 -f v4l2 -framerate 30 -video_size 320x240 -i /dev/video0

With a larger frame size, you get tons of errors like this (here from a rpi2):

[video4linux2,v4l2 @ 0x567e2000] Dequeued v4l2 buffer contains 3048 bytes, but 614400 were expected. Flags: 0x00000005.

That comes from the camera trying to send about 150MBit/s through USB2.
While USB2 supports about twice that rate, it seems too be too much for
either the rpi2 USB controller (same as in rpi3) or our driver.

It does work on a system with xhci USB controller (like rpi4).
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.