Working on SoftISP
Find a file
Laurent Pinchart 2b1a908b52 libcamera: camera: Add a validation API to the CameraConfiguration class
The CameraConfiguration class implements a simple storage of
StreamConfiguration with internal validation limited to verifying that
the stream configurations are not empty. Extend this mechanism by
implementing a smart validate() method backed by pipeline handlers.

This new mechanism changes the semantic of the camera configuration. The
Camera::generateConfiguration() operation still generates a default
configuration based on roles, but now also supports generating empty
configurations to be filled by applications. Applications can inspect
the configuration, optionally modify it, and validate it. The validation
implements "try" semantics and adjusts invalid configurations instead of
rejecting them completely. Applications then decide whether to accept
the modified configuration, or try again with a different set of
parameters. Once the configuration is valid, it is passed to
Camera::configure(), and pipeline handlers are guaranteed that the
configuration they receive is valid.

A reference to the Camera may need to be stored in the
CameraConfiguration derived classes in order to access it from their
validate() implementation. This must be stored as a std::shared_ptr<> as
the CameraConfiguration instances belong to applications. In order to
make this possible, make the Camera class inherit from
std::shared_from_this<>.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
2019-05-23 01:07:38 +03:00
Documentation libcamera: ipa_module: add IPA shared library module 2019-05-21 18:31:37 -04:00
include libcamera: camera: Add a validation API to the CameraConfiguration class 2019-05-23 01:07:38 +03:00
licenses licenses: Add the Developer CoO 2019-01-02 21:59:46 +02:00
package/gentoo/media-libs/libcamera package: gentoo: Add libcamera ebuild 2019-05-02 16:36:16 +03:00
src libcamera: camera: Add a validation API to the CameraConfiguration class 2019-05-23 01:07:38 +03:00
test libcamera: camera: Add a validation API to the CameraConfiguration class 2019-05-23 01:07:38 +03:00
utils utils: rkisp1: Add test capture script 2019-03-29 16:39:10 +02:00
.clang-format clang-format: Remove space after template 2019-02-13 13:23:32 +02:00
.gitignore git: Add .gitignore file 2018-12-14 13:23:07 +00:00
meson.build libcamera: Make libudev optional 2019-04-27 17:11:13 +03:00
meson_options.txt meson: options: Document the options 2019-04-03 11:44:04 +07:00
README.md README: Update build instructions 2018-11-26 15:52:21 +00:00

libcamera: A complex camera support library for Linux, Android, and ChromeOS

To build and install:

  meson build
  cd build
  ninja
  ninja install