Reviews are welcome on the Video Zephyr API PR:
This pull request introduces a generic Video API, highly inspired by existing API/frameworks like V4L2, gstreamer, and OpenMAX. A video device can be a video capture device (e.g. camera) a memory-to-memory device (e.g. encoder) or an output device (e.g. display). The main operation consists of enqueuing and dequeuing video buffer(s) to video device's endpoint(s). The video buffer can then be filled (capture), or consumed (output) depending endpoint type. The API is designed for 'zero-copy' and easy pipeline creation (e.g. camera->encoder->display).
In order to keep the API simple but scalable, each video device can implement video 'controls' identified by control-id (CID) which can either be video generic, class generic (camera, encoder...) or vendor/device specific.
This PR adds the definition of the API, support for NXP MCUX CSI (CMOS sensor interface) and MT9M114 sensor. Allowing to capture frames with the mimxrt1064-evk board. For testing purpose, It also adds a software pattern generator which outputs a static colorbar pattern.
Two samples have been implemented, a simple 'capture' sample counting captured frame from any available video device and a 'tcpserversink' sample forwarding captured frames to a TCP client, which can then display the frames with e.g. gstreamer.