Jetson Linux API Reference

32.7.5 Release
Argus::IEGLOutputStreamSettings Class Referenceabstract

Detailed Description

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

Definition at line 79 of file EGLStream.h.

Inheritance diagram for Argus::IEGLOutputStreamSettings:
Collaboration diagram for Argus::IEGLOutputStreamSettings:

Public Member Functions

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

Static Public Member Functions

static const InterfaceIDid ()
 

Protected Member Functions

 ~IEGLOutputStreamSettings ()
 

Constructor & Destructor Documentation

◆ ~IEGLOutputStreamSettings()

Argus::IEGLOutputStreamSettings::~IEGLOutputStreamSettings ( )
inlineprotected

Definition at line 191 of file EGLStream.h.

Member Function Documentation

◆ getEGLDisplay()

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

◆ getExposureCount()

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

◆ getFifoLength()

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

◆ getMetadataEnable()

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

◆ getMode()

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

◆ getPixelFormat()

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

◆ getResolution()

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

◆ id()

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

Definition at line 82 of file EGLStream.h.

◆ setEGLDisplay()

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.

◆ setExposureCount()

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

◆ setFifoLength()

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

◆ setMetadataEnable()

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.

◆ setMode()

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

◆ setPixelFormat()

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

Set the format of the stream.

Default value: PIXEL_FMT_UNKNOWN

◆ setResolution()

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

Set the resolution of the stream.

Default value: (0, 0)

◆ supportsOutputStreamFormat()

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]sensorModeThe sensor mode being queried for the output pixel type.
[in]outputFormatThe output pixel format being queried for support.

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