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::ICaptureSession Class Reference
CaptureSession

Interface to the core CaptureSession methods. More...

`#include <CaptureSession.h>`

Inheritance diagram for Argus::ICaptureSession:

List of all members.

## Public Member Functions

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

## Static Public Member Functions

static const InterfaceID & | id ()

## Protected Member Functions

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

## Detailed Description

Interface to the core CaptureSession methods.

Definition at line 65 of file CaptureSession.h.

## Constructor & Destructor Documentation

Argus::ICaptureSession::~ICaptureSession | ( |  | ) |

inlineprotected

Definition at line 220 of file CaptureSession.h.

## Member Function Documentation

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.

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

pure virtual

Submits a single capture request to the request queue.

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

Parameters:

  [in] | request | Parameters for the capture.
  [in] | timeout | The 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] | status | An 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.

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 to the request queue.

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

Parameters:

  [in] | requestList | The list of requests that make up the burst.
  [in] | timeout | The 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] | status | An 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.

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

pure virtual

Creates an OutputStream object.

All OutputStream objects are associated with and EGLStream, which is created and owned by this object and left in the CREATED state upon return. This does not connect as a producer for this EGLStream until the first request outputting to the stream; thus, the application is expected to connect the consumer to this stream before the first request is made otherwise the request will fail.

Parameters:

  [in] | settings | The settings to use for the new output stream.
  [out] | status | An optional pointer to return success/status.

Returns:
  The newly created OutputStream, or NULL on failure.

virtual OutputStreamSettings* Argus::ICaptureSession::createOutputStreamSettings | ( | Status * | status = `NULL` | ) |

pure virtual

Creates an OutputStreamSettings object, which is used to configure the settings for OutputStream creation via createOutputStream.

Parameters:

  [out] | status | An optional pointer to return success/status.

Returns:
  The newly created OutputStream, or NULL on failure.

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] | intent | Optional parameter that specifies the intent of the capture request and instructs the driver to populate the request with recommended settings for that intent.
  [out] | status | An optional pointer to return success/status.

See also:
  ICaptureMetadata::getClientData()

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

inlinestatic

Definition at line 68 of file CaptureSession.h.

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

pure virtual

Returns true if there is a streaming request in place.

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

pure virtual

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

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] | request | The request to repeat.

Returns:
  success/status of the call.

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] | requestList | The list of requests that make up the repeating burst.

Returns:
  success/status of the call.

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.

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

pure virtual

Waits until all pending captures are complete.

Parameters:

  [in] | timeout | The 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:

- include/Argus/CaptureSession.h