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
}
// namespace Argus
108
109
#endif // _ARGUS_STREAM_H
Generated on Mon Nov 20 2023 06:41:18 for Libargus API by
1.8.1