Camera/ISP Drivers Using V4L2 Media Controller Framework
summary
Explains how the V4L2 Media Controller layers a media-graph (entities, pads, links) on top of V4L2 subdevices and video nodes so ISPs with multiple processing blocks map cleanly to kernel objects, and shows actual APIs used: media_device_init/register, media_pipeline_start/stop, media graph walk and link setup. Describes dynamic wiring via the V4L2 async framework with bound/complete callbacks, how userland inspects/edits topology with the media-ctl tool, and recommends using pipeline start_count to avoid suspend/resume races.
AI-written summary · about
chapters (20)
- 0:00Introduction
- 0:47Evolution of Cameras
- 2:16External ISP
- 3:31V4L2 Camera Stack
- 4:20V4L2 Internal ISP
- 4:50Evolution of V4L2
- 5:57Example ISP
- 10:11Media Controller
- 11:29Media Device Model
- 13:13Generic ISP
- 14:46Media Controller vs V4L2
- 16:17Media Controller API
- 16:32Media Device Register
- 17:57Media Entity Operations
- 20:36Other APIs
- 23:15Pipeline APIs
- 24:54V4L2 Async Framework
- 28:50MediaCTL Tool
- 31:28Media Request API
- 31:58References
related talks
36mCamera/ISP Drivers Using V4L2 Media Controller Framework
41mHow V4L2 Transformed To Support Embedded Cameras
27mBoF: Cameras on Linux
41mLearn How to Support Your SoC and ISP in Libcamera
20mV4L2 Media Controller Request API
36mV4L2 Controls - From Perspective of Video Capture Devices
37mV4L2 M2M as the Driver Framework for Video Processing IP
29mComposite Video Device Abstraction for Libcamera
