USB cameras
USB Video Class (UVC) cameras, discovered through V4L2 by the camera.v4l2
provider. A rescan follows every video4linux uevent.
The provider walks /sys/class/video4linux and keeps only nodes with a USB
ancestor, so platform and ISP nodes are never opened. Each candidate is opened
O_RDONLY | O_NONBLOCK and receives query ioctls only (VIDIOC_QUERYCAP,
VIDIOC_ENUM_FMT, VIDIOC_ENUM_FRAMESIZES, VIDIOC_ENUM_FRAMEINTERVALS).
Metadata-only, output-only and memory-to-memory nodes are dropped after
VIDIOC_QUERYCAP, so a UVC camera with a metadata node appears once.
Identity
id is camera:v4l2:<16 hex digits>, the FNV-1a hash of identity.stable_key
(sysfs:<USB topology>:interface=<bInterfaceNumber>:index=<node index>). It is
unchanged across replugs into the same port and /dev/videoN renumbering. A
different port is a different camera, and identical cameras in different ports
have different ids.