@@ -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
There's no need to add a character on the left side of the ascii art diagrams, provided that we indent them properly. Fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- Documentation/docs.rst | 162 ++++++++++++++++++++--------------------- 1 file changed, 81 insertions(+), 81 deletions(-)