Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.10.0 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    NvSIPLClient.hpp
    Go to the documentation of this file.
    1 /*
    2  * SPDX-FileCopyrightText: Copyright (c) 2018-2024 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;
    67  DevBlkCDIExposure sensorExpInfo;
    69  DevBlkCDIWhiteBalance sensorWBInfo;
    71  DevBlkCDIIllumination illuminationInfo;
    73  DevBlkCDIPWL sensorPWLInfo;
    75  DevBlkCDICRC sensorCRCInfo;
    77  DevBlkCDIFrameReport sensorReportInfo;
    79  DevBlkCDITemperature sensorTempInfo;
    81  DevBlkCDIFrameSeqNum frameSeqNumInfo;
    89  DevBlkCDIFrameTimestamp frameTimestampInfo;
    90 
    95 
    106  int8_t errorFlag;
    109 
    110  };
    111 
    113  {
    119  uint8_t *embeddedBufTop;
    122  };
    123 
    130  {
    131  public:
    161  virtual void AddRef() = 0;
    162 
    192  virtual SIPLStatus Release() = 0;
    193 
    233  virtual SIPLStatus AddNvSciSyncPrefence(const NvSciSyncFence &prefence) = 0;
    234 
    267  virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *const postfence) = 0;
    268 
    269  // default destructor
    270  virtual ~INvSIPLBuffer() = default;
    271 
    272  // copy constructor
    273  INvSIPLBuffer(INvSIPLBuffer& other) = delete;
    274 
    275  // copy assignment operator.
    276  INvSIPLBuffer& operator=(INvSIPLBuffer& other) & = delete;
    277 
    278  // move constructor
    279  INvSIPLBuffer(INvSIPLBuffer&& other) = delete;
    280 
    281  // move assignment operator.
    282  INvSIPLBuffer& operator=(INvSIPLBuffer&& other) & = delete;
    283 
    284  protected:
    285  // Default constructor declared in order to allow construction of derived objects.
    286  INvSIPLBuffer() = default;
    287 
    288  };
    289 
    295  {
    296  public:
    320  virtual NvSciBufObj GetNvSciBufImage() const = 0;
    321 
    346  virtual ImageMetaData const& GetImageData() const = 0;
    347 
    373  virtual ImageEmbeddedData const& GetImageEmbeddedData() const = 0;
    374 
    375  // default destructor
    376  ~INvSIPLNvMBuffer() override = default;
    377 
    378  // copy constructor
    379  INvSIPLNvMBuffer(INvSIPLNvMBuffer& other) = delete;
    380 
    381  // copy assignment operator.
    382  INvSIPLNvMBuffer& operator=(INvSIPLNvMBuffer& other) & = delete;
    383 
    384  // move constructor
    385  INvSIPLNvMBuffer(INvSIPLNvMBuffer&& other) = delete;
    386 
    387  // move assignment operator.
    388  INvSIPLNvMBuffer& operator=(INvSIPLNvMBuffer&& other) & = delete;
    389 
    390  protected:
    391  // Default constructor declared in order to allow construction of derived objects.
    392  INvSIPLNvMBuffer() = default;
    393 
    394  };
    395 
    398  {
    400  enum class OutputType : std::uint8_t
    401  {
    402  ICP,
    403  ISP0,
    404  ISP1,
    405  ISP2,
    406  };
    407  };
    408 
    409  // default destructor
    410  virtual ~INvSIPLClient() = default;
    411 
    412  // copy constructor
    413  INvSIPLClient(INvSIPLClient& other) = delete;
    414 
    415  // copy assignment operator.
    416  INvSIPLClient& operator=(INvSIPLClient& other) & = delete;
    417 
    418  // move constructor
    419  INvSIPLClient(INvSIPLClient&& other) = delete;
    420 
    421  // move assignment operator.
    422  INvSIPLClient& operator=(INvSIPLClient&& other) & = delete;
    423 
    424 protected:
    425  // Default constructor declared in order to allow construction of derived objects.
    426  INvSIPLClient() = default;
    427 
    428 };
    429 
    432 } // namespace nvsipl
    433 
    434 #endif // NVSIPLCLIENT_HPP
    nvsipl::INvSIPLClient::ImageMetaData::frameTimestampInfo
    DevBlkCDIFrameTimestamp frameTimestampInfo
    Holds parsed embedded data frame timestamp info for the captured frame.
    Definition: NvSIPLClient.hpp:89
    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:117
    nvsipl::INvSIPLClient::INvSIPLNvMBuffer::INvSIPLNvMBuffer
    INvSIPLNvMBuffer()=default
    nvsipl::INvSIPLClient::ImageMetaData::badPixelSettings
    NvSiplISPBadPixelStats badPixelSettings
    Holds the ISP bad pixel settings for the previous ISP output frame.
    Definition: NvSIPLClient.hpp:87
    nvsipl::INvSIPLClient::INvSIPLBuffer::operator=
    INvSIPLBuffer & operator=(INvSIPLBuffer &other) &=delete
    nvsipl::INvSIPLClient::INvSIPLNvMBuffer::operator=
    INvSIPLNvMBuffer & operator=(INvSIPLNvMBuffer &other) &=delete
    nvsipl::NvSiplISPLocalAvgClipStatsData
    Holds local average and clip statistics block (LAC Stats).
    Definition: NvSIPLISPStat.hpp:477
    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:487
    nvsipl::INvSIPLClient::INvSIPLBuffer::AddNvSciSyncPrefence
    virtual SIPLStatus AddNvSciSyncPrefence(const NvSciSyncFence &prefence)=0
    Add an NvSciSync prefence.
    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::INvSIPLClient::operator=
    INvSIPLClient & operator=(INvSIPLClient &other) &=delete
    nvsipl::INvSIPLClient::ImageMetaData::localAvgClipStats
    NvSiplISPLocalAvgClipStatsData localAvgClipStats[2]
    Holds the ISP Local Average and Clipped statistics for the previous ISP output frame.
    Definition: NvSIPLClient.hpp:101
    NvSIPLCommon.hpp
    NVIDIA SIPL: Common Data Structures - SIPL
    nvsipl::INvSIPLClient::ImageMetaData::histogramSettings
    NvSiplISPHistogramStats histogramSettings[2]
    Holds the ISP Histogram settings for the previous ISP output frame.
    Definition: NvSIPLClient.hpp:97
    nvsipl::NvSiplISPHistogramStats
    Holds controls for histogram statistics (HIST Stats).
    Definition: NvSIPLISPStat.hpp:411
    nvsipl::INvSIPLClient::ConsumerDesc::OutputType
    OutputType
    Defines the types of the SIPL pipeline output.
    Definition: NvSIPLClient.hpp:400
    NvSciBufObj
    struct NvSciBufObjRefRec * NvSciBufObj
    A memory object is a container holding the reconciled NvSciBufAttrList defining constraints of the bu...
    Definition: nvscibuf.h:3102
    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:129
    nvsipl::INvSIPLClient::ImageMetaData::badPixelStatsValid
    bool badPixelStatsValid
    Holds a flag indicating if the ISP bad pixel statistics are valid.
    Definition: NvSIPLClient.hpp:83
    nvsipl::INvSIPLClient::ImageMetaData::localAvgClipStatsValid
    bool localAvgClipStatsValid[2]
    Holds a flag indicating if the ISP Local Average and Clipped statistics are valid.
    Definition: NvSIPLClient.hpp:99
    nvsipl::INvSIPLClient::ImageEmbeddedData
    Definition: NvSIPLClient.hpp:112
    nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ICP
    @ ICP
    nvsipl::INvSIPLClient::INvSIPLBuffer::INvSIPLBuffer
    INvSIPLBuffer()=default
    nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufBottom
    uint8_t * embeddedBufBottom
    Holds pointer to the bottom embedded data.
    Definition: NvSIPLClient.hpp:121
    nvsipl::INvSIPLClient::ImageMetaData::badPixelStats
    NvSiplISPBadPixelStatsData badPixelStats
    Holds the ISP bad pixel statistics for the previous ISP output frame.
    Definition: NvSIPLClient.hpp:85
    nvsipl::INvSIPLClient::ConsumerDesc
    Describes a client of the pipeline.
    Definition: NvSIPLClient.hpp:397
    nvsipl::SIPLStatus
    SIPLStatus
    Defines the status codes returned by functions in SIPL modules.
    Definition: NvSIPLCommon.hpp:152
    nvsipl::INvSIPLClient::ImageMetaData::sensorExpInfo
    DevBlkCDIExposure sensorExpInfo
    Holds the parsed embedded data sensor exposure info for the captured frame.
    Definition: NvSIPLClient.hpp:67
    nvsipl::INvSIPLClient::~INvSIPLClient
    virtual ~INvSIPLClient()=default
    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
    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:108
    nvsipl::INvSIPLClient::ImageMetaData::sensorReportInfo
    DevBlkCDIFrameReport sensorReportInfo
    Holds the parsed embedded data frame report info for the captured frame.
    Definition: NvSIPLClient.hpp:77
    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:119
    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
    nvsipl::INvSIPLClient::INvSIPLBuffer::AddRef
    virtual void AddRef()=0
    Adds a reference.
    nvsipl::NvSiplISPBadPixelStatsData
    Holds bad pixel statistics (BP Stats).
    Definition: NvSIPLISPStat.hpp:88
    NvSciSyncFence
    Defines the opaque NvSciSyncFence.
    Definition: nvscisync.h:256
    nvsipl::NvSiplISPHistogramStatsData
    Holds histogram statistics (HIST Stats).
    Definition: NvSIPLISPStat.hpp:138
    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::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
    nvsipl::NvSiplISPBadPixelStats
    Holds controls for bad pixel statistics (BP Stats).
    Definition: NvSIPLISPStat.hpp:528
    nvsipl::INvSIPLClient::INvSIPLNvMBuffer
    Describes a SIPL buffer containing an NvSciBufObj.
    Definition: NvSIPLClient.hpp:294
    nvsipl::INvSIPLClient::ImageMetaData::histogramStatsValid
    bool histogramStatsValid[2]
    Holds a flag indicating if the ISP Histogram statistics are valid.
    Definition: NvSIPLClient.hpp:92
    nvsipl
    Contains the classes and variables for implementation of SIPL.
    Definition: INvSiplControlAuto.hpp:35
    nvsipl::INvSIPLClient::INvSIPLClient
    INvSIPLClient()=default
    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
    nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP2
    @ ISP2
    Indicates the second output of ISP.
    nvsipl::INvSIPLClient::ImageMetaData::histogramStats
    NvSiplISPHistogramStatsData histogramStats[2]
    Holds the ISP Histogram statistics for the previous ISP output frame.
    Definition: NvSIPLClient.hpp:94
    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:115
    nvsipl::INvSIPLClient::ImageMetaData::errorFlag
    int8_t errorFlag
    Holds information on errors present in the embedded data.
    Definition: NvSIPLClient.hpp:106
    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:103
    人人超碰97caoporen国产