diff options
Diffstat (limited to 'Documentation/docs.rst')
-rw-r--r-- | Documentation/docs.rst | 162 |
1 files changed, 81 insertions, 81 deletions
diff --git a/Documentation/docs.rst b/Documentation/docs.rst index 4bbcd9aa..c3e24bb9 100644 --- a/Documentation/docs.rst +++ b/Documentation/docs.rst @@ -150,45 +150,45 @@ Camera Stack :: - | a c / +-------------+ +-------------+ +-------------+ +-------------+ - | p a | | Native | | Framework | | Native | | Android | - | p t | | V4L2 | | Application | | libcamera | | Camera | - | l i | | Application | | (gstreamer) | | Application | | Framework | - | i o \ +-------------+ +-------------+ +-------------+ +-------------+ - | n ^ ^ ^ ^ - | | | | | - | l a | | | | - | i d v v | v - | b a / +-------------+ +-------------+ | +-------------+ - | c p | | V4L2 | | Camera | | | Android | - | a t | | Compat. | | Framework | | | Camera | - | m a | | | | (gstreamer) | | | HAL | - | e t \ +-------------+ +-------------+ | +-------------+ - | r i ^ ^ | ^ - | a o | | | | - | n | | | | - | / | ,................................................ - | | | ! : Language : ! - | l f | | ! : Bindings : ! - | i r | | ! : (optional) : ! - | b a | | \...............................................' - | c m | | | | | - | a e | | | | | - | m w | v v v v - | e o | +----------------------------------------------------------------+ - | r r | | | - | a k | | libcamera | - | | | | - | \ +----------------------------------------------------------------+ - | ^ ^ ^ - | Userspace | | | - | ------------------------ | ---------------- | ---------------- | --------------- - | Kernel | | | - | v v v - | +-----------+ +-----------+ +-----------+ - | | Media | <--> | Video | <--> | V4L2 | - | | Device | | Device | | Subdev | - | +-----------+ +-----------+ +-----------+ + a c / +-------------+ +-------------+ +-------------+ +-------------+ + p a | | Native | | Framework | | Native | | Android | + p t | | V4L2 | | Application | | libcamera | | Camera | + l i | | Application | | (gstreamer) | | Application | | Framework | + i o \ +-------------+ +-------------+ +-------------+ +-------------+ + n ^ ^ ^ ^ + | | | | + l a | | | | + i d v v | v + b a / +-------------+ +-------------+ | +-------------+ + c p | | V4L2 | | Camera | | | Android | + a t | | Compat. | | Framework | | | Camera | + m a | | | | (gstreamer) | | | HAL | + e t \ +-------------+ +-------------+ | +-------------+ + r i ^ ^ | ^ + a o | | | | + n | | | | + / | ,................................................ + | | ! : Language : ! + l f | | ! : Bindings : ! + i r | | ! : (optional) : ! + b a | | \...............................................' + c m | | | | | + a e | | | | | + m w | v v v v + e o | +----------------------------------------------------------------+ + r r | | | + a k | | libcamera | + | | | + \ +----------------------------------------------------------------+ + ^ ^ ^ + Userspace | | | + ------------------------ | ---------------- | ---------------- | --------------- + Kernel | | | + v v v + +-----------+ +-----------+ +-----------+ + | Media | <--> | Video | <--> | V4L2 | + | Device | | Device | | Subdev | + +-----------+ +-----------+ +-----------+ The camera stack comprises four software layers. From bottom to top: @@ -226,48 +226,48 @@ libcamera Architecture :: - | ---------------------------< libcamera Public API >--------------------------- - | ^ ^ - | | | - | v v - | +-------------+ +-------------------------------------------------+ - | | Camera | | Camera Device | - | | Devices | | +---------------------------------------------+ | - | | Manager | | | Device-Agnostic | | - | +-------------+ | | | | - | ^ | | +------------------------+ | - | | | | | ~~~~~~~~~~~~~~~~~~~~~ | - | | | | | { +---------------+ } | - | | | | | } | ////Image//// | { | - | | | | | <-> | /Processing// | } | - | | | | | } | /Algorithms// | { | - | | | | | { +---------------+ } | - | | | | | ~~~~~~~~~~~~~~~~~~~~~ | - | | | | | ======================== | - | | | | | +---------------+ | - | | | | | | //Pipeline/// | | - | | | | | <-> | ///Handler/// | | - | | | | | | ///////////// | | - | | | +--------------------+ +---------------+ | - | | | Device-Specific | - | | +-------------------------------------------------+ - | | ^ ^ - | | | | - | v v v - | +--------------------------------------------------------------------+ - | | Helpers and Support Classes | - | | +-------------+ +-------------+ +-------------+ +-------------+ | - | | | MC & V4L2 | | Buffers | | Sandboxing | | Plugins | | - | | | Support | | Allocator | | IPC | | Manager | | - | | +-------------+ +-------------+ +-------------+ +-------------+ | - | | +-------------+ +-------------+ | - | | | Pipeline | | ... | | - | | | Runner | | | | - | | +-------------+ +-------------+ | - | +--------------------------------------------------------------------+ - | - | /// Device-Specific Components - | ~~~ Sandboxing + ---------------------------< libcamera Public API >--------------------------- + ^ ^ + | | + v v + +-------------+ +-------------------------------------------------+ + | Camera | | Camera Device | + | Devices | | +---------------------------------------------+ | + | Manager | | | Device-Agnostic | | + +-------------+ | | | | + ^ | | +------------------------+ | + | | | | ~~~~~~~~~~~~~~~~~~~~~ | + | | | | { +---------------+ } | + | | | | } | ////Image//// | { | + | | | | <-> | /Processing// | } | + | | | | } | /Algorithms// | { | + | | | | { +---------------+ } | + | | | | ~~~~~~~~~~~~~~~~~~~~~ | + | | | | ======================== | + | | | | +---------------+ | + | | | | | //Pipeline/// | | + | | | | <-> | ///Handler/// | | + | | | | | ///////////// | | + | | +--------------------+ +---------------+ | + | | Device-Specific | + | +-------------------------------------------------+ + | ^ ^ + | | | + v v v + +--------------------------------------------------------------------+ + | Helpers and Support Classes | + | +-------------+ +-------------+ +-------------+ +-------------+ | + | | MC & V4L2 | | Buffers | | Sandboxing | | Plugins | | + | | Support | | Allocator | | IPC | | Manager | | + | +-------------+ +-------------+ +-------------+ +-------------+ | + | +-------------+ +-------------+ | + | | Pipeline | | ... | | + | | Runner | | | | + | +-------------+ +-------------+ | + +--------------------------------------------------------------------+ + + /// Device-Specific Components + ~~~ Sandboxing While offering a unified API towards upper layers, and presenting itself as a single library, libcamera isn't monolithic. It exposes |