NVIDIA DeepStream SDK API Reference

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