libcamera  v0.3.1+12-19bbca3c
Supporting cameras in Linux since 2019
Public Member Functions | Public Attributes | List of all members
libcamera::SoftwareIsp Class Reference

Class for the Software ISP. More...

Collaboration diagram for libcamera::SoftwareIsp:
Collaboration graph
[legend]

Public Member Functions

 SoftwareIsp (PipelineHandler *pipe, const CameraSensor *sensor)
 Constructs SoftwareIsp object. More...
 
int loadConfiguration ([[maybe_unused]] const std::string &filename)
 Load a configuration from a file. More...
 
bool isValid () const
 Check the validity of Software Isp object. More...
 
std::vector< PixelFormatformats (PixelFormat input)
 Get the output formats supported for the given input format. More...
 
SizeRange sizes (PixelFormat inputFormat, const Size &inputSize)
 Get the supported output sizes for the given input format and size. More...
 
std::tuple< unsigned int, unsigned int > strideAndFrameSize (const PixelFormat &outputFormat, const Size &size)
 
int configure (const StreamConfiguration &inputCfg, const std::vector< std::reference_wrapper< StreamConfiguration >> &outputCfgs, const ControlInfoMap &sensorControls)
 Configure the SoftwareIsp object according to the passed in parameters. More...
 
int exportBuffers (const Stream *stream, unsigned int count, std::vector< std::unique_ptr< FrameBuffer >> *buffers)
 Export the buffers from the Software ISP. More...
 
void processStats (const ControlList &sensorControls)
 Process the statistics gathered. More...
 
int start ()
 Starts the Software ISP streaming operation. More...
 
void stop ()
 Stops the Software ISP streaming operation.
 
int queueBuffers (FrameBuffer *input, const std::map< const Stream *, FrameBuffer *> &outputs)
 Queue buffers to Software ISP. More...
 
void process (FrameBuffer *input, FrameBuffer *output)
 Passes the input framebuffer to the ISP worker to process. More...
 

Public Attributes

Signal< FrameBuffer * > inputBufferReady
 A signal emitted when the input frame buffer completes.
 
Signal< FrameBuffer * > outputBufferReady
 A signal emitted when the output frame buffer completes.
 
Signal ispStatsReady
 A signal emitted when the statistics for IPA are ready.
 
Signal< const ControlList & > setSensorControls
 A signal emitted when the values to write to the sensor controls are ready.
 

Detailed Description

Class for the Software ISP.

Constructor & Destructor Documentation

◆ SoftwareIsp()

libcamera::SoftwareIsp::SoftwareIsp ( PipelineHandler pipe,
const CameraSensor sensor 
)

Constructs SoftwareIsp object.

Parameters
[in]pipeThe pipeline handler in use
[in]sensorPointer to the CameraSensor instance owned by the pipeline handler

Member Function Documentation

◆ configure()

int libcamera::SoftwareIsp::configure ( const StreamConfiguration inputCfg,
const std::vector< std::reference_wrapper< StreamConfiguration >> &  outputCfgs,
const ControlInfoMap sensorControls 
)

Configure the SoftwareIsp object according to the passed in parameters.

Parameters
[in]inputCfgThe input configuration
[in]outputCfgsThe output configurations
[in]sensorControlsControlInfoMap of the controls supported by the sensor
Returns
0 on success, a negative errno on failure

◆ exportBuffers()

int libcamera::SoftwareIsp::exportBuffers ( const Stream stream,
unsigned int  count,
std::vector< std::unique_ptr< FrameBuffer >> *  buffers 
)

Export the buffers from the Software ISP.

Parameters
[in]streamOutput stream exporting the buffers
[in]countNumber of buffers to allocate
[out]buffersVector to store the allocated buffers
Returns
The number of allocated buffers on success or a negative error code otherwise

◆ formats()

std::vector< PixelFormat > libcamera::SoftwareIsp::formats ( PixelFormat  inputFormat)

Get the output formats supported for the given input format.

Parameters
[in]inputFormatThe input format
Returns
All the supported output formats or an empty vector if there are none

◆ isValid()

bool libcamera::SoftwareIsp::isValid ( ) const

Check the validity of Software Isp object.

Returns
True if Software Isp is valid, false otherwise

◆ loadConfiguration()

int libcamera::SoftwareIsp::loadConfiguration ( [[maybe_unused] ] const std::string &  filename)
inline

Load a configuration from a file.

Parameters
[in]filenameThe file to load the configuration data from

Currently is a stub doing nothing and always returning "success".

Returns
0 on success

◆ process()

void libcamera::SoftwareIsp::process ( FrameBuffer input,
FrameBuffer output 
)

Passes the input framebuffer to the ISP worker to process.

Parameters
[in]inputThe input framebuffer
[out]outputThe framebuffer to write the processed frame to

◆ processStats()

void libcamera::SoftwareIsp::processStats ( const ControlList sensorControls)

Process the statistics gathered.

Parameters
[in]sensorControlsThe sensor controls

Requests the IPA to calculate new parameters for ISP and new control values for the sensor.

◆ queueBuffers()

int libcamera::SoftwareIsp::queueBuffers ( FrameBuffer input,
const std::map< const Stream *, FrameBuffer *> &  outputs 
)

Queue buffers to Software ISP.

Parameters
[in]inputThe input framebuffer
[in]outputsThe container holding the output stream pointers and their respective frame buffer outputs
Returns
0 on success, a negative errno on failure

◆ sizes()

SizeRange libcamera::SoftwareIsp::sizes ( PixelFormat  inputFormat,
const Size inputSize 
)

Get the supported output sizes for the given input format and size.

Parameters
[in]inputFormatThe input format
[in]inputSizeThe input frame size
Returns
The valid size range or an empty range if there are none

◆ start()

int libcamera::SoftwareIsp::start ( )

Starts the Software ISP streaming operation.

Returns
0 on success, any other value indicates an error

◆ strideAndFrameSize()

std::tuple< unsigned int, unsigned int > libcamera::SoftwareIsp::strideAndFrameSize ( const PixelFormat outputFormat,
const Size size 
)

Get the output stride and the frame size in bytes for the given output format and size

Parameters
[in]outputFormatThe output format
[in]sizeThe output size (width and height in pixels)
Returns
A tuple of the stride and the frame size in bytes, or a tuple of 0,0 if there is no valid output config

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