=== FreeBSD V4L2 & kernel USB Video Class driver

Links: +
link:https://github.com/AlvinChen1028/freebsd-src/tree/feature-uvc[Public development repository] URL: link:https://github.com/AlvinChen1028/freebsd-src/tree/feature-uvc[] +
link:https://github.com/lwhsu/freebsd-src/pull/2[Upstreaming preparation repository] URL: link:https://github.com/lwhsu/freebsd-src/pull/2[] +

Contact: Alvin Chen <weike_chen@dell.com> +
Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>

This work is to create FreeBSD UVC (USB Video Class) kernel driver and follow v4l2 APIs, so that most of the Linux camera applications can be easily ported to FreeBSD.

The code is still cleaning up and will be submitted to official review after completing.

Current Status:

1. The key functions of the UVC driver are enabled.
2. The key v4l2 IOCTLs are implemented.
3. Support most of USB cameras (up to 4K resolution): Jabra, Logitech, etc.
4. Some applications validated: VLC, Cheese, pwcview.

Future Work:

1. A couple of v4l2 IOCTLs need be implemented: make all cases in v4l2-compliance test suite be passed.
2. Some UVC APIs need be implemented: uvc control mapping callbacks, etc.
3. UVC lock issue related to USB.
4. PCI based AI camera supporting.
5. Code refactoring if needed.

Sponsor: Dell Technologies for the development +
Sponsor: The FreeBSD Foundation for assistance of upstreaming
