Libargus API Libargus Camera API

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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Modules
Libargus Camera API

Libargus is an API for acquiring images and associated metadata from cameras. More...

## Modules

| Objects and Interfaces
| This module provides a list of libargus objects and the interfaces that they support.
| Extensions
| This module provides a list of extensions currently available for libargus.

## Detailed Description

Libargus is an API for acquiring images and associated metadata from cameras.

The fundamental libargus operation is a capture: acquiring an image from a sensor and processing it into a final output image.

Currently, libargus is supported on Android and L4T on NVIDIA Tegra TX1-based platforms.

Libargus is designed to address a number of fundamental requirements:

- Support for a wide variety of use cases (traditional photography, computational photography, video, computer vision, and other application areas.) To this end, libargus is a frame-based API; every capture is triggered by an explicit request that specifies exactly how the capture is to be performed.

- Support for multiple platforms, including L4T and Android.

- Efficient and simple integration into applications and larger frameworks. In support of this, libargus delivers images with EGLStreams, which are directly supported by other system components such as OpenGL and Cuda, and which require no buffer copies during delivery to the consumer.

- Expansive metadata along with each output image.

- Support for multiple sensors, including both separate control over independent sensors and access to synchronized multi-sensor configurations. (The latter are unsupported in the current release. When support is added, it will be available on only some NVIDIA platforms.)

- Version stability and extensibility, which are provided by unchanging virtual interfaces and the ability for vendors to add specialized extension interfaces.

Libargus provides functionality in a number of different areas:

- Captures with a wide variety of settings.

- Optional autocontrol (such as auto-exposure and auto-white-balance.)

- Libraries that consume the EGLStream outputs in different ways; for example, jpeg encoding or direct application access to the images.

- Metadata delivery via both libargus events and EGLStream metadata.

- Image post-processing such as noise reduction and edge sharpening.

- Notification of errors, image acquisition start, and other events via synchronous event queues.

Functionality not provided by libargus:

- Auto-focus. (Planned to be added in a later release.)

- Reprocessing of YUV images (such as that required by Android’s Zero Shutter Lag feature.)

- Reprocessing of Bayer (raw) images. (Planned to be added in a later release.)

- Output of Bayer (raw) images. (Planned to be added in a later release.)