NVIDIA DRIVE OS Linux SDK API Reference

5.2.3 Release
For Test and Development only
NvSIPLClient.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2020, NVIDIA CORPORATION. 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 
16 #include "nvmedia_image.h"
17 #include "devblk_cdi.h"
18 #include "nvmedia_isp_stat.h"
19 
20 #include "nvscisync.h"
21 #include "nvscistream.h"
22 
23 #include <cstdint>
24 #include <string>
25 #include <memory>
26 
41 namespace nvsipl
42 {
43 
55 {
56  public:
59  {
61  uint64_t frameCaptureTSC;
63  uint32_t numExposures;
65  DevBlkCDIExposure sensorExpInfo;
67  DevBlkCDIWhiteBalance sensorWBInfo;
69  DevBlkCDIPWL sensorPWLInfo;
71  DevBlkCDICRC sensorCRCInfo;
73  DevBlkCDIFrameReport sensorReportInfo;
75  DevBlkCDITemperature sensorTempInfo;
77  DevBlkCDIFrameSeqNum frameSeqNumInfo;
82 #if !NV_IS_SAFETY
83 
88  DevBlkCDIFrameTimestamp frameTimestampInfo;
89 #endif // NV_IS_SAFETY
90  };
91 
98  {
99  public:
104  virtual void AddRef(void) = 0;
105 
112  virtual SIPLStatus Release(void) = 0;
113 
123  virtual SIPLStatus AddNvSciSyncPrefence(NvSciSyncFence &prefence) = 0;
124 
136  virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *postfence) = 0;
137  };
138 
145  {
146  public:
150  virtual NvMediaImage* GetImage() = 0;
151 
157  virtual NvMediaImageGroup* GetImageGroup() = 0;
158 
163  virtual ImageMetaData GetImageData() = 0;
164  };
165 
168  {
170  enum class OutputType
171  {
172  ICP,
173  ISP0,
174  ISP1,
175  };
176  };
177 };
178 
181 } // namespace nvsipl
182 
183 
184 
185 #endif // NVSIPLCLIENT_HPP
nvsipl::INvSIPLClient::ImageMetaData::frameTimestampInfo
DevBlkCDIFrameTimestamp frameTimestampInfo
Holds parsed embedded data frame timestamp info for the captured frame.
Definition: NvSIPLClient.hpp:88
nvsipl::INvSIPLClient::ImageMetaData::captureGlobalTimeStamp
NvMediaGlobalTime captureGlobalTimeStamp
Holds the timestamp of the frame capture based on above clock source.
Definition: NvSIPLClient.hpp:86
NvMediaGlobalTime
uint64_t NvMediaGlobalTime
Media global time, measured in microseconds.
Definition: nvmedia_core.h:90
nvsipl::INvSIPLClient::ImageMetaData::sensorTempInfo
DevBlkCDITemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
Definition: NvSIPLClient.hpp:75
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:54
NvSIPLCommon.hpp
NVIDIA SIPL: Common Data Structures - SIPL
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP0
@ ISP0
Indicates the first output of NvMediaISP.
nvsipl::INvSIPLClient::INvSIPLBuffer::Release
virtual SIPLStatus Release(void)=0
Release a reference.
nvsipl::INvSIPLClient::ImageMetaData
Defines the metadata associated with the image.
Definition: NvSIPLClient.hpp:58
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImage
virtual NvMediaImage * GetImage()=0
Gets a handle to NvMediaImage.
nvsipl::INvSIPLClient::INvSIPLBuffer
Describes the interfaces of SIPL buffer.
Definition: NvSIPLClient.hpp:97
nvsipl::INvSIPLClient::ImageMetaData::badPixelStatsValid
bool badPixelStatsValid
Holds a flag indicating if the ISP bad pixel statistics are valid.
Definition: NvSIPLClient.hpp:79
NvMediaISPBadPixelStatsData
Holds bad pixel statistics (BP Stats).
Definition: nvmedia_isp_stat.h:562
nvsipl::INvSIPLClient::ConsumerDesc::OutputType
OutputType
Defines the types of the SIPL pipeline output.
Definition: NvSIPLClient.hpp:170
nvsipl::INvSIPLClient::ConsumerDesc
Describes a client of the pipeline.
Definition: NvSIPLClient.hpp:167
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:65
nvsipl::INvSIPLClient::ImageMetaData::badPixelStats
NvMediaISPBadPixelStatsData badPixelStats
Holds the ISP bad pixel statistics for the previous ISP output frame.
Definition: NvSIPLClient.hpp:81
nvsipl::INvSIPLClient::INvSIPLBuffer::AddRef
virtual void AddRef(void)=0
Adds a reference.
nvmedia_isp_stat.h
NvMedia ISP stat struct
nvsipl::INvSIPLClient::ImageMetaData::numExposures
uint32_t numExposures
Holds the parsed embedded data frame number of exposures info for the captured frame.
Definition: NvSIPLClient.hpp:63
nvsipl::INvSIPLClient::ImageMetaData::frameCaptureTSC
uint64_t frameCaptureTSC
Holds the TSC timestamp of the frame capture.
Definition: NvSIPLClient.hpp:61
nvsipl::SIPLStatus
SIPLStatus
Defines the status codes returned by functions in SIPL modules.
Definition: NvSIPLCommon.hpp:40
nvsipl::INvSIPLClient::ImageMetaData::sensorReportInfo
DevBlkCDIFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
Definition: NvSIPLClient.hpp:73
nvsipl::INvSIPLClient::ImageMetaData::frameSeqNumInfo
DevBlkCDIFrameSeqNum frameSeqNumInfo
Holds the parsed embedded data frame sequence number info for the captured frame.
Definition: NvSIPLClient.hpp:77
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImageGroup
virtual NvMediaImageGroup * GetImageGroup()=0
Gets a handle to NvMediaImageGroup.
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:234
nvsipl::INvSIPLClient::ImageMetaData::sensorCRCInfo
DevBlkCDICRC sensorCRCInfo
Holds the parsed embedded data sensor crc info for the captured frame.
Definition: NvSIPLClient.hpp:71
nvscistream.h
NVIDIA Software Communications Interface (SCI) : NvSciStream
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP1
@ ISP1
Indicates the second output of NvMediaISP.
NvMediaImageGroup
Holds a handle representing an image group.
Definition: nvmedia_image.h:115
nvsipl::INvSIPLClient::ImageMetaData::sensorPWLInfo
DevBlkCDIPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Definition: NvSIPLClient.hpp:69
nvsipl::INvSIPLClient::INvSIPLBuffer::AddNvSciSyncPrefence
virtual SIPLStatus AddNvSciSyncPrefence(NvSciSyncFence &prefence)=0
Add an NvSciSync prefence.
nvsipl::INvSIPLClient::INvSIPLNvMBuffer
Describes a SIPL buffer containing an NvMediaImage or NvMediaImageGroup.
Definition: NvSIPLClient.hpp:144
nvsipl::INvSIPLClient::ImageMetaData::timeBase
NvMediaTimeBase timeBase
Holds the clocks source for the captureGlobalTimeStamp.
Definition: NvSIPLClient.hpp:84
nvsipl
Contains the classes and variables for implementation of SIPL.
Definition: INvSiplControlAuto.hpp:33
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:67
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImageData
virtual ImageMetaData GetImageData()=0
Gets an nvsipl::INvSIPLClient::ImageMetaData associated with NvMediaImage or NvMediaImageGroup.
nvsipl::INvSIPLClient::INvSIPLBuffer::GetEOFNvSciSyncFence
virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *postfence)=0
Retrieve the latest NvSciSync EOF fence.
NvMediaTimeBase
NvMediaTimeBase
Defines clock base for NvMediaTime.
Definition: nvmedia_core.h:94