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
Stream.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: Stream API</b>
32
*
33
* @b Description: Defines stream related objects and interfaces.
34
*/
35
36
#ifndef _ARGUS_STREAM_H
37
#define _ARGUS_STREAM_H
38
39
namespace
Argus
40
{
41
42
/**
43
* The general operation, buffer source, and interfaces supported by a stream
44
* object are defined by its core StreamType. The only StreamType currently
45
* supported is STREAM_TYPE_EGL (see EGLStream.h).
46
*/
47
DEFINE_NAMED_UUID_CLASS
(StreamType);
48
49
/**
50
* Object representing an output stream capable of receiving image frames from a capture.
51
*
52
* OutputStream objects are used as the destination for image frames output from
53
* capture requests. The operation of a stream, the source for its buffers, and the
54
* interfaces it supports depend on the StreamType of the stream.
55
*
56
* @defgroup ArgusOutputStream OutputStream
57
* @ingroup ArgusObjects
58
*/
59
class
OutputStream
:
public
InterfaceProvider
,
public
Destructable
60
{
61
protected
:
62
~OutputStream
() {}
63
};
64
65
/**
66
* Container for settings used to configure/create an OutputStream.
67
*
68
* The interfaces and configuration supported by these settings objects
69
* depend on the StreamType that was provided during settings creation
70
* (see ICaptureSession::createOutputStreamSettings).
71
* These objects are passed to ICaptureSession::createOutputStream to create
72
* OutputStream objects, after which they may be destroyed.
73
*
74
* @defgroup ArgusOutputStreamSettings OutputStreamSettings
75
* @ingroup ArgusObjects
76
*/
77
class
OutputStreamSettings
:
public
InterfaceProvider
,
public
Destructable
78
{
79
protected
:
80
~OutputStreamSettings
() {}
81
};
82
83
/**
84
* @class IOutputStreamSettings
85
*
86
* Interface that exposes the settings common to all OutputStream types.
87
*
88
* @ingroup ArgusOutputStreamSettings
89
*/
90
DEFINE_UUID
(InterfaceID, IID_OUTPUT_STREAM_SETTINGS, 52f2b830,3d52,11e6,bdf4,08,00,20,0c,9a,66);
91
class
IOutputStreamSettings
:
public
Interface
92
{
93
public
:
94
static
const
InterfaceID
&
id
() {
return
IID_OUTPUT_STREAM_SETTINGS; }
95
96
/**
97
* Set the camera device to use as the source for this stream.
98
* Default value: First available device in the session.
99
*/
100
virtual
Status
setCameraDevice
(
CameraDevice
* device) = 0;
101
virtual
CameraDevice
*
getCameraDevice
()
const
= 0;
102
103
protected
:
104
~IOutputStreamSettings
() {}
105
};
106
107
/**
108
* Object representing an input stream required for reprocessing stream using libargus.
109
*
110
* InputStream objects are used as the source stream for capture request.
111
* The operation of a stream, the consumer of its buffers, and the
112
* interfaces it supports is based on STREAM_TYPE_EGL.
113
*
114
* @defgroup ArgusInputStream InputStream
115
* @ingroup ArgusObjects
116
*/
117
class
InputStream
:
public
InterfaceProvider
,
public
Destructable
118
{
119
protected
:
120
virtual
~InputStream
() {}
121
};
122
123
/**
124
* Container for settings used to configure/create an InputStream.
125
*
126
* The interfaces and configuration supported by these settings objects
127
* is based on STREAM_TYPE_EGL that was provided during settings creation
128
* (see ICaptureSession::createInputStreamSettings).
129
* These objects are passed to ICaptureSession::createInputStream to create
130
* InputStream objects, after which they may be destroyed.
131
*
132
* @defgroup ArgusInputStreamSettings InputStreamSettings
133
* @ingroup ArgusObjects
134
*/
135
class
InputStreamSettings
:
public
InterfaceProvider
,
public
Destructable
136
{
137
protected
:
138
virtual
~InputStreamSettings
() {};
139
};
140
141
/**
142
* @class IInputStreamSettings
143
*
144
* Interface that exposes the settings common to all InputStream types.
145
*
146
* @ingroup ArgusInputStreamSettings
147
*/
148
DEFINE_UUID
(InterfaceID, IID_INPUT_STREAM_SETTINGS, 9609cd10,804b,11ec,bf44,08,00,20,0c,9a,66);
149
class
IInputStreamSettings
:
public
Interface
150
{
151
public
:
152
static
const
InterfaceID
&
id
() {
return
IID_INPUT_STREAM_SETTINGS; }
153
154
/**
155
* Set the camera device to use this stream.
156
* Default value: First available device in the session.
157
*/
158
virtual
Status
setCameraDevice
(
CameraDevice
* device) = 0;
159
virtual
CameraDevice
*
getCameraDevice
()
const
= 0;
160
161
protected
:
162
~IInputStreamSettings
() {}
163
};
164
165
}
// namespace Argus
166
167
#endif // _ARGUS_STREAM_H
Generated on Mon Jan 16 2023 08:24:20 for Libargus API by
1.8.1