libcamera
v0.3.1+12-19bbca3c
Supporting cameras in Linux since 2019
|
Class for the Software ISP. More...
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< PixelFormat > | formats (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. | |
Class for the Software ISP.
libcamera::SoftwareIsp::SoftwareIsp | ( | PipelineHandler * | pipe, |
const CameraSensor * | sensor | ||
) |
Constructs SoftwareIsp object.
[in] | pipe | The pipeline handler in use |
[in] | sensor | Pointer to the CameraSensor instance owned by the pipeline handler |
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.
[in] | inputCfg | The input configuration |
[in] | outputCfgs | The output configurations |
[in] | sensorControls | ControlInfoMap of the controls supported by the sensor |
int libcamera::SoftwareIsp::exportBuffers | ( | const Stream * | stream, |
unsigned int | count, | ||
std::vector< std::unique_ptr< FrameBuffer >> * | buffers | ||
) |
Export the buffers from the Software ISP.
[in] | stream | Output stream exporting the buffers |
[in] | count | Number of buffers to allocate |
[out] | buffers | Vector to store the allocated buffers |
std::vector< PixelFormat > libcamera::SoftwareIsp::formats | ( | PixelFormat | inputFormat | ) |
Get the output formats supported for the given input format.
[in] | inputFormat | The input format |
bool libcamera::SoftwareIsp::isValid | ( | ) | const |
Check the validity of Software Isp object.
|
inline |
Load a configuration from a file.
[in] | filename | The file to load the configuration data from |
Currently is a stub doing nothing and always returning "success".
void libcamera::SoftwareIsp::process | ( | FrameBuffer * | input, |
FrameBuffer * | output | ||
) |
Passes the input framebuffer to the ISP worker to process.
[in] | input | The input framebuffer |
[out] | output | The framebuffer to write the processed frame to |
void libcamera::SoftwareIsp::processStats | ( | const ControlList & | sensorControls | ) |
Process the statistics gathered.
[in] | sensorControls | The sensor controls |
Requests the IPA to calculate new parameters for ISP and new control values for the sensor.
int libcamera::SoftwareIsp::queueBuffers | ( | FrameBuffer * | input, |
const std::map< const Stream *, FrameBuffer *> & | outputs | ||
) |
Queue buffers to Software ISP.
[in] | input | The input framebuffer |
[in] | outputs | The container holding the output stream pointers and their respective frame buffer outputs |
SizeRange libcamera::SoftwareIsp::sizes | ( | PixelFormat | inputFormat, |
const Size & | inputSize | ||
) |
Get the supported output sizes for the given input format and size.
[in] | inputFormat | The input format |
[in] | inputSize | The input frame size |
int libcamera::SoftwareIsp::start | ( | ) |
Starts the Software ISP streaming operation.
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
[in] | outputFormat | The output format |
[in] | size | The output size (width and height in pixels) |