NVIDIA DRIVE OS Linux SDK API Reference

5.1.12.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
NvSIPLCamera.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 #ifndef NVSIPLCAMERA_HPP
11 #define NVSIPLCAMERA_HPP
12 
13 #include "NvSIPLCommon.hpp"
14 #include "NvSIPLPlatformCfg.hpp"
15 #include "NvSIPLPipelineMgr.hpp"
17 #include "NvSIPLClient.hpp"
18 
19 #include "nvmedia_image.h"
20 
21 #include <cstdint>
22 #include <memory>
23 #include <vector>
24 
39 namespace nvsipl
40 {
41 
51 {
52  public:
59  static std::unique_ptr<INvSIPLCamera> GetInstance(void);
60 
72  virtual SIPLStatus SetPlatformCfg(const PlatformCfg* platformCfg) = 0;
73 
80  virtual const PlatformCfg* GetPlatformCfg(void) const = 0;
81 
90  virtual SIPLStatus SetNotifier(std::uint32_t uIndex, NvSIPLPipelineNotifier* pNotifier) = 0;
91 
92 
106  virtual SIPLStatus SetImageGroupWriterCallback(std::uint32_t uIndex,
107  NvSIPLImageGroupWriter* pImageGroupWriter) = 0;
108 
118  virtual SIPLStatus SetOutputDesc(std::vector<INvSIPLClient::ConsumerDesc> vDescs) = 0;
119 
126  virtual SIPLStatus SetImagePoolAttributes(std::uint32_t index,
128  uint32_t numOfImages,
129  const NvSIPLImageAttr &imageAttr) = 0;
130 
141  virtual SIPLStatus RegisterAutoControlPlugin(std::uint32_t index,
143  INvSIPLAutoControl* autoControl,
144  const std::vector<uint8_t>& blob) = 0;
145 
155  virtual SIPLStatus Init(void) = 0;
156 
166  virtual SIPLStatus SetISPConfig(std::uint32_t index,
167  INvSIPLAutoControl::PluginType autoPluginType) = 0;
168 
183  virtual SIPLStatus GetImageAttributes(std::uint32_t index,
185  NvSIPLImageAttr &imageAttr) = 0;
186 
198  virtual SIPLStatus RegisterImageGroups(std::uint32_t index,
199  std::vector<NvMediaImageGroup*> imageGroups) = 0;
200 
213  virtual SIPLStatus RegisterImages(std::uint32_t index,
215  std::vector<NvMediaImage*> images) = 0;
216 
229  virtual INvSIPLClient::ClientDesc* GetClientDesc(std::uint32_t index,
231 
241  virtual SIPLStatus Start(void) = 0;
242 
251  virtual SIPLStatus Stop(void) = 0;
252 
265  virtual SIPLStatus Deinit(void) = 0;
266 
268  virtual ~INvSIPLCamera(void) = default;
269 
270  // TODO: Add methods to provide NvSciSync support.
271 
272 }; // INvSIPLCamera
273 
275 } // namespace nvsipl
276 
277 
278 
279 #endif // NVSIPLCAMERA_HPP
NVIDIA Sensor Input Processing Library: Client Interface - NvSIPL Client (libnvsipl.so)
NVIDIA Sensor Input Processing Library: Camera Platform Configuration
virtual SIPLStatus Deinit(void)=0
De-initializes NvSIPL Camera (libnvsipl.so) for the selected platform configuration.
virtual SIPLStatus GetImageAttributes(std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, NvSIPLImageAttr &imageAttr)=0
Gets Image Attributes.
virtual SIPLStatus SetNotifier(std::uint32_t uIndex, NvSIPLPipelineNotifier *pNotifier)=0
Sets a handler for events from an image processing pipeline.
virtual SIPLStatus Init(void)=0
Initializes NvSIPL Camera (libnvsipl.so) for the selected platform configuration. ...
virtual SIPLStatus SetISPConfig(std::uint32_t index, INvSIPLAutoControl::PluginType autoPluginType)=0
Set ISP configuration for a pipeline.
PluginType
Defines types of Auto Control plug-ins.
NVIDIA Media Interface: Image Processing
Describes attributes of images used in image processing pipeline.
virtual SIPLStatus RegisterAutoControlPlugin(std::uint32_t index, INvSIPLAutoControl::PluginType type, INvSIPLAutoControl *autoControl, const std::vector< uint8_t > &blob)=0
Register Auto Control plugin to be used for specific pipeline.
virtual const PlatformCfg * GetPlatformCfg(void) const =0
Gets the camera platform configuration set by SetPlatformCfg.
NVIDIA Sensor Input Processing Library: Common Data Structures - Sensor Input Processing Library (SI...
virtual SIPLStatus SetOutputDesc(std::vector< INvSIPLClient::ConsumerDesc > vDescs)=0
Sets a vector of INvSIPLClient::ConsumerDesc of consumers of image processing pipeline(s).
virtual SIPLStatus SetPlatformCfg(const PlatformCfg *platformCfg)=0
Sets a platform configuration.
virtual ~INvSIPLCamera(void)=default
Default destructor.
Describes the interfaces of SIPL pipeline feeder.
SIPLStatus
Defines the status codes returned by functions in Sensor Input Processing Library (SIPL) modules...
NVIDIA Sensor Input Processing Library: Pipeline Manager - NvSIPL Pipeline Manager (libnvsipl...
Defines the camera platform configuration.
virtual SIPLStatus RegisterImages(std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, std::vector< NvMediaImage * > images)=0
Registers images.
virtual SIPLStatus RegisterImageGroups(std::uint32_t index, std::vector< NvMediaImageGroup * > imageGroups)=0
Registers image groups.
virtual SIPLStatus SetImagePoolAttributes(std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType, uint32_t numOfImages, const NvSIPLImageAttr &imageAttr)=0
Sets attributes of the image pool used by ICP and ISP components of an image processing pipeline...
virtual SIPLStatus Stop(void)=0
Stops NvSIPL Camera (libnvsipl.so) for the selected platform configuration.
virtual INvSIPLClient::ClientDesc * GetClientDesc(std::uint32_t index, INvSIPLClient::ConsumerDesc::OutputType outType)=0
Gets NvSIPL Client (libnvsipl.so) descriptor for an image processing pipeline output.
static std::unique_ptr< INvSIPLCamera > GetInstance(void)
Gets a handle to INvSIPLCamera instance.
virtual SIPLStatus SetImageGroupWriterCallback(std::uint32_t uIndex, NvSIPLImageGroupWriter *pImageGroupWriter)=0
Sets an image group writer for an image processing pipeline.
Describes a client of the pipeline.
OutputType
Defines the types of the SIPL pipeline output.
Describes the interfaces of the SIPL pipeline notification handler.
virtual SIPLStatus Start(void)=0
Starts NvSIPL Camera (libnvsipl.so) for the selected platform configuration.
Defines public data structures and describes the interfaces for NvSIPLCamera.