NVIDIA DeepStream SDK API Reference

6.4 Release
deepstream_sinks.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2022, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  */
22 
23 #ifndef __NVGSTDS_SINKS_H__
24 #define __NVGSTDS_SINKS_H__
25 
26 #ifdef __aarch64__
27 #define IS_TEGRA
28 #endif
29 
30 #include <gst/gst.h>
31 
32 #ifdef __cplusplus
33 extern "C"
34 {
35 #endif
36 
37 typedef enum
38 {
40 #ifndef IS_TEGRA
42 #else
43  NV_DS_SINK_RENDER_3D,
44 #endif
49 } NvDsSinkType;
50 
51 typedef enum
52 {
56 
57 typedef enum
58 {
63 
64 typedef enum
65 {
69 
70 typedef enum
71 {
75 
76 typedef struct
77 {
82  gint bitrate;
83  guint profile;
84  gint sync;
86  guint gpu_id;
87  guint rtsp_port;
88  guint udp_port;
89  guint64 udp_buffer_size;
91  guint copy_meta;
93  gint sw_preset;
95 
96 typedef struct
97 {
99  gint width;
100  gint height;
101  gint sync;
102  gboolean qos;
104  guint gpu_id;
106  guint offset_x;
107  guint offset_y;
108  guint color_range;
109  guint conn_id;
110  guint plane_id;
111  gboolean set_mode;
113 
114 typedef struct
115 {
116  gboolean enable;
127  gchar* proto_lib;
128  gchar* conn_str;
129  gchar* topic;
132  gboolean disable_msgconv;
133  gint sync;
134  gboolean new_api;
136 
137 typedef struct
138 {
139  gboolean enable;
140  guint source_id;
141  gboolean link_to_demux;
143  gint sync;
148 
149 typedef struct
150 {
151  GstElement *bin;
152  GstElement *queue;
153  GstElement *transform;
154  GstElement *cap_filter;
155  GstElement *enc_caps_filter;
156  GstElement *encoder;
157  GstElement *codecparse;
158  GstElement *mux;
159  GstElement *sink;
160  GstElement *rtppay;
163 
164 typedef struct
165 {
166  GstElement *bin;
167  GstElement *queue;
168  GstElement *tee;
169 
170  gint num_bins;
172 } NvDsSinkBin;
173 
188 gboolean create_sink_bin (guint num_sub_bins,
189  NvDsSinkSubBinConfig *config_array, NvDsSinkBin *bin, guint index);
190 
191 void destroy_sink_bin (void);
192 gboolean create_demux_sink_bin (guint num_sub_bins,
193  NvDsSinkSubBinConfig *config_array, NvDsSinkBin *bin, guint index);
194 
195 void set_rtsp_udp_port_num (guint rtsp_port_num, guint udp_port_num);
196 
197 #ifdef __cplusplus
198 }
199 #endif
200 
201 #endif
NvDsSinkEncoderConfig
Definition: deepstream_sinks.h:76
NvDsSinkMsgConvBrokerConfig::disable_msgconv
gboolean disable_msgconv
Definition: deepstream_sinks.h:132
NV_DS_SINK_UDPSINK
@ NV_DS_SINK_UDPSINK
Definition: deepstream_sinks.h:46
NvDsSinkMsgConvBrokerConfig::sync
gint sync
Definition: deepstream_sinks.h:133
NvDsSinkMsgConvBrokerConfig::conv_msg2p_lib
gchar * conv_msg2p_lib
Definition: deepstream_sinks.h:120
NvDsSinkMsgConvBrokerConfig::multiple_payloads
gboolean multiple_payloads
Definition: deepstream_sinks.h:123
NvDsSinkBinSubBin::mux
GstElement * mux
Definition: deepstream_sinks.h:158
NvDsSinkEncoderConfig::output_io_mode
NvDsEncOutputIOMode output_io_mode
Definition: deepstream_sinks.h:92
NvDsSinkEncoderConfig::enc_type
NvDsEncHwSwType enc_type
Definition: deepstream_sinks.h:81
destroy_sink_bin
void destroy_sink_bin(void)
NvDsSinkBinSubBin::sink_buffer_probe
gulong sink_buffer_probe
Definition: deepstream_sinks.h:161
NvDsSinkEncoderConfig::output_file_path
gchar * output_file_path
Definition: deepstream_sinks.h:85
NvDsSinkBinSubBin::sink
GstElement * sink
Definition: deepstream_sinks.h:159
NvDsSinkRenderConfig::qos_value_specified
gboolean qos_value_specified
Definition: deepstream_sinks.h:103
NV_DS_SINK_FAKE
@ NV_DS_SINK_FAKE
Definition: deepstream_sinks.h:39
NvDsSinkRenderConfig::type
NvDsSinkType type
Definition: deepstream_sinks.h:98
NvDsSinkSubBinConfig::render_config
NvDsSinkRenderConfig render_config
Definition: deepstream_sinks.h:145
NvDsSinkRenderConfig::width
gint width
Definition: deepstream_sinks.h:99
NvDsSinkRenderConfig::gpu_id
guint gpu_id
Definition: deepstream_sinks.h:104
NvDsSinkSubBinConfig
Definition: deepstream_sinks.h:137
NvDsSinkEncoderConfig::copy_meta
guint copy_meta
Definition: deepstream_sinks.h:91
NvDsSinkSubBinConfig::msg_conv_broker_config
NvDsSinkMsgConvBrokerConfig msg_conv_broker_config
Definition: deepstream_sinks.h:146
NvDsSinkMsgConvBrokerConfig::broker_config_file_path
gchar * broker_config_file_path
Definition: deepstream_sinks.h:130
NvDsSinkRenderConfig::set_mode
gboolean set_mode
Definition: deepstream_sinks.h:111
NvDsSinkBin::tee
GstElement * tee
Definition: deepstream_sinks.h:168
NvDsSinkType
NvDsSinkType
Definition: deepstream_sinks.h:37
create_sink_bin
gboolean create_sink_bin(guint num_sub_bins, NvDsSinkSubBinConfig *config_array, NvDsSinkBin *bin, guint index)
Initialize NvDsSinkBin.
NvDsSinkBin::queue
GstElement * queue
Definition: deepstream_sinks.h:167
NvDsSinkBin::num_bins
gint num_bins
Definition: deepstream_sinks.h:170
NvDsSinkBinSubBin::encoder
GstElement * encoder
Definition: deepstream_sinks.h:156
NvDsEncOutputIOMode
NvDsEncOutputIOMode
Definition: deepstream_sinks.h:70
NvDsSinkRenderConfig::conn_id
guint conn_id
Definition: deepstream_sinks.h:109
NvDsSinkRenderConfig::offset_y
guint offset_y
Definition: deepstream_sinks.h:107
NvDsSinkSubBinConfig::link_to_demux
gboolean link_to_demux
Definition: deepstream_sinks.h:141
NvDsSinkMsgConvBrokerConfig::new_api
gboolean new_api
Definition: deepstream_sinks.h:134
NV_DS_ENCODER_H265
@ NV_DS_ENCODER_H265
Definition: deepstream_sinks.h:60
NvDsSinkMsgConvBrokerConfig
Definition: deepstream_sinks.h:114
NvDsSinkBinSubBin::rtppay
GstElement * rtppay
Definition: deepstream_sinks.h:160
NvDsSinkRenderConfig
Definition: deepstream_sinks.h:96
NvDsSinkMsgConvBrokerConfig::debug_payload_dir
gchar * debug_payload_dir
Definition: deepstream_sinks.h:122
NvDsSinkMsgConvBrokerConfig::conv_frame_interval
guint conv_frame_interval
Definition: deepstream_sinks.h:125
NV_DS_ENCODER_OUTPUT_IO_MODE_DMABUF_IMPORT
@ NV_DS_ENCODER_OUTPUT_IO_MODE_DMABUF_IMPORT
Definition: deepstream_sinks.h:73
NV_DS_SINK_RENDER_DRM
@ NV_DS_SINK_RENDER_DRM
Definition: deepstream_sinks.h:47
NvDsSinkBinSubBin::enc_caps_filter
GstElement * enc_caps_filter
Definition: deepstream_sinks.h:155
NvDsSinkEncoderConfig::iframeinterval
guint iframeinterval
Definition: deepstream_sinks.h:90
NvDsSinkSubBinConfig::type
NvDsSinkType type
Definition: deepstream_sinks.h:142
NvDsSinkEncoderConfig::sync
gint sync
Definition: deepstream_sinks.h:84
NvDsSinkEncoderConfig::bitrate
gint bitrate
Definition: deepstream_sinks.h:82
NV_DS_ENCODER_TYPE_HW
@ NV_DS_ENCODER_TYPE_HW
Definition: deepstream_sinks.h:66
NvDsSinkRenderConfig::plane_id
guint plane_id
Definition: deepstream_sinks.h:110
NvDsSinkMsgConvBrokerConfig::proto_lib
gchar * proto_lib
Broker settings.
Definition: deepstream_sinks.h:127
NV_DS_SINK_ENCODE_FILE
@ NV_DS_SINK_ENCODE_FILE
Definition: deepstream_sinks.h:45
NvDsSinkBinSubBin
Definition: deepstream_sinks.h:149
NV_DS_SINK_RENDER_EGL
@ NV_DS_SINK_RENDER_EGL
Definition: deepstream_sinks.h:41
NvDsSinkRenderConfig::color_range
guint color_range
Definition: deepstream_sinks.h:108
NvDsEncHwSwType
NvDsEncHwSwType
Definition: deepstream_sinks.h:64
NV_DS_CONTAINER_MKV
@ NV_DS_CONTAINER_MKV
Definition: deepstream_sinks.h:54
NvDsSinkMsgConvBrokerConfig::broker_comp_id
guint broker_comp_id
Definition: deepstream_sinks.h:131
NvDsSinkEncoderConfig::udp_buffer_size
guint64 udp_buffer_size
Definition: deepstream_sinks.h:89
NvDsSinkEncoderConfig::sw_preset
gint sw_preset
Definition: deepstream_sinks.h:93
NvDsSinkRenderConfig::nvbuf_memory_type
guint nvbuf_memory_type
Definition: deepstream_sinks.h:105
NvDsSinkRenderConfig::height
gint height
Definition: deepstream_sinks.h:100
NvDsSinkRenderConfig::qos
gboolean qos
Definition: deepstream_sinks.h:102
NV_DS_SINK_MSG_CONV_BROKER
@ NV_DS_SINK_MSG_CONV_BROKER
Definition: deepstream_sinks.h:48
NvDsSinkBinSubBin::cap_filter
GstElement * cap_filter
Definition: deepstream_sinks.h:154
NvDsSinkSubBinConfig::enable
gboolean enable
Definition: deepstream_sinks.h:139
NvDsSinkEncoderConfig::profile
guint profile
Definition: deepstream_sinks.h:83
NvDsSinkBinSubBin::queue
GstElement * queue
Definition: deepstream_sinks.h:152
NvDsSinkMsgConvBrokerConfig::conv_msg2p_new_api
gboolean conv_msg2p_new_api
Definition: deepstream_sinks.h:124
NvDsSinkRenderConfig::sync
gint sync
Definition: deepstream_sinks.h:101
NvDsSinkEncoderConfig::codec
NvDsEncoderType codec
Definition: deepstream_sinks.h:80
NvDsSinkSubBinConfig::encoder_config
NvDsSinkEncoderConfig encoder_config
Definition: deepstream_sinks.h:144
NV_DS_ENCODER_H264
@ NV_DS_ENCODER_H264
Definition: deepstream_sinks.h:59
MAX_SINK_BINS
#define MAX_SINK_BINS
Definition: deepstream_config.h:95
NvDsSinkEncoderConfig::container
NvDsContainerType container
Definition: deepstream_sinks.h:79
NvDsSinkMsgConvBrokerConfig::enable
gboolean enable
Definition: deepstream_sinks.h:116
NvDsSinkMsgConvBrokerConfig::conv_payload_type
guint conv_payload_type
Definition: deepstream_sinks.h:119
NvDsSinkMsgConvBrokerConfig::conn_str
gchar * conn_str
Definition: deepstream_sinks.h:128
NV_DS_CONTAINER_MP4
@ NV_DS_CONTAINER_MP4
Definition: deepstream_sinks.h:53
NvDsSinkBinSubBin::transform
GstElement * transform
Definition: deepstream_sinks.h:153
NvDsSinkBin
Definition: deepstream_sinks.h:164
NV_DS_ENCODER_TYPE_SW
@ NV_DS_ENCODER_TYPE_SW
Definition: deepstream_sinks.h:67
NvDsSinkSubBinConfig::source_id
guint source_id
Definition: deepstream_sinks.h:140
NvDsSinkBin::bin
GstElement * bin
Definition: deepstream_sinks.h:166
NvDsSinkBinSubBin::codecparse
GstElement * codecparse
Definition: deepstream_sinks.h:157
create_demux_sink_bin
gboolean create_demux_sink_bin(guint num_sub_bins, NvDsSinkSubBinConfig *config_array, NvDsSinkBin *bin, guint index)
NvDsSinkEncoderConfig::rtsp_port
guint rtsp_port
Definition: deepstream_sinks.h:87
NvDsSinkMsgConvBrokerConfig::config_file_path
gchar * config_file_path
MsgConv settings.
Definition: deepstream_sinks.h:118
NvDsSinkBinSubBin::bin
GstElement * bin
Definition: deepstream_sinks.h:151
NvDsContainerType
NvDsContainerType
Definition: deepstream_sinks.h:51
NvDsSinkEncoderConfig::type
NvDsSinkType type
Definition: deepstream_sinks.h:78
NvDsSinkMsgConvBrokerConfig::conv_comp_id
guint conv_comp_id
Definition: deepstream_sinks.h:121
NvDsSinkSubBinConfig::sync
gint sync
Definition: deepstream_sinks.h:143
NvDsSinkEncoderConfig::udp_port
guint udp_port
Definition: deepstream_sinks.h:88
NvDsSinkEncoderConfig::gpu_id
guint gpu_id
Definition: deepstream_sinks.h:86
NV_DS_ENCODER_MPEG4
@ NV_DS_ENCODER_MPEG4
Definition: deepstream_sinks.h:61
NvDsSinkRenderConfig::offset_x
guint offset_x
Definition: deepstream_sinks.h:106
NvDsEncoderType
NvDsEncoderType
Definition: deepstream_sinks.h:57
NV_DS_ENCODER_OUTPUT_IO_MODE_MMAP
@ NV_DS_ENCODER_OUTPUT_IO_MODE_MMAP
Definition: deepstream_sinks.h:72
set_rtsp_udp_port_num
void set_rtsp_udp_port_num(guint rtsp_port_num, guint udp_port_num)
NvDsSinkMsgConvBrokerConfig::topic
gchar * topic
Definition: deepstream_sinks.h:129