Libargus API Libargus Camera API

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions
Argus::IEGLOutputStreamSettings Class Reference
EGLOutputStreamSettings

Interface that exposes the settings used for EGLStream-linked OutputStream creation. More...

`#include <EGLStream.h>`

Inheritance diagram for Argus::IEGLOutputStreamSettings:

List of all members.

## Public Member Functions

virtual Status | setPixelFormat (const PixelFormat &format)=0
| Set the format of the stream.
virtual PixelFormat | getPixelFormat () const =0
virtual Status | setResolution (const Size2D< uint32_t > &resolution)=0
| Set the resolution of the stream.
virtual Size2D< uint32_t > | getResolution () const =0
virtual Status | setExposureCount (uint32_t exposureCount)=0
| Set the number of exposures per stream frame.
virtual uint32_t | getExposureCount () const =0
virtual Status | setEGLDisplay (EGLDisplay eglDisplay)=0
| Set the EGLDisplay the created stream must belong to.
virtual EGLDisplay | getEGLDisplay () const =0
virtual Status | setMode (const EGLStreamMode &mode)=0
| Sets the mode of the OutputStream.
virtual EGLStreamMode | getMode () const =0
virtual Status | setFifoLength (uint32_t fifoLength)=0
| Sets the FIFO queue length of the stream.
virtual uint32_t | getFifoLength () const =0
virtual Status | setMetadataEnable (bool metadataEnable)=0
| Enables or disables embedding Argus CaptureMetadata within frames written to the EGLStream.
virtual bool | getMetadataEnable () const =0
virtual bool | supportsOutputStreamFormat (const SensorMode *sensorMode, const PixelFormat &outputFormat) const =0

## Static Public Member Functions

static const InterfaceID & | id ()

## Protected Member Functions

| ~IEGLOutputStreamSettings ()
Protected Member Functions inherited from Argus::Interface
| Interface ()
| ~Interface ()

## Detailed Description

Interface that exposes the settings used for EGLStream-linked OutputStream creation.

Definition at line 79 of file EGLStream.h.

## Constructor & Destructor Documentation

Argus::IEGLOutputStreamSettings::~IEGLOutputStreamSettings | ( |  | ) |

inline protected

Definition at line 191 of file EGLStream.h.

## Member Function Documentation

virtual EGLDisplay Argus::IEGLOutputStreamSettings::getEGLDisplay | ( |  | ) | const

pure virtual

virtual uint32_t Argus::IEGLOutputStreamSettings::getExposureCount | ( |  | ) | const

pure virtual

virtual uint32_t Argus::IEGLOutputStreamSettings::getFifoLength | ( |  | ) | const

pure virtual

virtual bool Argus::IEGLOutputStreamSettings::getMetadataEnable | ( |  | ) | const

pure virtual

virtual EGLStreamMode Argus::IEGLOutputStreamSettings::getMode | ( |  | ) | const

pure virtual

virtual PixelFormat Argus::IEGLOutputStreamSettings::getPixelFormat | ( |  | ) | const

pure virtual

virtual Size2D<uint32_t> Argus::IEGLOutputStreamSettings::getResolution | ( |  | ) | const

pure virtual

static const InterfaceID& Argus::IEGLOutputStreamSettings::id | ( |  | ) |

inline static

Definition at line 82 of file EGLStream.h.

virtual Status Argus::IEGLOutputStreamSettings::setEGLDisplay | ( | EGLDisplay | eglDisplay | ) |

pure virtual

Set the EGLDisplay the created stream must belong to.

Default value: EGL_NO_DISPLAY - stream is display-agnostic.

virtual Status Argus::IEGLOutputStreamSettings::setExposureCount | ( | uint32_t | exposureCount | ) |

pure virtual

Set the number of exposures per stream frame.

This number should match the number of exposures that are going to be provided with each stream frame when capturing from multi-exposure WDR sources. Note that the EGLStream consumer must support consuming multi-exposure/buffer EGLStreams. In the case of the EGLStream::FrameConsumer consumer, the multiple exposures are treated as separate buffers in the acquired Image and may be accessed using any Image interface which supports multi-buffer/plane image access (see EGLStream::IImage::getBufferCount()). Default value: 1

virtual Status Argus::IEGLOutputStreamSettings::setFifoLength | ( | uint32_t | fifoLength | ) |

pure virtual

Sets the FIFO queue length of the stream.

This value is only used if the stream is using the FIFO mode (

See also:
  OutputStreamSettings::setMode). Value must be > 0. Default value: 1

virtual Status Argus::IEGLOutputStreamSettings::setMetadataEnable | ( | bool | metadataEnable | ) |

pure virtual

Enables or disables embedding Argus CaptureMetadata within frames written to the EGLStream.

Enabling this will allow an EGLStream::MetadataContainer to be created from frames acquired on the consumer side of the EGLStream that will expose the EGLStream::IArgusCaptureMetadata interface, which in turn provides access to the CaptureMetadata corresponding to that frame. This will also enable the IArgusCaptureMetadata interface directly on EGLStream::Frames acquired by an EGLStream::FrameConsumer. Default value: disabled.

virtual Status Argus::IEGLOutputStreamSettings::setMode | ( | const EGLStreamMode & | mode | ) |

pure virtual

Sets the mode of the OutputStream.

Available options are:

MAILBOX: In this mode, only the newest frame is made available to the consumer. When Argus completes a frame it empties the mailbox and inserts the new frame into the mailbox. The consumer then retrieves the frame from the mailbox and processes it; when finished, the frame is either placed back into the mailbox (if the mailbox is empty) or discarded (if the mailbox is not empty). This mode implies 2 things:

- If the consumer consumes frames slower than Argus produces frames, then some frames may be lost (never seen by the consumer).

- If the consumer consumes frames faster than Argus produces frames, then the consumer may see some frames more than once.

FIFO: When using this mode, every producer frame is made available to the consumer through the use of a fifo queue for the frames. When using this mode, the fifo queue length must be specified using setFifoLength. When Argus completes a frame it inserts it to the head of the fifo queue. If the fifo is full (already contains the number of frames equal to the fifo queue length), Argus will stall until the fifo is no longer full. The consumer consumes frames from the tail of the queue; however, if the consumer releases a frame while the queue is empty, the frame is set aside and will be returned again the next time the consumer requests a frame if another new frame has not been inserted into the fifo queue before then. Once a new frame is inserted into the fifo queue, any previously released frame will be permanently discarded. This mode implies:

- Frames are never discarded until the consumer has processed them.

- If the consumer consumes frames slower than Argus produces them, Argus will stall.

- If the consumer consumes frames faster than Argus produces them, then the consumer may see some frames more than once.

Default value: STREAM_MODE_MAILBOX

virtual Status Argus::IEGLOutputStreamSettings::setPixelFormat | ( | const PixelFormat & | format | ) |

pure virtual

Set the format of the stream.

Default value: PIXEL_FMT_UNKNOWN

virtual Status Argus::IEGLOutputStreamSettings::setResolution | ( | const Size2D< uint32_t > & | resolution | ) |

pure virtual

Set the resolution of the stream.

Default value: (0, 0)

virtual bool Argus::IEGLOutputStreamSettings::supportsOutputStreamFormat | ( | const SensorMode * | sensorMode,
|  | const PixelFormat & | outputFormat
| ) |  | const

pure virtual

Returns:
  True if the output pixel format is supported by the CaptureSession for the queried sensor mode. Otherwise, returns false.

Parameters:

  [in] | sensorMode | The sensor mode being queried for the output pixel type.
  [in] | outputFormat | The output pixel format being queried for support.

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

- include/Argus/EGLStream.h