Libargus API
Libargus Camera API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
Argus
Argus.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016-2017, 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
/**
30
* @file
31
* <b>Libargus API: Main Include File</b>
32
*
33
* @b Description: This is the main include file for libargus applications.
34
*/
35
36
#ifndef _ARGUS_H
37
#define _ARGUS_H
38
39
/**
40
* @defgroup LibargusAPI Libargus Camera API
41
*
42
* Libargus is an API for acquiring images and associated metadata from cameras.
43
* The fundamental libargus operation is a capture:
44
* acquiring an image from a sensor and processing it into a final output image.
45
*
46
* Currently, libargus is supported on Android and L4T on NVIDIA Tegra TX1-based platforms.
47
*
48
* Libargus is designed to address a number of fundamental requirements:
49
*
50
* - Support for a wide variety of use cases (traditional photography, computational photography,
51
* video, computer vision, and other application areas.)
52
* To this end, libargus is a frame-based API; every capture is triggered by an explicit request that
53
* specifies exactly how the capture is to be performed.
54
*
55
* - Support for multiple platforms, including L4T and Android.
56
*
57
* - Efficient and simple integration into applications and larger frameworks. In support of this,
58
* libargus delivers images with EGLStreams, which are directly supported by other system components
59
* such as OpenGL and Cuda, and which require no buffer copies during delivery to the consumer.
60
*
61
* - Expansive metadata along with each output image.
62
*
63
* - Support for multiple sensors, including both separate control over independent sensors and
64
* access to synchronized multi-sensor configurations. (The latter are unsupported in the current
65
* release. When support is added, it will be available on only some NVIDIA platforms.)
66
*
67
* - Version stability and extensibility, which are provided by unchanging virtual interfaces and
68
* the ability for vendors to add specialized extension interfaces.
69
*
70
* Libargus provides functionality in a number of different areas:
71
*
72
* - Captures with a wide variety of settings.
73
*
74
* - Optional autocontrol (such as auto-exposure and auto-white-balance.)
75
*
76
* - Libraries that consume the EGLStream outputs in different ways; for example, jpeg encoding or
77
* direct application access to the images.
78
*
79
* - Metadata delivery via both libargus events and EGLStream metadata.
80
*
81
* - Image post-processing such as noise reduction and edge sharpening.
82
*
83
* - Notification of errors, image acquisition start, and other events via synchronous event queues.
84
*
85
* Functionality not provided by libargus:
86
*
87
* - Auto-focus. (Planned to be added in a later release.)
88
*
89
* - Reprocessing of YUV images (such as that required by Android’s Zero Shutter Lag feature.)
90
*
91
* - Reprocessing of Bayer (raw) images. (Planned to be added in a later release.)
92
*
93
* - Output of Bayer (raw) images. (Planned to be added in a later release.)
94
*
95
* @defgroup ArgusObjects Objects and Interfaces
96
* This module provides a list of libargus objects and the interfaces that they support.
97
* Children of objects in this list describe either child InterfaceProviders provided by
98
* the object or specialized types of the object (ie. Event types).
99
* @ingroup LibargusAPI
100
*
101
* @defgroup ArgusExtensions Extensions
102
* This module provides a list of extensions currently available for libargus.
103
* @ingroup LibargusAPI
104
*/
105
106
/**
107
* @ifnot SWDOCS_L4T <!-- Hides open-source doxy entries in L4T build.-->
108
* @mainpage
109
* Proceed to the \ref LibargusAPI module for libargus documentation.
110
* @endif
111
*/
112
113
#include <stddef.h>
114
115
#include "
Argus/UUID.h
"
116
#include "
Argus/Types.h
"
117
#include "
Argus/Stream.h
"
118
119
#include "
Argus/BufferStream.h
"
120
#include "
Argus/CameraDevice.h
"
121
#include "
Argus/CameraProvider.h
"
122
#include "
Argus/CaptureMetadata.h
"
123
#include "
Argus/CaptureSession.h
"
124
#include "
Argus/EGLImage.h
"
125
#include "
Argus/EGLStream.h
"
126
#include "
Argus/EGLSync.h
"
127
#include "
Argus/Event.h
"
128
#include "
Argus/EventProvider.h
"
129
#include "
Argus/EventQueue.h
"
130
#include "
Argus/Request.h
"
131
#include "
Argus/Settings.h
"
132
133
#endif
Generated on Mon Aug 7 2017 10:33:31 for Libargus API by
1.8.1