Jetson Linux API Reference

32.7.5 Release
Argus::ICaptureSession Class Referenceabstract

Detailed Description

Interface to the core CaptureSession methods.

Definition at line 65 of file CaptureSession.h.

Inheritance diagram for Argus::ICaptureSession:
Collaboration diagram for Argus::ICaptureSession:

Public Member Functions

virtual Status cancelRequests ()=0
 Removes all previously submitted requests from the queue. More...
 
virtual uint32_t capture (const Request *request, uint64_t timeout=TIMEOUT_INFINITE, Status *status=NULL)=0
 Submits a single capture request. More...
 
virtual uint32_t captureBurst (const std::vector< const Request * > &requestList, uint64_t timeout=TIMEOUT_INFINITE, Status *status=NULL)=0
 Submits a burst of requests. More...
 
virtual uint32_t maxBurstRequests () const =0
 Returns the maximum number of capture requests that can be included in a burst capture. More...
 
virtual RequestcreateRequest (const CaptureIntent &intent=CAPTURE_INTENT_PREVIEW, Status *status=NULL)=0
 Creates a request object that can be later used with this CaptureSession. More...
 
virtual OutputStreamSettingscreateOutputStreamSettings (const StreamType &type, Status *status=NULL)=0
 Creates an OutputStreamSettings object that is used to configure the creation of an OutputStream (see createOutputStream). More...
 
virtual OutputStreamcreateOutputStream (const OutputStreamSettings *settings, Status *status=NULL)=0
 Creates an OutputStream object using the settings configured by an OutputStreamSettings object (see createOutputStreamSettings). More...
 
virtual bool isRepeating () const =0
 Returns true if there is a streaming request in place. More...
 
virtual Status repeat (const Request *request)=0
 Sets up a repeating request. More...
 
virtual Status repeatBurst (const std::vector< const Request * > &requestList)=0
 Sets up a repeating burst request. More...
 
virtual Range< uint32_t > stopRepeat ()=0
 Shuts down any repeating capture. More...
 
virtual Status waitForIdle (uint64_t timeout=TIMEOUT_INFINITE) const =0
 Waits until all pending captures are complete. More...
 

Static Public Member Functions

static const InterfaceIDid ()
 

Protected Member Functions

 ~ICaptureSession ()
 

Constructor & Destructor Documentation

◆ ~ICaptureSession()

Argus::ICaptureSession::~ICaptureSession ( )
inlineprotected

Definition at line 228 of file CaptureSession.h.

Member Function Documentation

◆ cancelRequests()

virtual Status Argus::ICaptureSession::cancelRequests ( )
pure virtual

Removes all previously submitted requests from the queue.

When all requests are cancelled, both the FIFO and the streaming requests will be removed. If repeat captures are enabled, an implicit call to ICaptureSession::stopRepeat() will be made before cancelling the requests.

Returns
success/status of this call.

◆ capture()

virtual uint32_t Argus::ICaptureSession::capture ( const Request request,
uint64_t  timeout = TIMEOUT_INFINITE,
Status status = NULL 
)
pure virtual

Submits a single capture request.

For blocking capture session (created by ICameraProvider::createBlockingCaptureSession), it will wait until the request is accepted by lower level driver. For non-blocking capture session (created by ICameraProvider::createCaptureSession), it will queue a copy of the request to a queue and return.

The client can submit the same request instance in a future call. The request will be copied by the runtime.

Parameters
[in]requestParameters for the capture.
[in]timeoutThe timeout in nanoseconds. The camera device will try to issue the request within the timeout period. If it can't it will return and set status to STATUS_UNAVAILABLE.
[out]statusAn optional pointer to return success/status.
Returns
the capture id, a number that uniquely identifies (within this session) the request. If the submission request failed, zero will be returned. The request could fail because the timeout is reached, or because some parameter(s) of the request are invalid.

◆ captureBurst()

virtual uint32_t Argus::ICaptureSession::captureBurst ( const std::vector< const Request * > &  requestList,
uint64_t  timeout = TIMEOUT_INFINITE,
Status status = NULL 
)
pure virtual

Submits a burst of requests.

For blocking capture session (created by ICameraProvider::createBlockingCaptureSession), it will wait until the first request is accepted by lower level driver. For non-blocking capture session (created by ICameraProvider::createCaptureSession), it will queue a copy of the requests to a queue and return.

The runtime will either accept the entire burst or refuse it completely (that is, no partial bursts will be accepted).

Parameters
[in]requestListThe list of requests that make up the burst.
[in]timeoutThe timeout in nanoseconds. The camera device will try to issue the request within the timeout period. If it can't it will return and set status to STATUS_UNAVAILABLE.
[out]statusAn optional pointer to return success/status.
Returns
the capture id of the capture associated with the first request in the burst. The capture id will increment by one for the captures associated with each successive request. If the submission request failed, zero will be returned. The request could fail because the timeout is reached, or because some parameter(s) of the request are invalid.

◆ createOutputStream()

virtual OutputStream* Argus::ICaptureSession::createOutputStream ( const OutputStreamSettings settings,
Status status = NULL 
)
pure virtual

Creates an OutputStream object using the settings configured by an OutputStreamSettings object (see createOutputStreamSettings).

Parameters
[in]settingsThe settings to use for the new output stream.
[out]statusAn optional pointer to return success/status.
Returns
The newly created OutputStream, or NULL on failure.

◆ createOutputStreamSettings()

virtual OutputStreamSettings* Argus::ICaptureSession::createOutputStreamSettings ( const StreamType &  type,
Status status = NULL 
)
pure virtual

Creates an OutputStreamSettings object that is used to configure the creation of an OutputStream (see createOutputStream).

The type of OutputStream that will be configured and created by these settings are determined by the StreamType.

Parameters
[in]typeThe type of the OutputStream to configure/create with these settings.
[out]statusAn optional pointer to return success/status.
Returns
The newly created OutputStreamSettings, or NULL on failure.

◆ createRequest()

virtual Request* Argus::ICaptureSession::createRequest ( const CaptureIntent &  intent = CAPTURE_INTENT_PREVIEW,
Status status = NULL 
)
pure virtual

Creates a request object that can be later used with this CaptureSession.

Parameters
[in]intentOptional parameter that specifies the intent of the capture request and instructs the driver to populate the request with recommended settings for that intent.
[out]statusAn optional pointer to return success/status.
See also
ICaptureMetadata::getClientData()

◆ id()

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

Definition at line 68 of file CaptureSession.h.

◆ isRepeating()

virtual bool Argus::ICaptureSession::isRepeating ( ) const
pure virtual

Returns true if there is a streaming request in place.

◆ maxBurstRequests()

virtual uint32_t Argus::ICaptureSession::maxBurstRequests ( ) const
pure virtual

Returns the maximum number of capture requests that can be included in a burst capture.

◆ repeat()

virtual Status Argus::ICaptureSession::repeat ( const Request request)
pure virtual

Sets up a repeating request.

This is a convenience method that will queue a request whenever the request queue is empty and the camera is ready to accept new requests.

To stop repeating the request, call stopRepeat().

Parameters
[in]requestThe request to repeat.
Returns
success/status of the call.

◆ repeatBurst()

virtual Status Argus::ICaptureSession::repeatBurst ( const std::vector< const Request * > &  requestList)
pure virtual

Sets up a repeating burst request.

This is a convenience method that will queue a request whenever the request queue is empty and the camera is ready to accept new requests.

To stop repeating the requests, call stopRepeat().

Parameters
[in]requestListThe list of requests that make up the repeating burst.
Returns
success/status of the call.

◆ stopRepeat()

virtual Range<uint32_t> Argus::ICaptureSession::stopRepeat ( )
pure virtual

Shuts down any repeating capture.

Returns
The range of capture ids generated by the most recent repeat() / repeatBurst() call. Note that some captures within that range may have been generated by explicit capture() calls made while the repeating capture was in force. If no captures were generated by the most recent repeat() / repeatBurst() call, Range<uint32_t>(0,0) will be returned.

◆ waitForIdle()

virtual Status Argus::ICaptureSession::waitForIdle ( uint64_t  timeout = TIMEOUT_INFINITE) const
pure virtual

Waits until all pending captures are complete.

Parameters
[in]timeoutThe timeout value (in nanoseconds) for this call. If the pipe has not become idle when the timeout expires, the call will return STATUS_TIMEOUT.

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