NVIDIA DeepStream SDK API Reference

7.0 Release
nvdspostprocesslib_interface.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in
13  * all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21  * DEALINGS IN THE SOFTWARE.
22  */
23 
24 #ifndef __NVDSPOSTPROCESSLIB_INTERFACE_HPP__
25 #define __NVDSPOSTPROCESSLIB_INTERFACE_HPP__
26 
27 #include <string>
28 #include <gst/gstbuffer.h>
29 
30 enum class BufferResult {
31  Buffer_Ok, // Push the buffer from submit_input function
32  Buffer_Drop, // Drop the buffer inside submit_input function
33  Buffer_Async, // Return from submit_input function, postprocess lib to push the buffer
34  Buffer_Error // Error occured
35 };
36 
38  GstBaseTransform *m_element;
39  guint m_gpuId;
41 };
42 
43 struct Property
44 {
45  Property(std::string arg_key, std::string arg_value) : key(arg_key), value(arg_value)
46  {
47  }
48 
49  std::string key;
50  std::string value;
51 };
52 
54 {
55 public:
56  virtual bool HandleEvent (GstEvent *event) = 0;
57  virtual bool SetConfigFile (const gchar *config_file) = 0;
58  virtual BufferResult ProcessBuffer (GstBuffer *inbuf) = 0;
59  virtual ~IDSPostProcessLibrary() {};
60 };
61 
62 #endif
BufferResult::Buffer_Async
@ Buffer_Async
IDSPostProcessLibrary
Definition: nvdspostprocesslib_interface.hpp:53
BufferResult::Buffer_Drop
@ Buffer_Drop
Property::key
std::string key
Definition: gst-nvdsA2Vtemplate/includes/nvdscustomlib_interface.hpp:39
BufferResult
BufferResult
Definition: gst-nvdsA2Vtemplate/includes/nvdscustomlib_interface.hpp:22
Property::value
std::string value
Definition: gst-nvdsA2Vtemplate/includes/nvdscustomlib_interface.hpp:40
IDSPostProcessLibrary::SetConfigFile
virtual bool SetConfigFile(const gchar *config_file)=0
IDSPostProcessLibrary::ProcessBuffer
virtual BufferResult ProcessBuffer(GstBuffer *inbuf)=0
DSPostProcess_CreateParams::m_gpuId
guint m_gpuId
Definition: nvdspostprocesslib_interface.hpp:39
IDSPostProcessLibrary::~IDSPostProcessLibrary
virtual ~IDSPostProcessLibrary()
Definition: nvdspostprocesslib_interface.hpp:59
DSPostProcess_CreateParams::m_cudaStream
cudaStream_t m_cudaStream
Definition: nvdspostprocesslib_interface.hpp:40
DSPostProcess_CreateParams::m_element
GstBaseTransform * m_element
Definition: nvdspostprocesslib_interface.hpp:38
cudaStream_t
struct CUstream_st * cudaStream_t
Forward declaration of cudaStream_t.
Definition: nvbufsurftransform.h:34
Property
Definition: gst-nvdsA2Vtemplate/includes/nvdscustomlib_interface.hpp:33
DSPostProcess_CreateParams
Definition: nvdspostprocesslib_interface.hpp:37
Property::Property
Property(std::string arg_key, std::string arg_value)
Definition: nvdspostprocesslib_interface.hpp:45
GstBuffer
struct _GstBuffer GstBuffer
Definition: idatatype.h:19
IDSPostProcessLibrary::HandleEvent
virtual bool HandleEvent(GstEvent *event)=0
BufferResult::Buffer_Error
@ Buffer_Error
BufferResult::Buffer_Ok
@ Buffer_Ok