Argus API
Argus Camera API
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
include
Argus
Argus.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
6
* are met:
7
* * Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* * Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* * Neither the name of NVIDIA CORPORATION nor the names of its
13
* contributors may be used to endorse or promote products derived
14
* from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
17
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#ifndef _ARGUS_H
30
#define _ARGUS_H
31
32
/**
33
* @file Argus.h
34
* This is the main include file for Argus applications.
35
* It includes all the other standard API header files.
36
*/
37
38
#include <stddef.h>
39
40
#include "
Argus/UUID.h
"
41
#include "
Argus/Types.h
"
42
43
#include "
Argus/CameraDevice.h
"
44
#include "
Argus/CameraProvider.h
"
45
#include "
Argus/CaptureMetadata.h
"
46
#include "
Argus/CaptureSession.h
"
47
#include "
Argus/Event.h
"
48
#include "
Argus/EventProvider.h
"
49
#include "
Argus/EventQueue.h
"
50
#include "
Argus/Request.h
"
51
#include "
Argus/Settings.h
"
52
#include "
Argus/Stream.h
"
53
54
#endif
55
56
/**
57
* @mainpage
58
*
59
* Argus is an API for acquiring images and associated metadata from cameras.
60
* The fundamental operation is a capture:
61
* acquiring an image from a sensor and processing it into a final output image.
62
*
63
* Currently, Argus is supported on Android and L4T on NVIDIA Tegra TX1-based platforms.
64
*
65
* Argus is designed to address a number of fundamental requirements:
66
*
67
* - Support for a wide variety of use cases (traditional photography, computational photography,
68
* video, computer vision, and other application areas.)
69
* To this end, Argus is a frame-based API; every capture is triggered by an explicit request that
70
* specifies exactly how the capture is to be performed.
71
*
72
* - Support for multiple platforms, including L4T and Android.
73
*
74
* - Efficient and simple integration into applications and larger frameworks. In support of this,
75
* Argus delivers images with EGLStreams, which are directly supported by other system components
76
* such as OpenGL and Cuda, and which require no buffer copies during delivery to the consumer.
77
*
78
* - Expansive metadata along with each output image.
79
*
80
* - Support for multiple sensors, including both separate control over independent sensors and
81
* access to synchronized multi-sensor configurations. (The latter are unsupported in the current
82
* release, and will be available on only some platforms.)
83
*
84
* - Version stability and extensibility, which are provided by unchanging virtual interfaces and
85
* the ability for vendors to add specialized extension interfaces.
86
*
87
* Argus provides functionality in a number of different areas:
88
*
89
* - Captures with a wide variety of settings.
90
*
91
* - Optional autocontrol (such as auto-exposure and auto-white-balance.)
92
*
93
* - Libraries that consume the EGLStream outputs in different ways; for example, jpeg encoding or
94
* direct application access to the images.
95
*
96
* - Metadata delivery via both Argus events and EGLStream metadata.
97
*
98
* - Image post-processing such as noise reduction and edge sharpening.
99
*
100
* - Notification of errors, image acquisition start, and other events via synchronous event queues.
101
*
102
* Functionality not provided by Argus:
103
*
104
* - Auto-focus. (Will be added in a later release.)
105
*
106
* - Reprocessing of YUV images (such as that required by Android’s Zero Shutter Lag feature.)
107
*
108
* - Reprocessing of Bayer (raw) images. (Will be added in a later release.)
109
*
110
* - Output of Bayer (raw) images. (Will be added in a later release.)
111
*/
Generated on Thu Sep 22 2016 11:27:51 for Argus API by
1.8.1