Jetson Linux API Reference

36.4 Release
Request.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2016-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * * Neither the name of NVIDIA CORPORATION nor the names of its
14  * contributors may be used to endorse or promote products derived
15  * from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
37 #ifndef _ARGUS_REQUEST_H
38 #define _ARGUS_REQUEST_H
39 
40 namespace Argus
41 {
42 
49 class Request : public InterfaceProvider, public Destructable
50 {
51 protected:
52  ~Request() {}
53 };
54 
74 DEFINE_UUID(InterfaceID, IID_REQUEST, eb9b3750,fc8d,455f,8e0f,91,b3,3b,d9,4e,c5);
75 class IRequest : public Interface
76 {
77 public:
78  static const InterfaceID& id() { return IID_REQUEST; }
79 
84  virtual Status enableOutputStream(OutputStream* stream) = 0;
85 
89  virtual Status disableOutputStream(OutputStream* stream) = 0;
90 
94  virtual Status clearOutputStreams() = 0;
95 
100  virtual Status enableInputStream(InputStream *stream, InputStreamSettings *streamSettings) = 0;
101 
105  virtual Status disableInputStream(InputStream *stream, InputStreamSettings *streamSettings) = 0;
106 
110  virtual Status clearInputStreams() = 0;
111 
118  virtual Status getOutputStreams(std::vector<OutputStream*>* streams) const = 0;
119 
126  virtual Status getInputStreams(std::vector<InputStream*>* streams) const = 0;
127 
128 
135  virtual InterfaceProvider* getStreamSettings(const OutputStream* stream) = 0;
136 
144  virtual InterfaceProvider* getAutoControlSettings(const AutoControlId acId = 0) = 0;
145 
151  virtual InterfaceProvider* getSourceSettings() = 0;
152 
159  virtual Status setClientData(uint32_t data) = 0;
160 
164  virtual uint32_t getClientData() const = 0;
165 
169  virtual Status setPixelFormatType(const PixelFormatType& pixelFormatType) = 0;
170 
174  virtual PixelFormatType getPixelFormatType() const = 0;
175 
179  virtual Status setCVOutput(const CVOutput& cvOutput) = 0;
180 
184  virtual CVOutput getCVOutput() const = 0;
185 
189  virtual Status setEnableIspStage(bool enableIspStage) = 0;
190 
194  virtual bool getEnableIspStage() const = 0;
195 
199  virtual Status setReprocessingEnable(bool enable) = 0;
200 
204  virtual Status setMsbPadding(bool enableMsbPadding) = 0;
205 
209  virtual bool getMsbPadding() const = 0;
210 
211 protected:
213 };
214 
215 } // namespace Argus
216 
217 #endif // _ARGUS_REQUEST_H
Argus::IRequest::id
static const InterfaceID & id()
Definition: Request.h:78
Argus::OutputStream
Definition: Stream.h:59
Argus::AutoControlId
uint32_t AutoControlId
Definition: Types.h:975
Argus::IRequest::disableInputStream
virtual Status disableInputStream(InputStream *stream, InputStreamSettings *streamSettings)=0
Disables the specified input stream with the stream settings provided.
Argus::DEFINE_UUID
DEFINE_UUID(ExtensionName, EXT_BAYER_AVERAGE_MAP, 12c3de20, 64c5, 11e6, bdf4, 08, 00, 20, 0c, 9a, 66)
Argus::IRequest::getCVOutput
virtual CVOutput getCVOutput() const =0
Get output port for RGBA output.
Argus::Request
Definition: Request.h:49
Argus
Definition: BayerAverageMap.h:39
Argus::IRequest::getInputStreams
virtual Status getInputStreams(std::vector< InputStream * > *streams) const =0
Returns all enabled input streams.
Argus::InputStream
Definition: Stream.h:117
Argus::IRequest
Definition: Request.h:75
Argus::IRequest::setEnableIspStage
virtual Status setEnableIspStage(bool enableIspStage)=0
Set this to false if o/p buffer is Bayer and ISP stage needs to be skipped.
Argus::IRequest::getAutoControlSettings
virtual InterfaceProvider * getAutoControlSettings(const AutoControlId acId=0)=0
Returns the capture control settings for a given AC.
Argus::Interface
The top-level interface class.
Definition: Types.h:366
Argus::IRequest::disableOutputStream
virtual Status disableOutputStream(OutputStream *stream)=0
Disables the specified output stream.
Argus::IRequest::getPixelFormatType
virtual PixelFormatType getPixelFormatType() const =0
Check if 2 simultaneous outputs are needed.
Argus::IRequest::clearOutputStreams
virtual Status clearOutputStreams()=0
Disables all output streams.
Argus::IRequest::getOutputStreams
virtual Status getOutputStreams(std::vector< OutputStream * > *streams) const =0
Returns all enabled output streams.
Argus::InterfaceID
A unique identifier for a libargus Interface.
Definition: Types.h:376
Argus::Request::~Request
~Request()
Definition: Request.h:52
Argus::InterfaceProvider
The base interface for a class that provides libargus Interfaces.
Definition: Types.h:397
Argus::IRequest::getClientData
virtual uint32_t getClientData() const =0
Gets the client data for the request.
Argus::IRequest::enableOutputStream
virtual Status enableOutputStream(OutputStream *stream)=0
Enables the specified output stream.
Argus::InputStreamSettings
Definition: Stream.h:135
Argus::IRequest::setMsbPadding
virtual Status setMsbPadding(bool enableMsbPadding)=0
Set the flag to enable msb padding.
Argus::IRequest::getSourceSettings
virtual InterfaceProvider * getSourceSettings()=0
Returns the source settings for the request.
Argus::IRequest::clearInputStreams
virtual Status clearInputStreams()=0
Disables all input streams.
Argus::IRequest::getMsbPadding
virtual bool getMsbPadding() const =0
Check if msb padding is enabled/disabled.
Argus::IRequest::setReprocessingEnable
virtual Status setReprocessingEnable(bool enable)=0
Set the flag to enable reprocessing mode for this request.
Argus::IRequest::getStreamSettings
virtual InterfaceProvider * getStreamSettings(const OutputStream *stream)=0
Returns the Stream settings for a particular stream in the request.
Argus::IRequest::enableInputStream
virtual Status enableInputStream(InputStream *stream, InputStreamSettings *streamSettings)=0
Enables the specified input stream and stream settings.
Argus::IRequest::~IRequest
~IRequest()
Definition: Request.h:212
Argus::IRequest::getEnableIspStage
virtual bool getEnableIspStage() const =0
Check if ISP stage is enabled/disabled.
Argus::IRequest::setCVOutput
virtual Status setCVOutput(const CVOutput &cvOutput)=0
Set the output port for RGBA output.
Argus::IRequest::setClientData
virtual Status setClientData(uint32_t data)=0
Sets the client data for the request.
Argus::Destructable
A top level object class for libargus objects that are created and owned by the client.
Definition: Types.h:434
Argus::IRequest::setPixelFormatType
virtual Status setPixelFormatType(const PixelFormatType &pixelFormatType)=0
Set this if need 2 simultaneous outputs i.e.
Argus::Status
Status
Status values returned by API function calls.
Definition: Types.h:97