libcamera: libcamera::Camera::Private Class Reference

libcamera v0.4.0 Supporting cameras in Linux since 2019 |

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
libcamera::Camera::Private Class Reference

Base class for camera private data. More...

Inheritance diagram for libcamera::Camera::Private:
[legend]
Collaboration diagram for libcamera::Camera::Private:
[legend]

## Public Member Functions
| Private (PipelineHandler *pipe)
| Construct a Camera::Private instance.
PipelineHandler * | pipe ()
| Retrieve the pipeline handler related to this camera.
const PipelineHandler * | pipe () const
| Retrieve the pipeline handler related to this camera.
const CameraControlValidator * | validator () const
| Retrieve the control validator related to this camera.
Public Member Functions inherited from libcamera::Extensible::Private
| Private ()
| Construct an instance of an Extensible class private data.

## Public Attributes
std::list< Request * > | queuedRequests_
| The list of queued and not yet completed requests.
ControlInfoMap | controlInfo_
| The set of controls supported by the camera.
ControlList | properties_
| The list of properties supported by the camera.
uint32_t | requestSequence_
| The queuing sequence number of the request.

## Detailed Description

Base class for camera private data.

The Camera::Private class stores all private data associated with a camera. In addition to hiding core Camera data from the public API, it is expected to be subclassed by pipeline handlers to store pipeline-specific data.

Pipeline handlers can obtain the Camera::Private instance associated with a camera by calling Camera::_d().

## Constructor & Destructor Documentation

## ◆ Private()

libcamera::Camera::Private::Private | ( | PipelineHandler * | pipe | ) |

Construct a Camera::Private instance.

Parameters

  [in] | pipe | The pipeline handler responsible for the camera device

## ◆ ~Private()

libcamera::Camera::Private::~Private | ( |  | ) |
| virtual

Reimplemented from libcamera::Extensible::Private.

## Member Function Documentation

## ◆ pipe() [1/2]

PipelineHandler * libcamera::Camera::Private::pipe | ( |  | ) |
| inline

Retrieve the pipeline handler related to this camera.

Returns
  The pipeline handler that created this camera

## ◆ pipe() [2/2]

const PipelineHandler * libcamera::Camera::Private::pipe | ( |  | ) | const
| inline

Retrieve the pipeline handler related to this camera.

Returns
  The pipeline handler that created this camera

## ◆ validator()

const CameraControlValidator * libcamera::Camera::Private::validator | ( |  | ) | const
| inline

Retrieve the control validator related to this camera.

Returns
  The control validator associated with this camera

## Member Data Documentation

## ◆ controlInfo_

ControlInfoMap libcamera::Camera::Private::controlInfo_

The set of controls supported by the camera.

The control information shall be initialised by the pipeline handler when creating the camera.

Todo
  This member was initially meant to stay constant after the camera is created. Several pipeline handlers are already updating it when the camera is configured. Update the documentation accordingly, and possibly the API as well, when implementing official support for control info updates.

## ◆ properties_

ControlList libcamera::Camera::Private::properties_

The list of properties supported by the camera.

The list of camera properties shall be initialised by the pipeline handler when creating the camera, and shall not be modified afterwards.

## ◆ queuedRequests_

std::list<Request *> libcamera::Camera::Private::queuedRequests_

The list of queued and not yet completed requests.

This list tracks requests queued in order to ensure completion of all requests when the pipeline handler is stopped.

See also
  PipelineHandler::queueRequest(), PipelineHandler::stop(), PipelineHandler::completeRequest()

## ◆ requestSequence_

uint32_t libcamera::Camera::Private::requestSequence_

The queuing sequence number of the request.

When requests are queued, they are given a per-camera sequence number to facilitate debugging of internal request usage.

The requestSequence_ tracks the number of requests queued to a camera over a single capture session.

The documentation for this class was generated from the following files:

- include/libcamera/internal/camera.h
- src/libcamera/camera.cpp