NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
NvSIPLClient.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2018-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
13 #ifndef NVSIPLCLIENT_HPP
14 #define NVSIPLCLIENT_HPP
15 
16 #include "NvSIPLCommon.hpp"
17 #include "NvSIPLISPStructs.hpp"
18 
19 #include "NvSIPLCDICommon.h"
20 
21 #include "nvscisync.h"
22 #include "nvscistream.h"
23 
24 #include <cstdint>
25 #include <string>
26 #include <memory>
27 
42 namespace nvsipl
43 {
55 {
56 public:
59  {
61  uint64_t frameCaptureTSC;
65  uint32_t numExposures;
82 
118 
121 
136 
165 
168  int8_t errorFlag;
171  };
172 
174  {
180  uint8_t *embeddedBufTop;
183  };
184 
191  {
192  public:
222  virtual void AddRef() = 0;
223 
253  virtual SIPLStatus Release() = 0;
254 
294  virtual SIPLStatus AddNvSciSyncPrefence(NvSciSyncFence const &prefence) = 0;
295 
328  virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *const postfence) = 0;
329 
331  virtual ~INvSIPLBuffer() = default;
332 
334  INvSIPLBuffer(INvSIPLBuffer& other) = delete;
335 
337  INvSIPLBuffer& operator=(INvSIPLBuffer& other) & = delete;
338 
340  INvSIPLBuffer(INvSIPLBuffer&& other) = delete;
341 
343  INvSIPLBuffer& operator=(INvSIPLBuffer&& other) & = delete;
344 
345  protected:
347  INvSIPLBuffer() = default;
348 
349  };
350 
356  {
357  public:
381  virtual NvSciBufObj GetNvSciBufImage() const = 0;
382 
407  virtual ImageMetaData const& GetImageData() const = 0;
408 
434  virtual ImageEmbeddedData const& GetImageEmbeddedData() const = 0;
435 
437  ~INvSIPLNvMBuffer() override = default;
438 
440  INvSIPLNvMBuffer(INvSIPLNvMBuffer& other) = delete;
441 
443  INvSIPLNvMBuffer& operator=(INvSIPLNvMBuffer& other) & = delete;
444 
446  INvSIPLNvMBuffer(INvSIPLNvMBuffer&& other) = delete;
447 
449  INvSIPLNvMBuffer& operator=(INvSIPLNvMBuffer&& other) & = delete;
450 
451  protected:
453  INvSIPLNvMBuffer() = default;
454 
455  };
456 
459  {
461  enum class OutputType : std::uint8_t
462  {
463  ICP,
464  ISP0,
465  ISP1,
466  ISP2,
467  };
468  };
469 
471  virtual ~INvSIPLClient() = default;
472 
474  INvSIPLClient(INvSIPLClient& other) = delete;
475 
477  INvSIPLClient& operator=(INvSIPLClient& other) & = delete;
478 
480  INvSIPLClient(INvSIPLClient&& other) = delete;
481 
483  INvSIPLClient& operator=(INvSIPLClient&& other) & = delete;
484 
485 protected:
487  INvSIPLClient() = default;
488 
489 };
490 
493 } // namespace nvsipl
494 
495 #endif // NVSIPLCLIENT_HPP
DevBlkCDIFrameTimestamp
Holds the sensor frame timestamp structure.
Definition: NvSIPLCDICommon.h:435
nvsipl::INvSIPLClient::ImageMetaData::frameTimestampInfo
DevBlkCDIFrameTimestamp frameTimestampInfo
Holds parsed embedded data frame timestamp info for the captured frame.
Definition: NvSIPLClient.hpp:120
nvsipl::NvSiplControlInfo
Defines the control info.
Definition: NvSIPLISPStructs.hpp:58
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufBottomSize
uint32_t embeddedBufBottomSize
Holds size of the bottom embedded data.
Definition: NvSIPLClient.hpp:178
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::INvSIPLNvMBuffer
INvSIPLNvMBuffer()=default
Default constructor declared in order to allow construction of derived objects.
nvsipl::INvSIPLClient::ImageMetaData::badPixelSettings
NvSiplISPBadPixelStats badPixelSettings
Holds the ISP bad pixel settings for the previous ISP output frame.
Definition: NvSIPLClient.hpp:103
nvsipl::INvSIPLClient::INvSIPLBuffer::operator=
INvSIPLBuffer & operator=(INvSIPLBuffer &other) &=delete
Delete copy assignment operator.
nvsipl::INvSIPLClient::ImageMetaData::histogramStatsValid
bool histogramStatsValid[3]
Holds a flag indicating if the ISP Histogram statistics are valid.
Definition: NvSIPLClient.hpp:128
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::operator=
INvSIPLNvMBuffer & operator=(INvSIPLNvMBuffer &other) &=delete
Delete copy assignment operator.
nvsipl::NvSiplISPLocalAvgClipStatsData
Holds local average and clip statistics block (LAC Stats).
Definition: NvSIPLISPStat.hpp:505
nvsipl::INvSIPLClient::INvSIPLBuffer::Release
virtual SIPLStatus Release()=0
Release a reference.
nvsipl::NvSiplISPLocalAvgClipStats
Holds controls for local average and clip statistics (LAC Stats).
Definition: NvSIPLISPStat.hpp:515
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImageData
virtual ImageMetaData const & GetImageData() const =0
Gets an nvsipl::INvSIPLClient::ImageMetaData associated with NvSciBufObj.
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP1
@ ISP1
Indicates the first output of ISP.
nvsipl::INvSIPLClient::ImageMetaData::sensorTempInfo
DevBlkCDITemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
Definition: NvSIPLClient.hpp:79
nvsipl::INvSIPLClient
Defines the public data structures and describes the interfaces for NvSIPL Client.
Definition: NvSIPLClient.hpp:54
nvsipl::NvSiplISPDeadPixelCorrectionStatsData
Holds dead pixel correction statistics (DPC Stats).
Definition: NvSIPLISPStat.hpp:216
nvsipl::INvSIPLClient::operator=
INvSIPLClient & operator=(INvSIPLClient &other) &=delete
Delete copy assignment operation.
nvsipl::INvSIPLClient::ImageMetaData::localAvgClipStats
NvSiplISPLocalAvgClipStatsData localAvgClipStats[2]
Holds the ISP Local Average and Clipped statistics for the previous ISP output frame.
Definition: NvSIPLClient.hpp:157
nvsipl::INvSIPLClient::ImageMetaData::histogramSettings
NvSiplISPHistogramStats histogramSettings[3]
Holds the ISP Histogram settings for the previous ISP output frame.
Definition: NvSIPLClient.hpp:143
NvSIPLCommon.hpp
NVIDIA SIPL: Common Data Structures - SIPL
nvsipl::NvSiplISPHistogramStats
Holds controls for histogram statistics (HIST Stats).
Definition: NvSIPLISPStat.hpp:439
nvsipl::INvSIPLClient::ConsumerDesc::OutputType
OutputType
Defines the types of the SIPL pipeline output.
Definition: NvSIPLClient.hpp:461
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
Definition: wfdext.h:71
nvsipl::INvSIPLClient::ImageMetaData
Defines the metadata associated with the image.
Definition: NvSIPLClient.hpp:58
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
nvsipl::INvSIPLClient::INvSIPLBuffer
Abstract interface for SIPL buffers.
Definition: NvSIPLClient.hpp:190
nvsipl::INvSIPLClient::ImageMetaData::badPixelStatsValid
bool badPixelStatsValid
Holds a flag indicating if the ISP bad pixel statistics are valid.
Definition: NvSIPLClient.hpp:89
nvsipl::INvSIPLClient::ImageMetaData::localAvgClipStatsValid
bool localAvgClipStatsValid[2]
Holds a flag indicating if the ISP Local Average and Clipped statistics are valid.
Definition: NvSIPLClient.hpp:150
nvsipl::INvSIPLClient::ImageEmbeddedData
Definition: NvSIPLClient.hpp:173
DevBlkCDIPWL
Holds the sensor companding piecewise linear (PWL) structure.
Definition: NvSIPLCDICommon.h:391
nvsipl::INvSIPLClient::ImageMetaData::deadPixelStats
NvSiplISPDeadPixelCorrectionStatsData deadPixelStats
Holds the ISP dead pixel statistics settings for the previous ISP output frame.
Definition: NvSIPLClient.hpp:117
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ICP
@ ICP
nvsipl::INvSIPLClient::INvSIPLBuffer::INvSIPLBuffer
INvSIPLBuffer()=default
Default constructor declared in order to allow construction of derived objects.
DevBlkCDIFrameReport
Holds the sensor report frame report structure.
Definition: NvSIPLCDICommon.h:367
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufBottom
uint8_t * embeddedBufBottom
Holds pointer to the bottom embedded data.
Definition: NvSIPLClient.hpp:182
nvsipl::INvSIPLClient::ImageMetaData::badPixelStats
NvSiplISPBadPixelStatsData badPixelStats
Holds the ISP bad pixel statistics for the previous ISP output frame.
Definition: NvSIPLClient.hpp:96
nvsipl::INvSIPLClient::ConsumerDesc
Describes a client of the pipeline.
Definition: NvSIPLClient.hpp:458
nvsipl::SIPLStatus
SIPLStatus
Defines the status codes returned by functions in SIPL modules.
Definition: NvSIPLCommon.hpp:153
nvsipl::INvSIPLClient::ImageMetaData::sensorExpInfo
DevBlkCDIExposure sensorExpInfo
Holds the parsed embedded data sensor exposure info for the captured frame.
Definition: NvSIPLClient.hpp:67
nvsipl::INvSIPLClient::ImageMetaData::histogramStats
NvSiplISPHistogramStatsData histogramStats[3]
Holds the ISP Histogram statistics for the previous ISP output frame.
Definition: NvSIPLClient.hpp:135
nvsipl::INvSIPLClient::~INvSIPLClient
virtual ~INvSIPLClient()=default
Default destructor.
NvSIPLCDICommon.h
DevBlkCDIWhiteBalance
Holds the sensor white balance gain structure.
Definition: NvSIPLCDICommon.h:306
nvsipl::INvSIPLClient::ImageMetaData::numExposures
uint32_t numExposures
Holds the parsed embedded data frame number of exposures info for the captured frame.
Definition: NvSIPLClient.hpp:65
nvsipl::INvSIPLClient::ImageMetaData::frameCaptureTSC
uint64_t frameCaptureTSC
Holds the TSC timestamp of the end of frame for capture.
Definition: NvSIPLClient.hpp:61
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::~INvSIPLNvMBuffer
~INvSIPLNvMBuffer() override=default
Default destructor.
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP0
@ ISP0
Indicates the unprocessed output of the image sensor.
nvsipl::INvSIPLClient::ImageMetaData::controlInfo
NvSiplControlInfo controlInfo
Holds the control information.
Definition: NvSIPLClient.hpp:170
nvsipl::INvSIPLClient::ImageMetaData::sensorReportInfo
DevBlkCDIFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
Definition: NvSIPLClient.hpp:77
DevBlkCDIIllumination
Holds the sensor illumination control structure.
Definition: NvSIPLCDICommon.h:327
nvsipl::INvSIPLClient::ImageMetaData::frameCaptureStartTSC
uint64_t frameCaptureStartTSC
Holds the TSC timestamp of the start of frame for capture.
Definition: NvSIPLClient.hpp:63
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufTop
uint8_t * embeddedBufTop
Holds pointer to the top embedded data.
Definition: NvSIPLClient.hpp:180
NvSIPLISPStructs.hpp
NVIDIA SIPL: ISP Definitions - NvSIPL Client
nvsipl::INvSIPLClient::ImageMetaData::frameSeqNumInfo
DevBlkCDIFrameSeqNum frameSeqNumInfo
Holds the parsed embedded data frame sequence number info for the captured frame.
Definition: NvSIPLClient.hpp:81
DevBlkCDITemperature
Holds the sensor temperature structure.
Definition: NvSIPLCDICommon.h:343
nvsipl::INvSIPLClient::INvSIPLBuffer::AddRef
virtual void AddRef()=0
Adds a reference.
nvsipl::NvSiplISPBadPixelStatsData
Holds bad pixel statistics (BP Stats).
Definition: NvSIPLISPStat.hpp:102
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:256
nvsipl::NvSiplISPHistogramStatsData
Holds histogram statistics (HIST Stats).
Definition: NvSIPLISPStat.hpp:235
nvsipl::INvSIPLClient::ImageMetaData::sensorCRCInfo
DevBlkCDICRC sensorCRCInfo
Holds the parsed embedded data sensor crc info for the captured frame.
Definition: NvSIPLClient.hpp:75
nvscistream.h
NVIDIA Software Communications Interface (SCI) : NvSciStream
nvsipl::INvSIPLClient::ImageMetaData::deadPixelStatsValid
bool deadPixelStatsValid
Holds a flag indicating if the ISP dead pixel statistics are valid.
Definition: NvSIPLClient.hpp:110
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImageEmbeddedData
virtual ImageEmbeddedData const & GetImageEmbeddedData() const =0
Gets an nvsipl::INvSIPLClient::ImageEmbeddedData this is the RAW data associated with the captured im...
nvsipl::INvSIPLClient::ImageMetaData::illuminationInfo
DevBlkCDIIllumination illuminationInfo
Holds the parsed embedded data illumination info for the captured frame.
Definition: NvSIPLClient.hpp:71
nvsipl::INvSIPLClient::ImageMetaData::sensorPWLInfo
DevBlkCDIPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Definition: NvSIPLClient.hpp:73
DevBlkCDIExposure
Holds sensor exposure information.
Definition: NvSIPLCDICommon.h:256
nvsipl::NvSiplISPBadPixelStats
Holds controls for bad pixel statistics (BP Stats).
Definition: NvSIPLISPStat.hpp:556
nvsipl::INvSIPLClient::INvSIPLNvMBuffer
Describes a SIPL buffer containing an NvSciBufObj.
Definition: NvSIPLClient.hpp:355
nvsipl
Contains the classes and variables for implementation of SIPL.
Definition: NvSIPLCamera.hpp:44
nvsipl::INvSIPLClient::INvSIPLClient
INvSIPLClient()=default
Default constructor declared in order to allow construction of derived objects.
DevBlkCDIFrameSeqNum
Holds the sensor frame sequence number structure.
Definition: NvSIPLCDICommon.h:217
DevBlkCDICRC
Holds the sensor CRC structure.
Definition: NvSIPLCDICommon.h:414
nvsipl::INvSIPLClient::ImageMetaData::sensorWBInfo
DevBlkCDIWhiteBalance sensorWBInfo
Holds the parsed embedded data sensor white balance info for the captured frame.
Definition: NvSIPLClient.hpp:69
nvsipl::INvSIPLClient::INvSIPLBuffer::~INvSIPLBuffer
virtual ~INvSIPLBuffer()=default
Default destructor.
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP2
@ ISP2
Indicates the second output of ISP.
nvsipl::INvSIPLClient::INvSIPLBuffer::AddNvSciSyncPrefence
virtual SIPLStatus AddNvSciSyncPrefence(NvSciSyncFence const &prefence)=0
Add an NvSciSync prefence.
nvsipl::INvSIPLClient::INvSIPLBuffer::GetEOFNvSciSyncFence
virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *const postfence)=0
Retrieve the latest NvSciSync EOF fence.
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufTopSize
uint32_t embeddedBufTopSize
Holds size of the top embedded data.
Definition: NvSIPLClient.hpp:176
nvsipl::INvSIPLClient::ImageMetaData::errorFlag
int8_t errorFlag
Holds information on errors present in the embedded data.
Definition: NvSIPLClient.hpp:168
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetNvSciBufImage
virtual NvSciBufObj GetNvSciBufImage() const =0
Gets a handle to NvSciBufObj.
nvsipl::INvSIPLClient::ImageMetaData::localAvgClipSettings
NvSiplISPLocalAvgClipStats localAvgClipSettings[2]
Holds the ISP Local Average and Clipped settings for the previous ISP output frame.
Definition: NvSIPLClient.hpp:164