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::IOutputStreamSettings Class Reference
OutputStreamSettings

Interface that exposes the settings used for OutputStream creation. More...

`#include <Stream.h>`

Inheritance diagram for Argus::IOutputStreamSettings:

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 | setCameraDevice (CameraDevice *device)=0
| Set the camera device to use as the source for this stream.
virtual CameraDevice * | getCameraDevice () 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 StreamMode &mode)=0
| Sets the mode of the OutputStream.
virtual StreamMode | 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
| Enable or disable embedding libargus 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

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

## Detailed Description

Interface that exposes the settings used for OutputStream creation.

Definition at line 134 of file Stream.h.

## Constructor & Destructor Documentation

Argus::IOutputStreamSettings::~IOutputStreamSettings | ( |  | ) |

inlineprotected

Definition at line 240 of file Stream.h.

## Member Function Documentation

virtual CameraDevice* Argus::IOutputStreamSettings::getCameraDevice | ( |  | ) | const

pure virtual

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

pure virtual

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

pure virtual

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

pure virtual

virtual StreamMode Argus::IOutputStreamSettings::getMode | ( |  | ) | const

pure virtual

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

pure virtual

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

pure virtual

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

inlinestatic

Definition at line 137 of file Stream.h.

virtual Status Argus::IOutputStreamSettings::setCameraDevice | ( | CameraDevice * | device | ) |

pure virtual

Set the camera device to use as the source for this stream.

Default value: First available device in the session.

virtual Status Argus::IOutputStreamSettings::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::IOutputStreamSettings::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::IOutputStreamSettings::setMetadataEnable | ( | bool | metadataEnable | ) |

pure virtual

Enable or disable embedding libargus 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::IOutputStreamSettings::setMode | ( | const StreamMode & | 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 libargus 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 libargus produces frames, then some frames may be lost (never seen by the consumer).

- If the consumer consumes frames faster than libargus 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 libargus 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), libargus 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 libargus produces them, libargus will stall.

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

Default value: STREAM_MODE_MAILBOX

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

pure virtual

Set the format of the stream.

Default value: PIXEL_FMT_UNKNOWN

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

pure virtual

Set the resolution of the stream.

Default value: (0, 0)

virtual bool Argus::IOutputStreamSettings::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/Stream.h