This software provides an abstraction layer for video4linux2-driven devices, enabling simplified and streamlined management of multimedia input/output operations.
Libv4l consists of three different libraries that work together to ensure that your application is compatible with a wide range of devices. The first of these is libv4lconvert, which offers functions to convert from any known pixelformat to V4l2_PIX_FMT_BGR24 or V4l2_PIX_FMT_YUV420. It supports several source formats including jpeg, mjpeg, bayer (bggr, rggb, gbrg, grbg), spca501 (chip-specific yuv 420 with interlaced components), and spca561 (chip-specific compressed gbrg bayer). For more details on the v4lconvert_ functions, refer to libv4lconvert.h.
The second library is libv4l1, which offers functions like v4l1_open, v4l1_ioctl, etc. that allow you to quickly make v4l1 applications work with v4l2 devices. You can use these functions exactly as you would use the normal open/close/etc. calls, but the difference is that libv4l1 provides full emulation of the v4l1 api on top of v4l2 drivers. In case of v4l1 drivers, it simply passes calls through. For more information about the v4l1_ functions, consult libv4l1.h.
Finally, there's libv4l2. This library provides functions like v4l2_open, v4l2_ioctl, etc. that you can use to easily make your v4l2 applications work with various devices with peculiar formats. Libv4l2 mostly passes calls directly through to the v4l2 driver. If an app does a TRY_FMT/S_FMT with a not supported format, libv4l2 gets in the middle and emulates the format. If you want to know which formats the hardware can really handle, it's best to use ENUM_FMT instead of randomly trying a bunch of S_FMT's. Refer to libv4l2.h for more details on the v4l2_ functions.
Version 0.6.3: N/A