NVIDIA DRIVE OS Linux SDK API Reference

6.0.3 Release
NvSIPLClient.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  *
4  * NVIDIA CORPORATION and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
9  */
10 
11 #ifndef NVSIPLCLIENT_HPP
12 #define NVSIPLCLIENT_HPP
13 
14 #include "NvSIPLCommon.hpp"
15 #include "NvSIPLISPStructs.hpp"
16 
17 #if !NV_IS_SAFETY
18 #include "nvmedia_image.h"
19 #endif // !NV_IS_SAFETY
20 #include "NvSIPLCDICommon.h"
21 
22 #include "nvscisync.h"
23 #include "nvscistream.h"
24 
25 #include <cstdint>
26 #include <string>
27 #include <memory>
28 
43 namespace nvsipl
44 {
56 {
57 public:
60  {
62  uint64_t frameCaptureTSC;
66  uint32_t numExposures;
68  DevBlkCDIExposure sensorExpInfo;
70  DevBlkCDIWhiteBalance sensorWBInfo;
72  DevBlkCDIPWL sensorPWLInfo;
74  DevBlkCDICRC sensorCRCInfo;
76  DevBlkCDIFrameReport sensorReportInfo;
78  DevBlkCDITemperature sensorTempInfo;
80  DevBlkCDIFrameSeqNum frameSeqNumInfo;
87 #if !NV_IS_SAFETY
88 
96 #endif // !NV_IS_SAFETY
97 
98  DevBlkCDIFrameTimestamp frameTimestampInfo;
99 
104 
115  int8_t errorFlag;
118 
119  };
120 
122  {
128  uint8_t *embeddedBufTop;
131  };
132 
139  {
140  public:
165  virtual void AddRef() = 0;
166 
195  virtual SIPLStatus Release() = 0;
196 
227  virtual SIPLStatus AddNvSciSyncPrefence(const NvSciSyncFence &prefence) = 0;
228 
259  virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *postfence) = 0;
260  };
261 
262 #if !NV_IS_SAFETY
263 
271 #else
272 
276 #endif // !NV_IS_SAFETY
278  {
279  public:
280 #if !NV_IS_SAFETY
281 
302  virtual NvMediaImage* GetImage() const = 0;
303 #endif // !NV_IS_SAFETY
304 
326  virtual NvSciBufObj GetNvSciBufImage() const = 0;
327 
328 #if !NV_IS_SAFETY
329 
352  virtual NvMediaImageGroup* GetImageGroup() const = 0;
353 #endif // !NV_IS_SAFETY
354 
355 
356 #if !NV_IS_SAFETY
357 
360 #else
361 
364 #endif // !NV_IS_SAFETY
365 
384  virtual ImageMetaData const& GetImageData() const = 0;
385 
409  virtual ImageEmbeddedData const& GetImageEmbeddedData() const = 0;
410 
411  };
412 
415  {
417  enum class OutputType
418  {
419  ICP,
420  ISP0,
421  ISP1,
422  ISP2,
423  };
424  };
425 };
426 
429 } // namespace nvsipl
430 
431 #endif // NVSIPLCLIENT_HPP
nvsipl::INvSIPLClient::ImageMetaData::frameTimestampInfo
DevBlkCDIFrameTimestamp frameTimestampInfo
Holds parsed embedded data frame timestamp info for the captured frame.
Definition: NvSIPLClient.hpp:98
nvsipl::NvSiplControlInfo
Defines the control info.
Definition: NvSIPLISPStructs.hpp:50
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufBottomSize
uint32_t embeddedBufBottomSize
Holds size of the bottom embedded data.
Definition: NvSIPLClient.hpp:126
nvsipl::INvSIPLClient::ImageMetaData::badPixelSettings
NvSiplISPBadPixelStats badPixelSettings
Holds the ISP bad pixel settings for the previous ISP output frame.
Definition: NvSIPLClient.hpp:86
nvsipl::INvSIPLClient::INvSIPLBuffer::Release
virtual SIPLStatus Release()=0
Release a reference.
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 NvMediaImage or NvMediaImageGroup or NvS...
nvsipl::INvSIPLClient::ImageMetaData::sensorTempInfo
DevBlkCDITemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
Definition: NvSIPLClient.hpp:78
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ICP
@ ICP
Indicates the unprocessed output of the image sensor.
nvsipl::INvSIPLClient
Defines the public data structures and describes the interfaces for NvSIPL Client.
Definition: NvSIPLClient.hpp:55
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP2
@ ISP2
Indicates the third output of ISP.
nvsipl::INvSIPLClient::ImageMetaData::localAvgClipStats
NvSiplISPLocalAvgClipStatsData localAvgClipStats[2]
Holds the ISP Local Average and Clipped statistics for the previous ISP output frame.
Definition: NvSIPLClient.hpp:110
NvMediaISPBadPixelStats
Holds controls for bad pixel statistics (BP Stats).
Definition: nvmedia_isp_stat.h:348
NvSIPLCommon.hpp
NVIDIA SIPL: Common Data Structures - SIPL
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP0
@ ISP0
Indicates the first output of ISP.
nvsipl::INvSIPLClient::ImageMetaData::histogramSettings
NvSiplISPHistogramStats histogramSettings[2]
Holds the ISP Histogram settings for the previous ISP output frame.
Definition: NvSIPLClient.hpp:106
nvsipl::NvSiplGlobalTime
NvMediaGlobalTime NvSiplGlobalTime
Definition: NvSIPLCommon.hpp:56
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
A memory object is a container holding the reconciled NvSciBufAttrList defining constraints of the bu...
Definition: nvscibuf.h:2578
nvsipl::INvSIPLClient::ImageMetaData
Defines the metadata associated with the image.
Definition: NvSIPLClient.hpp:59
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
nvsipl::INvSIPLClient::INvSIPLBuffer
Abstract interface for SIPL buffers.
Definition: NvSIPLClient.hpp:138
nvsipl::INvSIPLClient::ImageMetaData::badPixelStatsValid
bool badPixelStatsValid
Holds a flag indicating if the ISP bad pixel statistics are valid.
Definition: NvSIPLClient.hpp:82
nvsipl::INvSIPLClient::ImageMetaData::localAvgClipStatsValid
bool localAvgClipStatsValid[2]
Holds a flag indicating if the ISP Local Average and Clipped statistics are valid.
Definition: NvSIPLClient.hpp:108
nvsipl::INvSIPLClient::ImageEmbeddedData
Definition: NvSIPLClient.hpp:121
NvMediaISPBadPixelStatsData
Holds bad pixel statistics (BP Stats).
Definition: nvmedia_isp_stat.h:562
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufBottom
uint8_t * embeddedBufBottom
Holds pointer to the bottom embedded data.
Definition: NvSIPLClient.hpp:130
nvsipl::INvSIPLClient::ConsumerDesc::OutputType
OutputType
Defines the types of the SIPL pipeline output.
Definition: NvSIPLClient.hpp:417
nvsipl::INvSIPLClient::ImageMetaData::badPixelStats
NvSiplISPBadPixelStatsData badPixelStats
Holds the ISP bad pixel statistics for the previous ISP output frame.
Definition: NvSIPLClient.hpp:84
nvsipl::INvSIPLClient::ConsumerDesc
Describes a client of the pipeline.
Definition: NvSIPLClient.hpp:414
NvMediaImageRec
Holds a handle representing image objects.
Definition: nvmedia_image.h:71
nvsipl::INvSIPLClient::ImageMetaData::sensorExpInfo
DevBlkCDIExposure sensorExpInfo
Holds the parsed embedded data sensor exposure info for the captured frame.
Definition: NvSIPLClient.hpp:68
nvsipl::INvSIPLClient::ImageMetaData::numExposures
uint32_t numExposures
Holds the parsed embedded data frame number of exposures info for the captured frame.
Definition: NvSIPLClient.hpp:66
nvsipl::INvSIPLClient::ImageMetaData::timeBase
NvSiplTimeBase timeBase
Holds the clocks source for the captureGlobalTimeStamp.
Definition: NvSIPLClient.hpp:89
nvsipl::INvSIPLClient::ImageMetaData::frameCaptureTSC
uint64_t frameCaptureTSC
Holds the TSC timestamp of the end of frame for capture.
Definition: NvSIPLClient.hpp:62
NvMediaISPLocalAvgClipStatsData
Holds local average and clip statistics block (LAC Stats).
Definition: nvmedia_isp_stat.h:528
nvsipl::INvSIPLClient::ImageMetaData::controlInfo
NvSiplControlInfo controlInfo
Holds the control information.
Definition: NvSIPLClient.hpp:117
nvsipl::SIPLStatus
SIPLStatus
Defines the status codes returned by functions in SIPL modules.
Definition: NvSIPLCommon.hpp:64
nvsipl::INvSIPLClient::ImageMetaData::sensorReportInfo
DevBlkCDIFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
Definition: NvSIPLClient.hpp:76
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImage
virtual NvMediaImage * GetImage() const =0
Gets a handle to NvMediaImage.
nvsipl::INvSIPLClient::ImageMetaData::frameCaptureStartTSC
uint64_t frameCaptureStartTSC
Holds the TSC timestamp of the start of frame for capture.
Definition: NvSIPLClient.hpp:64
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufTop
uint8_t * embeddedBufTop
Holds pointer to the top embedded data.
Definition: NvSIPLClient.hpp:128
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:80
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImageGroup
virtual NvMediaImageGroup * GetImageGroup() const =0
Gets a handle to NvMediaImageGroup.
nvsipl::INvSIPLClient::INvSIPLBuffer::AddRef
virtual void AddRef()=0
Adds a reference.
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:240
NvMediaISPHistogramStats
Holds controls for histogram statistics (HIST Stats).
Definition: nvmedia_isp_stat.h:160
nvsipl::INvSIPLClient::ImageMetaData::sensorCRCInfo
DevBlkCDICRC sensorCRCInfo
Holds the parsed embedded data sensor crc info for the captured frame.
Definition: NvSIPLClient.hpp:74
nvscistream.h
NVIDIA Software Communications Interface (SCI) : NvSciStream
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP1
@ ISP1
Indicates the second output of ISP.
NvMediaImageGroup
Holds a handle representing an image group.
Definition: nvmedia_image.h:115
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::sensorPWLInfo
DevBlkCDIPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Definition: NvSIPLClient.hpp:72
nvsipl::INvSIPLClient::INvSIPLNvMBuffer
Describes a SIPL buffer containing an NvMediaImage, NvMediaImageGroup, or NvSciBufObj....
Definition: NvSIPLClient.hpp:277
nvsipl::INvSIPLClient::ImageMetaData::histogramStatsValid
bool histogramStatsValid[2]
Holds a flag indicating if the ISP Histogram statistics are valid.
Definition: NvSIPLClient.hpp:101
nvsipl
Contains the classes and variables for implementation of SIPL.
Definition: INvSiplControlAuto.hpp:33
NvMediaISPLocalAvgClipStats
Holds controls for local average and clip statistics (LAC Stats).
Definition: nvmedia_isp_stat.h:291
NvMediaISPHistogramStatsData
Holds histogram statistics (HIST Stats).
Definition: nvmedia_isp_stat.h:483
nvmedia_image.h
NVIDIA Media Interface: Image Processing
nvsipl::INvSIPLClient::ImageMetaData::sensorWBInfo
DevBlkCDIWhiteBalance sensorWBInfo
Holds the parsed embedded data sensor white balance info for the captured frame.
Definition: NvSIPLClient.hpp:70
nvsipl::INvSIPLClient::ImageMetaData::histogramStats
NvSiplISPHistogramStatsData histogramStats[2]
Holds the ISP Histogram statistics for the previous ISP output frame.
Definition: NvSIPLClient.hpp:103
nvsipl::INvSIPLClient::INvSIPLBuffer::GetEOFNvSciSyncFence
virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *postfence)=0
Retrieve the latest NvSciSync EOF fence.
nvsipl::INvSIPLClient::ImageMetaData::captureGlobalTimeStamp
NvSiplGlobalTime captureGlobalTimeStamp
Holds the timestamp of the frame capture based on above clock source.
Definition: NvSIPLClient.hpp:95
nvsipl::INvSIPLClient::ImageEmbeddedData::embeddedBufTopSize
uint32_t embeddedBufTopSize
Holds size of the top embedded data.
Definition: NvSIPLClient.hpp:124
nvsipl::INvSIPLClient::ImageMetaData::errorFlag
int8_t errorFlag
Holds information on errors present in the embedded data.
Definition: NvSIPLClient.hpp:115
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetNvSciBufImage
virtual NvSciBufObj GetNvSciBufImage() const =0
Gets a handle to NvSciBufObj.
NvMediaTimeBase
NvMediaTimeBase
Defines clock base for NvMediaTime.
Definition: tvmr/include/nvmedia_core.h:94
nvsipl::INvSIPLClient::ImageMetaData::localAvgClipSettings
NvSiplISPLocalAvgClipStats localAvgClipSettings[2]
Holds the ISP Local Average and Clipped settings for the previous ISP output frame.
Definition: NvSIPLClient.hpp:112