[libcamera-devel] README.rst: Add FAQ section.

Message ID 20200503011720.3382710-1-kieran.bingham@ideasonboard.com
State Superseded
Delegated to: Kieran Bingham
Headers show
Series
  • [libcamera-devel] README.rst: Add FAQ section.
Related show

Commit Message

Kieran Bingham May 3, 2020, 1:17 a.m. UTC
Provide an initial set of Questions and Answers.

Hopefully these will provide quick insights to the project from the
README, and can be incorporated into the website.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
 README.rst | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

Comments

Laurent Pinchart May 3, 2020, 2:41 a.m. UTC | #1
Hi Kieran,

Thanks for your work on this.

Just a few comments already, I'll provide more tomorrow.

On Sun, May 03, 2020 at 02:17:20AM +0100, Kieran Bingham wrote:
> Provide an initial set of Questions and Answers.
> 
> Hopefully these will provide quick insights to the project from the
> README, and can be incorporated into the website.
> 
> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> ---
>  README.rst | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)
> 
> diff --git a/README.rst b/README.rst
> index 40d45196c7d6..af44686b969c 100644
> --- a/README.rst
> +++ b/README.rst
> @@ -89,3 +89,68 @@ default video display element on your system.
>    gst-launch-1.0 libcamerasrc camera-name="Camera 1" ! videoconvert ! autovideosink
>  
>  .. section-end-getting-started
> +.. section-begin-faq
> +
> +Frequently Asked Questions
> +--------------------------
> +
> +What is libcamera?
> +  libcamera is an open source camera stack implemented entirely in user space.
> +  It aims to encourage the development of new embedded camera applications by
> +  limiting the complexity that developers have to deal with.  The interface is

s/  The/ The/

> +  designed around the way that modern embedded camera hardware works.
> +
> +What is the correct way to display the name 'libcamera'

s/$/?/

> +  libcamera, is always in lowercase; in titles, or at the beginning of
> +  sentences.
> +
> +How is libcamera different from V4L2?
> +  We see libcamera as a continuation of V4L2. One that can more easily handle
> +  the recent advances in hardware design. As embedded cameras have developed,
> +  all of the complexity has been pushed on to the developers. With libcamera,
> +  all of that complexity is simplified and a single model is presented to
> +  application developers.
> +
> +Does this mean the camera stack is completely open?
> +  libcamera is open-source friendly which means all of libcamera itself is open
> +  source. Because vendors are reluctant to open-source their Image Processing
> +  Algorithms, libcamera can support closed-source Image Processing Algorithm
> +  modules (IPAs) which will be sandboxed to minimise the exposure of binary
> +  blobs.
> +
> +libcamera has been described as “the MESA of the camera stack”. What does that mean?
> +  Mesa provides powerful high-level APIs to applications and implements
> +  device-specific code in userspace to support the implementation. libcamera
> +  provides high-level APIs that handle device-specific code in userspace to
> +  simplify development for application developers.
> +
> +Which cameras SoCs (pipelines) are supported?
> +  Currently supported pipelines include the Intel IPU3, RockChip RK3399, UVC,
> +  and VIMC/VIVID test drivers
> +
> +Which camera protocols are supported?
> +  libcamera supports cameras that use MIPI/CSI2 protocols.

s/MIPI\/CSI2/MIPI CSI-2/

> +
> +Can I use libcamera to access photos on digital cameras?
> +  No, libcamera is a library for controlling embedded camera hardware, it’s not
> +  an application for accessing photos and has no relationship to gphoto2.
> +  libcamera supports internal cameras designed for point-and-shoot still image
> +  and video capture and external UVC cameras designed for video conferencing.
> +
> +Can libcamera handle multiple cameras simultaneously?
> +  libcamera can support multiple cameras within a system, and allows only a
> +  single application to consume each stream. An application must ‘acquire’ a

We lock at the camera level, not at the stream level, don't we ?

> +  Camera to start operations on it, and should release it when finished.
> +  Logical cameras where multiple cameras are treated as a single camera is a
> +  pipeline and hardware specific extension that will be supported in the
> +  future.
> +
> +Does libcamera do format conversion and debayering?
> +  Format conversion and debayering operations are dependent upon the Image
> +  Signal Processor (ISP) and hardware available. Our demonstration application,
> +  QCam, does basic software format conversions to handle display but we aim to
> +  move to using OpenGL to improve real time conversion performance. Where
> +  possible, QCam will request formats that can be displayed natively without
> +  requiring software conversions.
> +
> +.. section-end-faq

Patch

diff --git a/README.rst b/README.rst
index 40d45196c7d6..af44686b969c 100644
--- a/README.rst
+++ b/README.rst
@@ -89,3 +89,68 @@  default video display element on your system.
   gst-launch-1.0 libcamerasrc camera-name="Camera 1" ! videoconvert ! autovideosink
 
 .. section-end-getting-started
+.. section-begin-faq
+
+Frequently Asked Questions
+--------------------------
+
+What is libcamera?
+  libcamera is an open source camera stack implemented entirely in user space.
+  It aims to encourage the development of new embedded camera applications by
+  limiting the complexity that developers have to deal with.  The interface is
+  designed around the way that modern embedded camera hardware works.
+
+What is the correct way to display the name 'libcamera'
+  libcamera, is always in lowercase; in titles, or at the beginning of
+  sentences.
+
+How is libcamera different from V4L2?
+  We see libcamera as a continuation of V4L2. One that can more easily handle
+  the recent advances in hardware design. As embedded cameras have developed,
+  all of the complexity has been pushed on to the developers. With libcamera,
+  all of that complexity is simplified and a single model is presented to
+  application developers.
+
+Does this mean the camera stack is completely open?
+  libcamera is open-source friendly which means all of libcamera itself is open
+  source. Because vendors are reluctant to open-source their Image Processing
+  Algorithms, libcamera can support closed-source Image Processing Algorithm
+  modules (IPAs) which will be sandboxed to minimise the exposure of binary
+  blobs.
+
+libcamera has been described as “the MESA of the camera stack”. What does that mean?
+  Mesa provides powerful high-level APIs to applications and implements
+  device-specific code in userspace to support the implementation. libcamera
+  provides high-level APIs that handle device-specific code in userspace to
+  simplify development for application developers.
+
+Which cameras SoCs (pipelines) are supported?
+  Currently supported pipelines include the Intel IPU3, RockChip RK3399, UVC,
+  and VIMC/VIVID test drivers
+
+Which camera protocols are supported?
+  libcamera supports cameras that use MIPI/CSI2 protocols.
+
+Can I use libcamera to access photos on digital cameras?
+  No, libcamera is a library for controlling embedded camera hardware, it’s not
+  an application for accessing photos and has no relationship to gphoto2.
+  libcamera supports internal cameras designed for point-and-shoot still image
+  and video capture and external UVC cameras designed for video conferencing.
+
+Can libcamera handle multiple cameras simultaneously?
+  libcamera can support multiple cameras within a system, and allows only a
+  single application to consume each stream. An application must ‘acquire’ a
+  Camera to start operations on it, and should release it when finished.
+  Logical cameras where multiple cameras are treated as a single camera is a
+  pipeline and hardware specific extension that will be supported in the
+  future.
+
+Does libcamera do format conversion and debayering?
+  Format conversion and debayering operations are dependent upon the Image
+  Signal Processor (ISP) and hardware available. Our demonstration application,
+  QCam, does basic software format conversions to handle display but we aim to
+  move to using OpenGL to improve real time conversion performance. Where
+  possible, QCam will request formats that can be displayed natively without
+  requiring software conversions.
+
+.. section-end-faq