Jetson Linux API Reference

32.7.4 Release
Settings.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016-2020, 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 
36 #ifndef _ARGUS_SETTINGS_H
37 #define _ARGUS_SETTINGS_H
38 
39 namespace Argus
40 {
41 
49 DEFINE_UUID(InterfaceID, IID_SOURCE_SETTINGS, eb7ae38c,3c62,4161,a92a,a6,4f,ba,c6,38,83);
50 class ISourceSettings : public Interface
51 {
52 public:
53  static const InterfaceID& id() { return IID_SOURCE_SETTINGS; }
54 
65  virtual Status setExposureTimeRange(const Range<uint64_t>& exposureTimeRange) = 0;
66 
70  virtual Range<uint64_t> getExposureTimeRange() const = 0;
71 
80  virtual Status setFocusPosition(int32_t position) = 0;
81 
85  virtual int32_t getFocusPosition() const = 0;
86 
95  virtual Status setAperturePosition(int32_t position) = 0;
96 
100  virtual int32_t getAperturePosition() const = 0;
101 
110  virtual Status setApertureMotorSpeed(float speed) = 0;
111 
115  virtual float getApertureMotorSpeed() const = 0;
116 
124  virtual Status setApertureFNumber(float fnumber) = 0;
125 
129  virtual float getApertureFNumber() const = 0;
130 
140  virtual Status setFrameDurationRange(const Range<uint64_t>& frameDurationRange) = 0;
141 
145  virtual Range<uint64_t> getFrameDurationRange() const = 0;
146 
156  virtual Status setGainRange(const Range<float>& gainRange) = 0;
157 
161  virtual Range<float> getGainRange() const = 0;
162 
172  virtual Status setSensorMode(SensorMode* mode) = 0;
173 
177  virtual SensorMode* getSensorMode() const = 0;
178 
187  virtual Status setOpticalBlack(const BayerTuple<float>& opticalBlackLevels) = 0;
188 
194  virtual BayerTuple<float> getOpticalBlack() const = 0;
195 
204  virtual Status setOpticalBlackEnable(bool enable) = 0;
205 
213  virtual bool getOpticalBlackEnable() const = 0;
214 
215 
216 protected:
218 };
219 
227 DEFINE_UUID(InterfaceID, IID_AUTO_CONTROL_SETTINGS, 1f2ad1c6,cb13,440b,bc95,3f,fd,0d,19,91,db);
229 {
230 public:
231  static const InterfaceID& id() { return IID_AUTO_CONTROL_SETTINGS; }
232 
239  virtual Status setAeAntibandingMode(const AeAntibandingMode& mode) = 0;
240 
244  virtual AeAntibandingMode getAeAntibandingMode() const = 0;
245 
252  virtual Status setAeLock(bool lock) = 0;
253 
257  virtual bool getAeLock() const = 0;
258 
270  virtual Status setAeRegions(const std::vector<AcRegion>& regions) = 0;
271 
278  virtual Status getAeRegions(std::vector<AcRegion>* regions) const = 0;
279 
287  virtual Status setBayerHistogramRegion(const Rectangle<uint32_t>& region) = 0;
288 
292  virtual Rectangle<uint32_t> getBayerHistogramRegion() const = 0;
293 
300  virtual Status setAwbLock(bool lock) = 0;
301 
305  virtual bool getAwbLock() const = 0;
306 
313  virtual Status setAwbMode(const AwbMode& mode) = 0;
314 
318  virtual AwbMode getAwbMode() const = 0;
319 
329  virtual Status setAwbRegions(const std::vector<AcRegion>& regions) = 0;
330 
337  virtual Status getAwbRegions(std::vector<AcRegion>* regions) const = 0;
338 
348  virtual Status setAfRegions(const std::vector<AcRegion>& regions) = 0;
349 
356  virtual Status getAfRegions(std::vector<AcRegion>* regions) const = 0;
357 
364  virtual Status setWbGains(const BayerTuple<float>& gains) = 0;
365 
371  virtual BayerTuple<float> getWbGains() const = 0;
372 
377 
390  virtual Status setColorCorrectionMatrix(const std::vector<float>& matrix) = 0;
391 
398  virtual Status getColorCorrectionMatrix(std::vector<float>* matrix) const = 0;
399 
407  virtual Status setColorCorrectionMatrixEnable(bool enable) = 0;
408 
412  virtual bool getColorCorrectionMatrixEnable() const = 0;
413 
425  virtual Status setColorSaturation(float saturation) = 0;
426 
430  virtual float getColorSaturation() const = 0;
431 
439  virtual Status setColorSaturationEnable(bool enable) = 0;
440 
444  virtual bool getColorSaturationEnable() const = 0;
445 
460  virtual Status setColorSaturationBias(float bias) = 0;
461 
465  virtual float getColorSaturationBias() const = 0;
466 
474  virtual Status setExposureCompensation(float ev) = 0;
475 
479  virtual float getExposureCompensation() const = 0;
480 
485  virtual uint32_t getToneMapCurveSize(RGBChannel channel) const = 0;
486 
497  virtual Status setToneMapCurve(RGBChannel channel, const std::vector<float>& curve) = 0;
498 
507  virtual Status getToneMapCurve(RGBChannel channel, std::vector<float>* curve) const = 0;
508 
515  virtual Status setToneMapCurveEnable(bool enable) = 0;
516 
520  virtual bool getToneMapCurveEnable() const = 0;
521 
528  virtual Status setIspDigitalGainRange(const Range<float>& gain) = 0;
529 
535  virtual Range<float> getIspDigitalGainRange() const = 0;
536 
537 protected:
539 };
540 
548 DEFINE_UUID(InterfaceID, IID_STREAM_SETTINGS, c477aeaf,9cc8,4467,a834,c7,07,d7,b6,9f,a4);
550 {
551 public:
552  static const InterfaceID& id() { return IID_STREAM_SETTINGS; }
553 
562  virtual Status setSourceClipRect(const Rectangle<float>& clipRect) = 0;
563 
567  virtual Rectangle<float> getSourceClipRect() const = 0;
568 
578  virtual void setPostProcessingEnable(bool enable) = 0;
579 
583  virtual bool getPostProcessingEnable() const = 0;
584 
585 protected:
587 };
588 
596 DEFINE_UUID(InterfaceID, IID_DENOISE_SETTINGS, 7A461D20,6AE1,11E6,BDF4,08,00,20,0C,9A,66);
598 {
599 public:
600  static const InterfaceID& id() { return IID_DENOISE_SETTINGS; }
601 
612  virtual Status setDenoiseMode(const DenoiseMode& mode) = 0;
613 
617  virtual DenoiseMode getDenoiseMode() const = 0;
618 
628  virtual Status setDenoiseStrength(float strength) = 0;
629 
633  virtual float getDenoiseStrength() const = 0;
634 
635 protected:
637 };
638 
646 DEFINE_UUID(InterfaceID, IID_EDGE_ENHANCE_SETTINGS, 7A461D21,6AE1,11E6,BDF4,08,00,20,0C,9A,66);
648 {
649 public:
650  static const InterfaceID& id() { return IID_EDGE_ENHANCE_SETTINGS; }
651 
662  virtual Status setEdgeEnhanceMode(const EdgeEnhanceMode& mode) = 0;
663 
667  virtual EdgeEnhanceMode getEdgeEnhanceMode() const = 0;
668 
678  virtual Status setEdgeEnhanceStrength(float strength) = 0;
679 
683  virtual float getEdgeEnhanceStrength() const = 0;
684 
685 protected:
687 };
688 
689 } // namespace Argus
690 
691 #endif // _ARGUS_SETTINGS_H
Argus::IStreamSettings::getPostProcessingEnable
virtual bool getPostProcessingEnable() const =0
Returns the post-processing enable for the stream.
Argus::ISourceSettings::getOpticalBlack
virtual BayerTuple< float > getOpticalBlack() const =0
Returns user-specified opticalBlack level per bayer phase.
Argus::DEFINE_UUID
DEFINE_UUID(ExtensionName, EXT_BAYER_AVERAGE_MAP, 12c3de20, 64c5, 11e6, bdf4, 08, 00, 20, 0c, 9a, 66)
Argus::IAutoControlSettings::setAeRegions
virtual Status setAeRegions(const std::vector< AcRegion > &regions)=0
Sets the AE regions of interest.
Argus::IAutoControlSettings::getAeAntibandingMode
virtual AeAntibandingMode getAeAntibandingMode() const =0
Returns the AE antibanding mode.
Argus::IDenoiseSettings::setDenoiseMode
virtual Status setDenoiseMode(const DenoiseMode &mode)=0
Sets the denoise (noise reduction) mode for the request.
Argus::IAutoControlSettings::setAwbMode
virtual Status setAwbMode(const AwbMode &mode)=0
Sets the AWB mode.
Argus::IEdgeEnhanceSettings::setEdgeEnhanceStrength
virtual Status setEdgeEnhanceStrength(float strength)=0
Sets the strength for the edge enhancement operation.
Argus::IAutoControlSettings::id
static const InterfaceID & id()
Definition: Settings.h:231
Argus::IAutoControlSettings::getAeRegions
virtual Status getAeRegions(std::vector< AcRegion > *regions) const =0
Returns the AE regions of interest.
Argus::IAutoControlSettings::setAeLock
virtual Status setAeLock(bool lock)=0
Sets the AE lock.
Argus::ISourceSettings::getExposureTimeRange
virtual Range< uint64_t > getExposureTimeRange() const =0
Returns the exposure time range of the source, in nanoseconds.
Argus
Definition: BayerAverageMap.h:39
Argus::IAutoControlSettings::getAwbMode
virtual AwbMode getAwbMode() const =0
Returns the AWB mode.
Argus::IStreamSettings::getSourceClipRect
virtual Rectangle< float > getSourceClipRect() const =0
Returns the clip rectangle for the stream.
Argus::IAutoControlSettings::getToneMapCurveSize
virtual uint32_t getToneMapCurveSize(RGBChannel channel) const =0
Returns the number of elements required for the tone map curve.
Argus::Size2D< uint32_t >
Argus::IAutoControlSettings::setExposureCompensation
virtual Status setExposureCompensation(float ev)=0
Sets the exposure compensation.
Argus::IEdgeEnhanceSettings::~IEdgeEnhanceSettings
~IEdgeEnhanceSettings()
Definition: Settings.h:686
Argus::IAutoControlSettings::setAfRegions
virtual Status setAfRegions(const std::vector< AcRegion > &regions)=0
Sets the AF regions of interest.
Argus::ISourceSettings::setExposureTimeRange
virtual Status setExposureTimeRange(const Range< uint64_t > &exposureTimeRange)=0
Sets the exposure time range of the source, in nanoseconds.
Argus::IAutoControlSettings::setAeAntibandingMode
virtual Status setAeAntibandingMode(const AeAntibandingMode &mode)=0
Sets the AE antibanding mode.
Argus::IDenoiseSettings
Definition: Settings.h:597
Argus::ISourceSettings::getApertureFNumber
virtual float getApertureFNumber() const =0
Returns the aperture f-number.
Argus::ISourceSettings::setOpticalBlack
virtual Status setOpticalBlack(const BayerTuple< float > &opticalBlackLevels)=0
Sets the user-specified optical black levels.
Argus::ISourceSettings::setApertureMotorSpeed
virtual Status setApertureMotorSpeed(float speed)=0
Sets the aperture motor speed in motor steps/second.
Argus::Interface
The top-level interface class.
Definition: Types.h:346
Argus::ISourceSettings::setApertureFNumber
virtual Status setApertureFNumber(float fnumber)=0
Sets the aperture f-number.
Argus::IDenoiseSettings::id
static const InterfaceID & id()
Definition: Settings.h:600
Argus::ISourceSettings::id
static const InterfaceID & id()
Definition: Settings.h:53
Argus::IAutoControlSettings::getAwbLock
virtual bool getAwbLock() const =0
Returns the AWB lock.
Argus::IAutoControlSettings::setColorSaturationBias
virtual Status setColorSaturationBias(float bias)=0
Sets the color saturation bias.
Argus::Range
Range template class.
Definition: Types.h:798
Argus::IAutoControlSettings::getExposureCompensation
virtual float getExposureCompensation() const =0
Returns the exposure compensation.
Argus::Rectangle< uint32_t >
Argus::IStreamSettings::setPostProcessingEnable
virtual void setPostProcessingEnable(bool enable)=0
Sets whether or not post-processing is enabled for this stream.
Argus::InterfaceID
A unique identifier for a libargus Interface.
Definition: Types.h:356
Argus::IStreamSettings::setSourceClipRect
virtual Status setSourceClipRect(const Rectangle< float > &clipRect)=0
Sets the clip rectangle for the stream.
Argus::IAutoControlSettings::setAwbLock
virtual Status setAwbLock(bool lock)=0
Sets the AWB lock.
Argus::ISourceSettings::getApertureMotorSpeed
virtual float getApertureMotorSpeed() const =0
Returns the aperture motor speed in motor steps/second.
Argus::IAutoControlSettings::getAfRegions
virtual Status getAfRegions(std::vector< AcRegion > *regions) const =0
Returns the AF regions of interest.
Argus::ISourceSettings::getSensorMode
virtual SensorMode * getSensorMode() const =0
Returns the sensor mode.
Argus::IAutoControlSettings::setAwbRegions
virtual Status setAwbRegions(const std::vector< AcRegion > &regions)=0
Sets the AWB regions of interest.
Argus::IAutoControlSettings::getColorCorrectionMatrix
virtual Status getColorCorrectionMatrix(std::vector< float > *matrix) const =0
Returns the user-specified color correction matrix.
Argus::IAutoControlSettings::setColorCorrectionMatrix
virtual Status setColorCorrectionMatrix(const std::vector< float > &matrix)=0
Sets the user-specified color correction matrix.
Argus::IEdgeEnhanceSettings::getEdgeEnhanceMode
virtual EdgeEnhanceMode getEdgeEnhanceMode() const =0
Returns the edge enhancement mode for the request.
Argus::IAutoControlSettings::getToneMapCurveEnable
virtual bool getToneMapCurveEnable() const =0
Returns the enable for the user-specified tone map.
Argus::ISourceSettings::setFrameDurationRange
virtual Status setFrameDurationRange(const Range< uint64_t > &frameDurationRange)=0
Sets the frame duration range, in nanoseconds.
Argus::IAutoControlSettings::~IAutoControlSettings
~IAutoControlSettings()
Definition: Settings.h:538
Argus::IStreamSettings
Definition: Settings.h:549
Argus::IAutoControlSettings::getColorSaturationEnable
virtual bool getColorSaturationEnable() const =0
Returns the enable for the user-specified color saturation.
Argus::IAutoControlSettings::getAwbRegions
virtual Status getAwbRegions(std::vector< AcRegion > *regions) const =0
Returns the AWB regions of interest.
Argus::IDenoiseSettings::getDenoiseMode
virtual DenoiseMode getDenoiseMode() const =0
Returns the denoise mode for the request.
Argus::IAutoControlSettings::getColorSaturationBias
virtual float getColorSaturationBias() const =0
Returns the color saturation bias.
Argus::IAutoControlSettings::getColorSaturation
virtual float getColorSaturation() const =0
Returns the user-specified absolute color saturation (.
Argus::BayerTuple
BayerTuple template class.
Definition: Types.h:596
Argus::IAutoControlSettings::getToneMapCurve
virtual Status getToneMapCurve(RGBChannel channel, std::vector< float > *curve) const =0
Returns the user-specified tone map curve for a channel on the stream.
Argus::ISourceSettings::setFocusPosition
virtual Status setFocusPosition(int32_t position)=0
Sets the focus position, in focuser units.
Argus::RGBChannel
RGBChannel
Color channel constants for RGB data.
Definition: Types.h:158
Argus::IAutoControlSettings::getBayerHistogramRegion
virtual Rectangle< uint32_t > getBayerHistogramRegion() const =0
Returns the rectangle of the bayer histogram region of interest.
Argus::IStreamSettings::~IStreamSettings
~IStreamSettings()
Definition: Settings.h:586
Argus::IStreamSettings::id
static const InterfaceID & id()
Definition: Settings.h:552
Argus::IEdgeEnhanceSettings::setEdgeEnhanceMode
virtual Status setEdgeEnhanceMode(const EdgeEnhanceMode &mode)=0
Sets the edge enhancement mode for the request.
Argus::ISourceSettings::getGainRange
virtual Range< float > getGainRange() const =0
Returns the gain range.
Argus::IEdgeEnhanceSettings::id
static const InterfaceID & id()
Definition: Settings.h:650
Argus::IEdgeEnhanceSettings::getEdgeEnhanceStrength
virtual float getEdgeEnhanceStrength() const =0
Returns the edge enhancement strength.
Argus::IAutoControlSettings::setColorCorrectionMatrixEnable
virtual Status setColorCorrectionMatrixEnable(bool enable)=0
Enables the user-specified color correction matrix.
Argus::IDenoiseSettings::getDenoiseStrength
virtual float getDenoiseStrength() const =0
Returns the denoise strength.
Argus::IEdgeEnhanceSettings
Definition: Settings.h:647
Argus::ISourceSettings::setSensorMode
virtual Status setSensorMode(SensorMode *mode)=0
Sets the sensor mode.
Argus::ISourceSettings
Definition: Settings.h:50
Argus::IAutoControlSettings::getColorCorrectionMatrixSize
virtual Size2D< uint32_t > getColorCorrectionMatrixSize() const =0
Returns the size of the color correction matrix.
Argus::IAutoControlSettings::setWbGains
virtual Status setWbGains(const BayerTuple< float > &gains)=0
Sets the Manual White Balance gains.
Argus::IAutoControlSettings::getColorCorrectionMatrixEnable
virtual bool getColorCorrectionMatrixEnable() const =0
Returns the enable for the user-specified color correction matrix.
Argus::IAutoControlSettings::getIspDigitalGainRange
virtual Range< float > getIspDigitalGainRange() const =0
Returns the user-specified Isp Digital gain range.
Argus::ISourceSettings::setGainRange
virtual Status setGainRange(const Range< float > &gainRange)=0
Sets the gain range for the sensor.
Argus::IAutoControlSettings
Definition: Settings.h:228
Argus::ISourceSettings::getFocusPosition
virtual int32_t getFocusPosition() const =0
Returns the focus position, in focuser units.
Argus::IAutoControlSettings::getAeLock
virtual bool getAeLock() const =0
Returns the AE lock.
Argus::IAutoControlSettings::setBayerHistogramRegion
virtual Status setBayerHistogramRegion(const Rectangle< uint32_t > &region)=0
Sets the bayer histogram region of interest.
Argus::IAutoControlSettings::getWbGains
virtual BayerTuple< float > getWbGains() const =0
Returns the Manual White Balance gains.
Argus::IAutoControlSettings::setIspDigitalGainRange
virtual Status setIspDigitalGainRange(const Range< float > &gain)=0
Sets the user-specified Isp Digital gain range.
Argus::ISourceSettings::getAperturePosition
virtual int32_t getAperturePosition() const =0
Returns the aperture position.
Argus::IDenoiseSettings::~IDenoiseSettings
~IDenoiseSettings()
Definition: Settings.h:636
Argus::IDenoiseSettings::setDenoiseStrength
virtual Status setDenoiseStrength(float strength)=0
Sets the strength for the denoise operation.
Argus::ISourceSettings::setAperturePosition
virtual Status setAperturePosition(int32_t position)=0
Sets the aperture position.
Argus::ISourceSettings::getFrameDurationRange
virtual Range< uint64_t > getFrameDurationRange() const =0
Returns the frame duration range, in nanoseconds.
Argus::IAutoControlSettings::setToneMapCurveEnable
virtual Status setToneMapCurveEnable(bool enable)=0
Enables the user-specified tone map.
Argus::Status
Status
Status values returned by API function calls.
Definition: Types.h:93
Argus::ISourceSettings::getOpticalBlackEnable
virtual bool getOpticalBlackEnable() const =0
Returns whether user-specified optical black levels are enabled.
Argus::IAutoControlSettings::setColorSaturation
virtual Status setColorSaturation(float saturation)=0
Sets the user-specified absolute color saturation.
Argus::IAutoControlSettings::setToneMapCurve
virtual Status setToneMapCurve(RGBChannel channel, const std::vector< float > &curve)=0
Sets the user-specified tone map curve for a channel on the stream.
Argus::IAutoControlSettings::setColorSaturationEnable
virtual Status setColorSaturationEnable(bool enable)=0
Enables the user-specified absolute color saturation.
Argus::SensorMode
Definition: CameraDevice.h:210
Argus::ISourceSettings::setOpticalBlackEnable
virtual Status setOpticalBlackEnable(bool enable)=0
Sets whether or not user-provided optical black levels are used.
Argus::ISourceSettings::~ISourceSettings
~ISourceSettings()
Definition: Settings.h:217