NVIDIA DRIVE OS Linux SDK API Reference

5.1.9.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
NvSIPLClient.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2019, 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 "nvmedia_isc.h"
18 
19 #include <cstdint>
20 #include <string>
21 #include <memory>
22 
37 namespace nvsipl
38 {
39 
51 {
52  public:
55  {
57  std::uint64_t frameCaptureTSC;
59  uint32_t numExposures;
74  };
75 
80  struct ConsumerDesc
81  {
83  enum class OutputType
84  {
85  ICP,
86  ISP0,
87  ISP1,
88  };
89 
91  std::string sName;
93  std::uint32_t uSensorIndex;
96  };
97 
102  struct ClientDesc
103  {
106 
107  virtual ~ClientDesc() = default;
108  };
109 
116  {
117  public:
122  virtual void AddRef(void) = 0;
123 
130  virtual SIPLStatus Release(void) = 0;
131  };
132 
139  {
140  public:
144  virtual NvMediaImage* GetImage() = 0;
145 
151  virtual NvMediaImageGroup* GetImageGroup() = 0;
152 
157  virtual ImageMetaData GetImageData() = 0;
158  };
159 
167  {
168  public:
180  virtual SIPLStatus OnFrameAvailable(INvSIPLBuffer* pBuffer) = 0;
181 
190  virtual SIPLStatus OnError(void) = 0;
191 
193  virtual ~INvMCallback(void) = default;
194  };
195 
202  static std::unique_ptr<INvSIPLClient> Create();
203 
211  virtual SIPLStatus Init(ClientDesc* pDesc, INvMCallback* pCallback) = 0;
212 
221  virtual SIPLStatus Start(void) = 0;
222 
231  virtual SIPLStatus Stop(void) = 0;
232 
236  virtual SIPLStatus Deinit(void) = 0;
237 
239  virtual ~INvSIPLClient(void) = default;
240 };
241 
244 } // namespace nvsipl
245 
246 
247 
248 #endif // NVSIPLCLIENT_HPP
Holds the sensor companding piecewise linear (PWL) structure.
Definition: nvmedia_isc.h:1085
virtual ~INvSIPLClient(void)=default
Default destructor.
static std::unique_ptr< INvSIPLClient > Create()
Create an instance of NvSIPL Client (libnvsipl.so).
Holds a handle representing image objects.
Definition: nvmedia_image.h:69
virtual SIPLStatus Deinit(void)=0
De-initializes NvSIPL Client (libnvsipl.so).
std::uint32_t uSensorIndex
Holds the ID of the sensor.
Defines a consumer of the output of the SIPL pipeline.
Indicates the second output of NvMediaISP.
virtual NvMediaImageGroup * GetImageGroup()=0
Gets a handle to NvMediaImageGroup.
Holds sensor exposure information.
Definition: nvmedia_isc.h:1010
virtual SIPLStatus OnError(void)=0
An error occurred in the image processing pipeline.
NvMediaISCTemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
NVIDIA Media Interface: Image Processing
NvMediaISCFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
virtual ImageMetaData GetImageData()=0
Gets an nvsipl::INvSIPLClient::ImageMetaData associated with NvMediaImage or NvMediaImageGroup.
virtual NvMediaImage * GetImage()=0
Gets a handle to NvMediaImage.
NVIDIA Sensor Input Processing Library: Common Data Structures - Sensor Input Processing Library (SI...
Holds the sensor temperature structure.
Definition: nvmedia_isc.h:1108
virtual SIPLStatus Release(void)=0
Release a reference.
Describes the interfaces of SIPL buffer.
NvMediaISCWhiteBalance sensorWBInfo
Holds the parsed embedded data sensor white balance info for the captured frame.
std::string sName
Holds the name of the consumer.
Defines the public data structures and describes the interfaces for NvSIPL Client (libnvsipl...
NvMediaISCPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Holds a handle representing an image group.
Defines the metadata associated with the image.
Indicates the unprocessed output of the image sensor.
Holds the sensor CRC structure.
Definition: nvmedia_isc.h:1131
SIPLStatus
Defines the status codes returned by functions in Sensor Input Processing Library (SIPL) modules...
virtual SIPLStatus Stop(void)=0
Stops NvSIPL Client (libnvsipl.so).
virtual ~INvMCallback(void)=default
Default destructor.
NvMediaISCExposure sensorExpInfo
Holds the parsed embedded data sensor exposure info for the captured frame.
Indicates the first output of NvMediaISP.
ConsumerDesc oConsDesc
ConsumerDesc
virtual void AddRef(void)=0
Adds a reference.
NvMediaISCFrameSeqNum frameSeqNumInfo
Holds parsed embedded data frame sequence number info for the captured frame.
Describes a SIPL buffer containing an NvMediaImage or NvMediaImageGroup.
NvMediaISCCRC sensorCRCInfo
Holds the parsed embedded data sensor crc info for the captured frame.
NVIDIA Media Interface: Image Sensor Control (ISC)
virtual SIPLStatus Init(ClientDesc *pDesc, INvMCallback *pCallback)=0
Initializes NvSIPL Client (libnvsipl.so).
Describes a client of the pipeline.
OutputType eOutputType
Holds the OutputType.
OutputType
Defines the types of the SIPL pipeline output.
uint32_t numExposures
Holds the parsed embedded data frame number of exposures info for the captured frame.
std::uint64_t frameCaptureTSC
Holds the TSC timestamp of the frame capture.
Holds the sensor frame sequence number structure.
Definition: nvmedia_isc.h:1152
virtual SIPLStatus Start(void)=0
Starts NvSIPL Client (libnvsipl.so).
Holds the sensor report frame report structure.
Definition: nvmedia_isc.h:1062
Holds the sensor white balance gain structure.
Definition: nvmedia_isc.h:1039
virtual SIPLStatus OnFrameAvailable(INvSIPLBuffer *pBuffer)=0
A new output frame is available.
Describes a class with callback functions that must be implemented by the consumer of the SIPL image ...