libcamera: libcamera::V4L2M2MConverter Class Reference

libcamera v0.1.0 Supporting cameras in Linux since 2019

Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
libcamera::V4L2M2MConverter Class Reference

The V4L2 M2M converter implements the converter interface based on V4L2 M2M device. More...

Inheritance diagram for libcamera::V4L2M2MConverter:
[legend]
Collaboration diagram for libcamera::V4L2M2MConverter:
[legend]

## Public Member Functions
| V4L2M2MConverter (MediaDevice *media)
| Construct a V4L2M2MConverter instance.
int | loadConfiguration (const std::string &filename)
bool | isValid () const
std::vector< PixelFormat > | formats (PixelFormat input)
SizeRange | sizes (const Size &input)
| Retrieve the range of minimum and maximum output sizes for an input size.
std::tuple< unsigned int, unsigned int > | strideAndFrameSize (const PixelFormat &pixelFormat, const Size &size)
| Retrieve the output stride and frame size for an input configutation.
int | configure (const StreamConfiguration &inputCfg, const std::vector< std::reference_wrapper< StreamConfiguration > > &outputCfg)
| Configure a set of output stream conversion from an input stream.
int | exportBuffers (unsigned int ouput, unsigned int count, std::vector< std::unique_ptr< FrameBuffer > > *buffers)
| Export buffers from the converter device.
int | start ()
| Start the converter streaming operation.
void | stop ()
| Stop the converter streaming operation.
int | queueBuffers (FrameBuffer *input, const std::map< unsigned int, FrameBuffer * > &outputs)
| Queue buffers to converter device.
Public Member Functions inherited from libcamera::Converter
| Converter (MediaDevice *media)
| Construct a Converter instance.
virtual int | loadConfiguration (const std::string &filename)=0
| Load converter configuration from file.
virtual bool | isValid () const =0
| Check if the converter configuration is valid.
virtual std::vector< PixelFormat > | formats (PixelFormat input)=0
| Retrieve the list of supported pixel formats for an input pixel format.
virtual SizeRange | sizes (const Size &input)=0
| Retrieve the range of minimum and maximum output sizes for an input size.
virtual std::tuple< unsigned int, unsigned int > | strideAndFrameSize (const PixelFormat &pixelFormat, const Size &size)=0
| Retrieve the output stride and frame size for an input configutation.
virtual int | configure (const StreamConfiguration &inputCfg, const std::vector< std::reference_wrapper< StreamConfiguration > > &outputCfgs)=0
| Configure a set of output stream conversion from an input stream.
virtual int | exportBuffers (unsigned int output, unsigned int count, std::vector< std::unique_ptr< FrameBuffer > > *buffers)=0
| Export buffers from the converter device.
virtual int | start ()=0
| Start the converter streaming operation.
virtual void | stop ()=0
| Stop the converter streaming operation.
virtual int | queueBuffers (FrameBuffer *input, const std::map< unsigned int, FrameBuffer * > &outputs)=0
| Queue buffers to converter device.
const std::string & | deviceNode () const
| The converter device node attribute accessor.

## Additional Inherited Members
Public Attributes inherited from libcamera::Converter
Signal< FrameBuffer * > | inputBufferReady
| A signal emitted when the input frame buffer completes.
Signal< FrameBuffer * > | outputBufferReady
| A signal emitted on each frame buffer completion of the output queue.

## Detailed Description

The V4L2 M2M converter implements the converter interface based on V4L2 M2M device.

## Constructor & Destructor Documentation

## ◆ V4L2M2MConverter()

libcamera::V4L2M2MConverter::V4L2M2MConverter | ( | MediaDevice * | media | ) |

Construct a V4L2M2MConverter instance.

Parameters

  [in] | media | The media device implementing the converter

## Member Function Documentation

## ◆ configure()

int libcamera::V4L2M2MConverter::configure | ( | const StreamConfiguration & | inputCfg,
|  | const std::vector< std::reference_wrapper< StreamConfiguration > > & | outputCfgs
| ) |  |
| virtual

Configure a set of output stream conversion from an input stream.

Parameters

  [in] | inputCfg | Input stream configuration
  [out] | outputCfgs | A list of output stream configurations

Returns
  0 on success or a negative error code otherwise

Implements libcamera::Converter.

## ◆ exportBuffers()

int libcamera::V4L2M2MConverter::exportBuffers | ( | unsigned int | output,
|  | unsigned int | count,
|  | std::vector< std::unique_ptr< FrameBuffer > > * | buffers
| ) |  |
| virtual

Export buffers from the converter device.

Parameters

  [in] | output | Output stream index exporting the buffers
  [in] | count | Number of buffers to allocate
  [out] | buffers | Vector to store allocated buffers

This function operates similarly to V4L2VideoDevice::exportBuffers() on the output stream indicated by the output index.

Returns
  The number of allocated buffers on success or a negative error code otherwise

Implements libcamera::Converter.

## ◆ formats()

std::vector< PixelFormat > libcamera::V4L2M2MConverter::formats | ( | PixelFormat | input | ) |
| virtual

Parameters

  [in] | input | Input pixel format to retrieve output pixel format list for

Returns
  The list of supported output pixel formats

Implements libcamera::Converter.

## ◆ isValid()

libcamera::V4L2M2MConverter::isValid | ( |  | ) | const
| inlinevirtual

Returns
  True is the converter is valid, false otherwise

Implements libcamera::Converter.

## ◆ loadConfiguration()

libcamera::V4L2M2MConverter::loadConfiguration | ( | const std::string & | filename | ) |
| inlinevirtual

Parameters

  [in] | filename | The file name path

Load converter dependent configuration parameters to apply on the hardware.

Returns
  0 on success or a negative error code otherwise

Implements libcamera::Converter.

## ◆ queueBuffers()

int libcamera::V4L2M2MConverter::queueBuffers | ( | FrameBuffer * | input,
|  | const std::map< unsigned int, FrameBuffer * > & | outputs
| ) |  |
| virtual

Queue buffers to converter device.

Parameters

  [in] | input | The frame buffer to apply the conversion
  [out] | outputs | The container holding the output stream indexes and their respective frame buffer outputs.

This function queues the input frame buffer on the output streams of the outputs map key and retrieve the output frame buffer indicated by the buffer map value.

Returns
  0 on success or a negative error code otherwise

Implements libcamera::Converter.

## ◆ sizes()

SizeRange libcamera::V4L2M2MConverter::sizes | ( | const Size & | input | ) |
| virtual

Retrieve the range of minimum and maximum output sizes for an input size.

Parameters

  [in] | input | Input stream size to retrieve range for

Returns
  A range of output image sizes

Implements libcamera::Converter.

## ◆ start()

int libcamera::V4L2M2MConverter::start | ( |  | ) |
| virtual

Start the converter streaming operation.

Returns
  0 on success or a negative error code otherwise

Implements libcamera::Converter.

## ◆ stop()

void libcamera::V4L2M2MConverter::stop | ( |  | ) |
| virtual

Stop the converter streaming operation.

Implements libcamera::Converter.

## ◆ strideAndFrameSize()

std::tuple< unsigned int, unsigned int > libcamera::V4L2M2MConverter::strideAndFrameSize | ( | const PixelFormat & | pixelFormat,
|  | const Size & | size
| ) |  |
| virtual

Retrieve the output stride and frame size for an input configutation.

Parameters

  [in] | pixelFormat | Input stream pixel format
  [in] | size | Input stream size

Returns
  A tuple indicating the stride and frame size or an empty tuple on error

Implements libcamera::Converter.

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

- include/libcamera/internal/converter/converter_v4l2_m2m.h
- src/libcamera/converter/converter_v4l2_m2m.cpp