libcamera  v0.3.2+116-83c5ad0f
Supporting cameras in Linux since 2019
Todo List
Class libcamera::Camera
Add documentation for camera start timings. What exactly does the camera expect the pipeline handler to do when start() is called?
Member libcamera::CameraConfiguration::validate ()=0

Define exactly when to return each status code. Should stream parameters set to 0 by the caller be adjusted without returning Adjusted ? This would potentially be useful for applications but would get in the way in Camera::configure(). Do we need an extra status code to signal this ?

Handle validation of buffers count when refactoring the buffers API.

Class libcamera::ColorSpace
Define the color space fully in the libcamera API to avoid referencing V4L2
Member libcamera::ControlList::merge (const ControlList &source, MergePolicy policy=MergePolicy::KeepExisting)

Reimplement or implement an overloaded version which internally uses std::unordered_map::merge() and accepts a non-const argument.

ASSERT that the current and source ControlList are derived from a compatible ControlIdMap, to prevent undefined behaviour due to id collisions.

Member libcamera::controls::AnalogueGain
Document the interactions between AeEnable and setting a fixed value for this control. Consider interactions with other AE features, such as aperture and aperture/shutter priority mode, and decide if control of which features should be automatically adjusted shouldn't better be handled through a separate AE mode control.
Member libcamera::controls::draft::TestPatternModeSolidColor
Add control for test pattern data.
Member libcamera::controls::ExposureTime
Document the interactions between AeEnable and setting a fixed value for this control. Consider interactions with other AE features, such as aperture and aperture/shutter priority mode, and decide if control of which features should be automatically adjusted shouldn't better be handled through a separate AE mode control.
Member libcamera::controls::FrameDurationLimits

Define how to calculate the capture frame rate by defining controls to report additional delays introduced by the capture pipeline or post-processing stages (ie JPEG conversion, frame scaling).

Provide an explicit definition of default control values, for this and all other controls.

Provide an explicit definition of default control values, for this and all other controls.

Member libcamera::controls::LensPosition
Define a property to report the Hyperfocal distance of calibrated lenses.
Member libcamera::controls::SensorTimestamp
Define how the sensor timestamp has to be used in the reprocessing use case.
Member libcamera::ControlValue::ControlValue ()
Revisit the ControlValue layout when stabilizing the ABI
Class libcamera::FrameBuffer::Plane
Specify how an application shall decide whether to use a single or multiple dmabufs, based on the camera requirements.
Member libcamera::FrameMetadata::timestamp
Be more precise on what timestamps refer to.
Member libcamera::properties::PixelArrayActiveAreas
Rename this property to ActiveAreas once we will have property categories (i.e. Properties::PixelArray::ActiveAreas)
Member libcamera::properties::PixelArrayOpticalBlackRectangles
Rename this property to Size once we will have property categories (i.e. Properties::PixelArray::OpticalBlackRectangles)
Member libcamera::properties::PixelArraySize
Rename this property to Size once we will have property categories (i.e. Properties::PixelArray::Size)
Member libcamera::properties::ScalerCropMaximum
Turn this property into a "maximum control value" for the ScalerCrop control once "dynamic" controls have been implemented.
Member libcamera::Request::metadata ()
Offer a read-only API towards applications while keeping a read/write API internally.
Member libcamera::Request::Request (Camera *camera, uint64_t cookie=0)
Add a validator for metadata controls.
Class libcamera::SensorConfiguration
Applications shall fully populate all fields of the CameraConfiguration::sensorConfig class members before validating the CameraConfiguration. If the SensorConfiguration is not fully populated, or if any of its parameters cannot be applied to the sensor in use, the CameraConfiguration validation process will fail and return CameraConfiguration::Status::Invalid.
Member libcamera::SensorConfiguration::isValid () const
For now allow applications to populate the bitDepth and the outputSize only as skipping and binnings factors are initialized to 1 and the analog crop is ignored.
Class libcamera::Stream
Add capabilities to the stream API. Without this the Stream class only serves to reveal how many streams of unknown capabilities a camera supports. This in itself is productive as it allows applications to configure and capture from one or more streams even if they won't be able to select the optimal stream for the task.
Member libcamera::StreamConfiguration::StreamConfiguration ()
This function is deprecated and should be removed once all pipeline handlers provide StreamFormats.
Class libcamera::StreamFormats
Review the usage patterns of this class, and cache the computed pixelformats(), sizes() and range() if this would improve performances.