NVIDIA DeepStream SDK API Reference

8.0 Release
bevpool.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022-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 _BEV_POOL_H_
14 #define _BEV_POOL_H_
15 
16 #include <NvInferPlugin.h>
17 
18 #include <numeric>
19 #include <string>
20 #include <vector>
21 
22 namespace nvinfer1 {
23 namespace plugin {
24 
25 class BEVPoolPlugin : public nvinfer1::IPluginV2DynamicExt {
26  public:
27  BEVPoolPlugin() = delete;
28  BEVPoolPlugin(const void* data, size_t length);
29  BEVPoolPlugin(size_t h, size_t w);
30  virtual ~BEVPoolPlugin();
31  // IPluginV2DynamicExt Methods
32  virtual nvinfer1::IPluginV2DynamicExt* clone() const noexcept override;
33  virtual nvinfer1::DimsExprs getOutputDimensions(int outputIndex, const nvinfer1::DimsExprs* inputs, int nbInputs,
34  nvinfer1::IExprBuilder& exprBuilder) noexcept override;
35  virtual bool supportsFormatCombination(int pos, const nvinfer1::PluginTensorDesc* inOut, int nbInputs, int nbOutputs) noexcept override;
36  virtual void configurePlugin(const nvinfer1::DynamicPluginTensorDesc* in, int nbInputs, const nvinfer1::DynamicPluginTensorDesc* out,
37  int nbOutputs) noexcept override;
38  virtual size_t getWorkspaceSize(const nvinfer1::PluginTensorDesc* inputs, int nbInputs, const nvinfer1::PluginTensorDesc* outputs,
39  int nbOutputs) const noexcept override;
40  virtual int enqueue(const nvinfer1::PluginTensorDesc* inputDesc, const nvinfer1::PluginTensorDesc* outputDesc,
41  const void* const* inputs, void* const* outputs, void* workspace, cudaStream_t stream) noexcept override;
42  // IPluginV2Ext Methods
43  virtual nvinfer1::DataType getOutputDataType(int index, const nvinfer1::DataType* inputTypes, int nbInputs) const noexcept override;
44  // IPluginV2 Methods
45  virtual const char* getPluginType() const noexcept override;
46  virtual const char* getPluginVersion() const noexcept override;
47  virtual int getNbOutputs() const noexcept override;
48  virtual int initialize() noexcept override;
49  virtual void terminate() noexcept override;
50  virtual size_t getSerializationSize() const noexcept override;
51  virtual void serialize(void* buffer) const noexcept override;
52  virtual void destroy() noexcept override;
53  virtual void setPluginNamespace(const char* pluginNamespace) noexcept override;
54  virtual const char* getPluginNamespace() const noexcept override;
55 
56  private:
57  std::string mNamespace;
58  size_t bev_h_;
59  size_t bev_w_;
60  int* num_intervals_ = nullptr;
61 };
62 
63 class BEVPoolPluginCreator : public nvinfer1::IPluginCreator {
64  public:
66  const char* getPluginName() const noexcept override;
67  const char* getPluginVersion() const noexcept override;
68  const nvinfer1::PluginFieldCollection* getFieldNames() noexcept override;
69  nvinfer1::IPluginV2* createPlugin(const char* name, const nvinfer1::PluginFieldCollection* fc) noexcept override;
70  nvinfer1::IPluginV2* deserializePlugin(const char* name, const void* serialData, size_t serialLength) noexcept override;
71  void setPluginNamespace(const char* pluginNamespace) noexcept override;
72  const char* getPluginNamespace() const noexcept override;
73 
74  private:
75  nvinfer1::PluginFieldCollection mFC;
76  std::vector<nvinfer1::PluginField> mPluginAttributes;
77  std::string mNamespace;
78 };
79 
80 } // namespace plugin
81 } // namespace nvinfer1
82 
83 #endif
nvinfer1::plugin::BEVPoolPluginCreator::setPluginNamespace
void setPluginNamespace(const char *pluginNamespace) noexcept override
nvinfer1::plugin::BEVPoolPluginCreator::getPluginName
const char * getPluginName() const noexcept override
nvinfer1::plugin::BEVPoolPlugin::getNbOutputs
virtual int getNbOutputs() const noexcept override
nvinfer1::plugin::BEVPoolPlugin::getPluginType
virtual const char * getPluginType() const noexcept override
nvinfer1::plugin::BEVPoolPluginCreator
Definition: bevpool.h:63
nvinfer1::plugin::BEVPoolPlugin::destroy
virtual void destroy() noexcept override
ds3d::DataType
DataType
Definition: idatatype.h:77
nvinfer1::plugin::BEVPoolPlugin::getSerializationSize
virtual size_t getSerializationSize() const noexcept override
nvinfer1::plugin::BEVPoolPlugin::getWorkspaceSize
virtual size_t getWorkspaceSize(const nvinfer1::PluginTensorDesc *inputs, int nbInputs, const nvinfer1::PluginTensorDesc *outputs, int nbOutputs) const noexcept override
nvinfer1::plugin::BEVPoolPlugin::serialize
virtual void serialize(void *buffer) const noexcept override
nvinfer1::plugin::BEVPoolPluginCreator::createPlugin
nvinfer1::IPluginV2 * createPlugin(const char *name, const nvinfer1::PluginFieldCollection *fc) noexcept override
nvinfer1::plugin::BEVPoolPluginCreator::getPluginNamespace
const char * getPluginNamespace() const noexcept override
nvinfer1::plugin::BEVPoolPlugin::~BEVPoolPlugin
virtual ~BEVPoolPlugin()
nvinfer1
Definition: bevpool.h:22
cudaStream_t
struct CUstream_st * cudaStream_t
Forward declaration of cudaStream_t.
Definition: nvbufsurftransform.h:35
nvinfer1::plugin::BEVPoolPlugin::supportsFormatCombination
virtual bool supportsFormatCombination(int pos, const nvinfer1::PluginTensorDesc *inOut, int nbInputs, int nbOutputs) noexcept override
nvinfer1::plugin::BEVPoolPlugin::initialize
virtual int initialize() noexcept override
nvinfer1::plugin::BEVPoolPlugin::getPluginVersion
virtual const char * getPluginVersion() const noexcept override
nvinfer1::plugin::BEVPoolPlugin
Definition: bevpool.h:25
nvinfer1::plugin::BEVPoolPlugin::configurePlugin
virtual void configurePlugin(const nvinfer1::DynamicPluginTensorDesc *in, int nbInputs, const nvinfer1::DynamicPluginTensorDesc *out, int nbOutputs) noexcept override
nvinfer1::plugin::BEVPoolPluginCreator::getPluginVersion
const char * getPluginVersion() const noexcept override
nvinfer1::plugin::BEVPoolPlugin::getPluginNamespace
virtual const char * getPluginNamespace() const noexcept override
nvinfer1::plugin::BEVPoolPlugin::clone
virtual nvinfer1::IPluginV2DynamicExt * clone() const noexcept override
nvinfer1::plugin::BEVPoolPluginCreator::getFieldNames
const nvinfer1::PluginFieldCollection * getFieldNames() noexcept override
nvinfer1::plugin::BEVPoolPlugin::terminate
virtual void terminate() noexcept override
nvinfer1::plugin::BEVPoolPlugin::getOutputDataType
virtual nvinfer1::DataType getOutputDataType(int index, const nvinfer1::DataType *inputTypes, int nbInputs) const noexcept override
nvinfer1::plugin::BEVPoolPlugin::getOutputDimensions
virtual nvinfer1::DimsExprs getOutputDimensions(int outputIndex, const nvinfer1::DimsExprs *inputs, int nbInputs, nvinfer1::IExprBuilder &exprBuilder) noexcept override
nvinfer1::plugin::BEVPoolPluginCreator::BEVPoolPluginCreator
BEVPoolPluginCreator()
nvinfer1::plugin::BEVPoolPlugin::enqueue
virtual int enqueue(const nvinfer1::PluginTensorDesc *inputDesc, const nvinfer1::PluginTensorDesc *outputDesc, const void *const *inputs, void *const *outputs, void *workspace, cudaStream_t stream) noexcept override
nvinfer1::plugin::BEVPoolPluginCreator::deserializePlugin
nvinfer1::IPluginV2 * deserializePlugin(const char *name, const void *serialData, size_t serialLength) noexcept override
nvinfer1::plugin::BEVPoolPlugin::BEVPoolPlugin
BEVPoolPlugin()=delete
nvinfer1::plugin::BEVPoolPlugin::setPluginNamespace
virtual void setPluginNamespace(const char *pluginNamespace) noexcept override