NVIDIA DeepStream SDK API Reference

9.2 Release
sources/apps/common/includes/deepstream_sources.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2018-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef __NVGSTDS_SOURCES_H__
19 #define __NVGSTDS_SOURCES_H__
20 
21 #include <gst/gst.h>
22 #include "deepstream_dewarper.h"
23 #include <sys/time.h>
24 
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #endif
29 
30 typedef enum
31 {
42 
43 typedef struct
44 {
46  gboolean enable;
47  gboolean loop;
48  gboolean live_source;
49  gboolean Intra_decode;
50  gboolean low_latency_mode;
51  guint smart_record;
58  gchar *uri;
59  gchar *dir_path;
60  gchar *file_prefix;
61  gint latency;
68  guint num_sources;
69  guint buffer_mode;
70  guint gpu_id;
71  guint camera_id;
72  guint source_id;
74  guint leaky;
80 #if defined(__aarch64__) && !defined(AARCH64_IS_SBSA)
81  /* copy-hw as VIC applicable only for Jetson */
82  guint nvvideoconvert_copy_hw;
83 #endif
86  gboolean drop_on_latency;
105  gchar* alsa_device;
107  gchar* video_format;
110  gboolean ipc_frame_copy;
112 
114 
115 typedef struct
116 {
117  GstElement *bin;
118  GstElement *src_elem;
119  GstElement *cap_filter;
120  GstElement *cap_filter1;
121  GstElement *depay;
122  GstElement *parser;
123  GstElement *enc_que;
124  GstElement *dec_que;
125  GstElement *decodebin;
126  GstElement *enc_filter;
127  GstElement *encbin_que;
128  GstElement *tee;
129  GstElement *tee_rtsp_pre_decode;
130  GstElement *tee_rtsp_post_decode;
131  GstElement *fakesink_queue;
132  GstElement *fakesink;
133  GstElement *nvvidconv;
134  GstElement *audio_converter;
135  GstElement *audio_resample;
136 
137  gboolean do_record;
138  guint64 pre_event_rec;
139  GMutex bin_lock;
140  guint bin_id;
144  gboolean have_eos;
145  struct timeval last_buffer_time;
146  struct timeval last_reconnect_time;
149  gpointer bbox_meta;
151  gchar *location;
152  gchar *file;
153  gchar *direction;
154  gint latency;
156  gboolean got_key_frame;
157  gboolean eos_done;
158  gboolean reset_done;
159  gboolean live_source;
160  gboolean reconfiguring;
163  gulong probe_id;
166  guint source_id;
169  gpointer recordCtx;
170 } NvDsSrcBin;
171 
173 {
174  GstElement *bin;
175  GstElement *streammux;
176  GstElement *nvmultiurisrcbin;
177  GThread *reset_thread;
179  guint num_bins;
180  guint num_fr_on;
181  gboolean live_source;
183 };
184 
185 
186 gboolean create_source_bin (NvDsSourceConfig *config, NvDsSrcBin *bin);
187 gboolean create_audio_source_bin (NvDsSourceConfig *config, NvDsSrcBin *bin);
188 
202 gboolean
203 create_multi_source_bin (guint num_sub_bins, NvDsSourceConfig *configs,
204  NvDsSrcParentBin *bin);
205 
219 gboolean
220 create_nvmultiurisrcbin_bin (guint num_sub_bins, NvDsSourceConfig *configs,
221  NvDsSrcParentBin *bin);
222 
223 gboolean reset_source_pipeline (gpointer data);
224 gboolean set_source_to_playing (gpointer data);
225 gpointer reset_encodebin (gpointer data);
226 void destroy_smart_record_bin (gpointer data);
227 #ifdef __cplusplus
228 }
229 #endif
230 
231 #endif
NvDsSrcBin::bin
GstElement * bin
Definition: sources/apps/common/includes/deepstream_sources.h:117
NvDsSourceConfig::dir_path
gchar * dir_path
Definition: sources/apps/common/includes/deepstream_sources.h:59
reset_source_pipeline
gboolean reset_source_pipeline(gpointer data)
NvDsSourceConfig::num_decode_surfaces
guint num_decode_surfaces
Definition: sources/apps/common/includes/deepstream_sources.h:76
NvDsSrcBin::direction
gchar * direction
Definition: sources/apps/common/includes/deepstream_sources.h:153
NvDsSrcBin::rtsp_reconnect_attempts
gint rtsp_reconnect_attempts
Definition: sources/apps/common/includes/deepstream_sources.h:142
NvDsSrcParentBin::reset_thread
GThread * reset_thread
Definition: sources/apps/common/includes/deepstream_sources.h:177
NvDsSourceConfig::cuda_memory_type
guint cuda_memory_type
Definition: sources/apps/common/includes/deepstream_sources.h:79
NvDsSrcParentBin::nvstreammux_eosmonitor_probe
gulong nvstreammux_eosmonitor_probe
Definition: sources/apps/common/includes/deepstream_sources.h:182
NvDsSrcBin::live_source
gboolean live_source
Definition: sources/apps/common/includes/deepstream_sources.h:159
NvDsSrcBin::eos_done
gboolean eos_done
Definition: sources/apps/common/includes/deepstream_sources.h:157
NvDsSourceConfig::low_latency_mode
gboolean low_latency_mode
Definition: sources/apps/common/includes/deepstream_sources.h:50
NvDsSourceConfig::ipc_frame_copy
gboolean ipc_frame_copy
VIA-S-5: publish this source's decoded frames over IPC (sets the nvurisrcbin/nvmultiurisrcbin ipc-fra...
Definition: sources/apps/common/includes/deepstream_sources.h:110
NvDsSourceConfig::camera_csi_sensor_id
gint camera_csi_sensor_id
Definition: sources/apps/common/includes/deepstream_sources.h:56
NvDsSrcParentBin::nvmultiurisrcbin
GstElement * nvmultiurisrcbin
Definition: sources/apps/common/includes/deepstream_sources.h:176
NvDsSourceConfig::alsa_device
gchar * alsa_device
ALSA device, as defined in an asound configuration file.
Definition: sources/apps/common/includes/deepstream_sources.h:105
NvDsSourceConfig::camera_v4l2_dev_node
gint camera_v4l2_dev_node
Definition: sources/apps/common/includes/deepstream_sources.h:57
NvDsSrcBin::bin_id
guint bin_id
Definition: sources/apps/common/includes/deepstream_sources.h:140
NvDsSourceConfig::smart_rec_def_duration
guint smart_rec_def_duration
Definition: sources/apps/common/includes/deepstream_sources.h:64
NV_DS_SOURCE_AUDIO_WAV
@ NV_DS_SOURCE_AUDIO_WAV
Definition: sources/apps/common/includes/deepstream_sources.h:37
set_source_to_playing
gboolean set_source_to_playing(gpointer data)
NvDsSrcBin::dec_que
GstElement * dec_que
Definition: sources/apps/common/includes/deepstream_sources.h:124
NvDsSrcBin::cap_filter
GstElement * cap_filter
Definition: sources/apps/common/includes/deepstream_sources.h:119
NvDsSrcBin::encbin_que
GstElement * encbin_que
Definition: sources/apps/common/includes/deepstream_sources.h:127
NvDsSrcBin::file
gchar * file
Definition: sources/apps/common/includes/deepstream_sources.h:152
NvDsSrcBin::src_buffer_probe
gulong src_buffer_probe
Definition: sources/apps/common/includes/deepstream_sources.h:147
NvDsSrcBin::cap_filter1
GstElement * cap_filter1
Definition: sources/apps/common/includes/deepstream_sources.h:120
NvDsSrcBin::location
gchar * location
Definition: sources/apps/common/includes/deepstream_sources.h:151
NvDsSourceConfig::leaky
guint leaky
Definition: sources/apps/common/includes/deepstream_sources.h:74
NvDsSrcBin::fakesink_queue
GstElement * fakesink_queue
Definition: sources/apps/common/includes/deepstream_sources.h:131
NvDsSrcParentBin::live_source
gboolean live_source
Definition: sources/apps/common/includes/deepstream_sources.h:181
NvDsSrcBin::src_elem
GstElement * src_elem
Definition: sources/apps/common/includes/deepstream_sources.h:118
NvDsSrcBin::config
NvDsSourceConfig * config
Definition: sources/apps/common/includes/deepstream_sources.h:167
NvDsSrcBin::audio_resample
GstElement * audio_resample
Definition: sources/apps/common/includes/deepstream_sources.h:135
NvDsDewarperBin
Definition: sources/apps/common/includes/deepstream_dewarper.h:28
NvDsSourceConfig::drop_on_latency
gboolean drop_on_latency
Definition: sources/apps/common/includes/deepstream_sources.h:86
create_audio_source_bin
gboolean create_audio_source_bin(NvDsSourceConfig *config, NvDsSrcBin *bin)
NvDsSrcBin::decodebin
GstElement * decodebin
Definition: sources/apps/common/includes/deepstream_sources.h:125
NvDsSourceConfig::dewarper_config
NvDsDewarperConfig dewarper_config
Definition: sources/apps/common/includes/deepstream_sources.h:84
NvDsSourceConfig::init_rtsp_reconnect_interval_sec
gint init_rtsp_reconnect_interval_sec
Definition: sources/apps/common/includes/deepstream_sources.h:89
NvDsSourceConfig::http_max_concurrent_downloads
guint http_max_concurrent_downloads
Max concurrent HTTP(S) downloads for nvmultiurisrcbin (0 = max-batch-size).
Definition: sources/apps/common/includes/deepstream_sources.h:98
NvDsSourceConfig::smart_rec_cache_size
guint smart_rec_cache_size
Definition: sources/apps/common/includes/deepstream_sources.h:62
NvDsSourceConfig::type
NvDsSourceType type
Definition: sources/apps/common/includes/deepstream_sources.h:45
NvDsSrcParentBin::sub_bins
NvDsSrcBin sub_bins[MAX_SOURCE_BINS]
Definition: sources/apps/common/includes/deepstream_sources.h:178
NvDsSourceConfig::num_extra_surfaces
guint num_extra_surfaces
Definition: sources/apps/common/includes/deepstream_sources.h:77
NvDsSourceConfig::extract_sei_type5_data
gboolean extract_sei_type5_data
Definition: sources/apps/common/includes/deepstream_sources.h:87
NvDsSourceConfig::num_sources
guint num_sources
Definition: sources/apps/common/includes/deepstream_sources.h:68
NvDsSourceConfig::file_prefix
gchar * file_prefix
Definition: sources/apps/common/includes/deepstream_sources.h:60
NvDsSrcBin::fakesink
GstElement * fakesink
Definition: sources/apps/common/includes/deepstream_sources.h:132
NvDsSrcBin::tee_rtsp_post_decode
GstElement * tee_rtsp_post_decode
Definition: sources/apps/common/includes/deepstream_sources.h:130
deepstream_dewarper.h
NvDsSrcBin::source_id
guint source_id
Definition: sources/apps/common/includes/deepstream_sources.h:166
NvDsSrcBin::probe_id
gulong probe_id
Definition: sources/apps/common/includes/deepstream_sources.h:163
NvDsSourceConfig::rtsp_reconnect_attempts
guint rtsp_reconnect_attempts
Definition: sources/apps/common/includes/deepstream_sources.h:90
NvDsSrcBin::parser
GstElement * parser
Definition: sources/apps/common/includes/deepstream_sources.h:122
GstBuffer
struct _GstBuffer GstBuffer
Definition: includes/ds3d/common/idatatype.h:24
NvDsSourceConfig::rtsp_reconnect_interval_sec
gint rtsp_reconnect_interval_sec
Definition: sources/apps/common/includes/deepstream_sources.h:88
NvDsSrcBin::prev_accumulated_base
guint64 prev_accumulated_base
Definition: sources/apps/common/includes/deepstream_sources.h:165
NvDsSourceConfig::latency
gint latency
Definition: sources/apps/common/includes/deepstream_sources.h:61
NV_DS_SOURCE_URI
@ NV_DS_SOURCE_URI
Definition: sources/apps/common/includes/deepstream_sources.h:33
NvDsSourceConfig::smart_rec_container
guint smart_rec_container
Definition: sources/apps/common/includes/deepstream_sources.h:63
NV_DS_SOURCE_ALSA_SRC
@ NV_DS_SOURCE_ALSA_SRC
Definition: sources/apps/common/includes/deepstream_sources.h:39
NvDsSourceConfig::live_source
gboolean live_source
Definition: sources/apps/common/includes/deepstream_sources.h:48
NvDsSourceConfig::sensorIdToPadIdMapping
gboolean sensorIdToPadIdMapping
Definition: sources/apps/common/includes/deepstream_sources.h:99
NvDsSourceConfig
Definition: sources/apps/common/includes/deepstream_sources.h:43
NvDsSrcBin::bin_lock
GMutex bin_lock
Definition: sources/apps/common/includes/deepstream_sources.h:139
NvDsSourceType
NvDsSourceType
Definition: sources/apps/common/includes/deepstream_sources.h:30
NvDsSrcBin::reconfiguring
gboolean reconfiguring
Definition: sources/apps/common/includes/deepstream_sources.h:160
NvDsSourceConfig::nvbuf_memory_type
guint nvbuf_memory_type
Definition: sources/apps/common/includes/deepstream_sources.h:78
NvDsSrcBin::inbuf
GstBuffer * inbuf
Definition: sources/apps/common/includes/deepstream_sources.h:150
NvDsSrcParentBin::num_fr_on
guint num_fr_on
Definition: sources/apps/common/includes/deepstream_sources.h:180
NvDsSourceConfig::video_format
gchar * video_format
Video format to be applied at nvvideoconvert source pad.
Definition: sources/apps/common/includes/deepstream_sources.h:107
NV_DS_SOURCE_CAMERA_CSI
@ NV_DS_SOURCE_CAMERA_CSI
Definition: sources/apps/common/includes/deepstream_sources.h:36
NvDsSrcBin::tee_rtsp_pre_decode
GstElement * tee_rtsp_pre_decode
Definition: sources/apps/common/includes/deepstream_sources.h:129
NvDsSrcBin::enc_que
GstElement * enc_que
Definition: sources/apps/common/includes/deepstream_sources.h:123
NvDsSourceConfig::select_rtp_protocol
guint select_rtp_protocol
Definition: sources/apps/common/includes/deepstream_sources.h:73
NV_DS_SOURCE_RTSP
@ NV_DS_SOURCE_RTSP
Definition: sources/apps/common/includes/deepstream_sources.h:35
destroy_smart_record_bin
void destroy_smart_record_bin(gpointer data)
NvDsSrcBin::rtspsrc_monitor_probe
gulong rtspsrc_monitor_probe
Definition: sources/apps/common/includes/deepstream_sources.h:148
NvDsSrcBin::bbox_meta
gpointer bbox_meta
Definition: sources/apps/common/includes/deepstream_sources.h:149
NvDsSourceConfig::max_size_buffers
guint max_size_buffers
Definition: sources/apps/common/includes/deepstream_sources.h:75
NvDsSrcBin::tee
GstElement * tee
Definition: sources/apps/common/includes/deepstream_sources.h:128
NvDsSourceConfig::source_height
gint source_height
Definition: sources/apps/common/includes/deepstream_sources.h:53
NvDsSourceConfig::smart_rec_duration
guint smart_rec_duration
Definition: sources/apps/common/includes/deepstream_sources.h:65
NvDsSrcBin
Definition: sources/apps/common/includes/deepstream_sources.h:115
NvDsSrcBin::do_record
gboolean do_record
Definition: sources/apps/common/includes/deepstream_sources.h:137
NvDsSrcParentBin::num_bins
guint num_bins
Definition: sources/apps/common/includes/deepstream_sources.h:179
NvDsSourceConfig::uri
gchar * uri
Definition: sources/apps/common/includes/deepstream_sources.h:58
NvDsSourceConfig::smart_rec_start_time
guint smart_rec_start_time
Definition: sources/apps/common/includes/deepstream_sources.h:66
NvDsSrcParentBin::bin
GstElement * bin
Definition: sources/apps/common/includes/deepstream_sources.h:174
NvDsSourceConfig::source_width
gint source_width
Definition: sources/apps/common/includes/deepstream_sources.h:52
NvDsSourceConfig::loop
gboolean loop
Definition: sources/apps/common/includes/deepstream_sources.h:47
NvDsSourceConfig::enable
gboolean enable
Definition: sources/apps/common/includes/deepstream_sources.h:46
NvDsSrcBin::accumulated_base
guint64 accumulated_base
Definition: sources/apps/common/includes/deepstream_sources.h:164
NvDsSourceConfig::smart_rec_interval
guint smart_rec_interval
Definition: sources/apps/common/includes/deepstream_sources.h:67
NvDsSrcBin::num_rtsp_reconnects
gint num_rtsp_reconnects
Definition: sources/apps/common/includes/deepstream_sources.h:143
NvDsSrcBin::recordCtx
gpointer recordCtx
Definition: sources/apps/common/includes/deepstream_sources.h:169
NvDsSourceConfig::simulate_fps_interval_ms
guint simulate_fps_interval_ms
Definition: sources/apps/common/includes/deepstream_sources.h:92
create_multi_source_bin
gboolean create_multi_source_bin(guint num_sub_bins, NvDsSourceConfig *configs, NvDsSrcParentBin *bin)
Initialize NvDsSrcParentBin.
NV_DS_SOURCE_AUDIO_URI
@ NV_DS_SOURCE_AUDIO_URI
Definition: sources/apps/common/includes/deepstream_sources.h:38
NvDsSrcParentBin
Definition: sources/apps/common/includes/deepstream_sources.h:172
NvDsSourceConfig::rtsp_reconnect_attempt_exceeded
gboolean rtsp_reconnect_attempt_exceeded
Definition: sources/apps/common/includes/deepstream_sources.h:91
NvDsSourceConfig::camera_id
guint camera_id
Definition: sources/apps/common/includes/deepstream_sources.h:71
NvDsSourceConfig::smart_record
guint smart_record
Definition: sources/apps/common/includes/deepstream_sources.h:51
NvDsSourceConfig::http_connect_timeout
guint http_connect_timeout
Definition: sources/apps/common/includes/deepstream_sources.h:96
NvDsSrcBin::depay
GstElement * depay
Definition: sources/apps/common/includes/deepstream_sources.h:121
NvDsSrcBin::async_state_watch_running
gboolean async_state_watch_running
Definition: sources/apps/common/includes/deepstream_sources.h:161
create_source_bin
gboolean create_source_bin(NvDsSourceConfig *config, NvDsSrcBin *bin)
NvDsSrcBin::have_eos
gboolean have_eos
Definition: sources/apps/common/includes/deepstream_sources.h:144
NvDsSourceConfig::gpu_id
guint gpu_id
Definition: sources/apps/common/includes/deepstream_sources.h:70
NvDsSourceConfig::buffer_mode
guint buffer_mode
Definition: sources/apps/common/includes/deepstream_sources.h:69
NvDsSrcBin::parent_bin
NvDsSrcParentBin * parent_bin
Definition: sources/apps/common/includes/deepstream_sources.h:168
NvDsSourceConfig::source_fps_d
gint source_fps_d
Definition: sources/apps/common/includes/deepstream_sources.h:55
reset_encodebin
gpointer reset_encodebin(gpointer data)
data
JSAMPIMAGE data
Definition: sources/libs/nvll_batch_jpeg_encode/oss/jpeglib.h:967
NvDsSrcBin::reset_done
gboolean reset_done
Definition: sources/apps/common/includes/deepstream_sources.h:158
NvDsSrcBin::audio_converter
GstElement * audio_converter
Definition: sources/apps/common/includes/deepstream_sources.h:134
NvDsSourceConfig::Intra_decode
gboolean Intra_decode
Definition: sources/apps/common/includes/deepstream_sources.h:49
NV_DS_SOURCE_CAMERA_V4L2
@ NV_DS_SOURCE_CAMERA_V4L2
Definition: sources/apps/common/includes/deepstream_sources.h:32
NV_DS_SOURCE_URI_MULTIPLE
@ NV_DS_SOURCE_URI_MULTIPLE
Definition: sources/apps/common/includes/deepstream_sources.h:34
NvDsSourceConfig::source_id
guint source_id
Definition: sources/apps/common/includes/deepstream_sources.h:72
NvDsSrcParentBin::streammux
GstElement * streammux
Definition: sources/apps/common/includes/deepstream_sources.h:175
NV_DS_SOURCE_IPC
@ NV_DS_SOURCE_IPC
Definition: sources/apps/common/includes/deepstream_sources.h:40
NvDsSourceConfig::input_audio_rate
guint input_audio_rate
Desired input audio rate to nvinferaudio from PGIE config; This config shall be copied over from NvDs...
Definition: sources/apps/common/includes/deepstream_sources.h:103
MAX_SOURCE_BINS
#define MAX_SOURCE_BINS
Definition: sources/apps/common/includes/deepstream_config.h:91
NvDsDewarperConfig
Definition: sources/apps/common/includes/deepstream_dewarper.h:40
NvDsSourceConfig::udp_buffer_size
guint udp_buffer_size
Definition: sources/apps/common/includes/deepstream_sources.h:93
NvDsSrcBin::enc_filter
GstElement * enc_filter
Definition: sources/apps/common/includes/deepstream_sources.h:126
NvDsSourceConfig::drop_frame_interval
guint drop_frame_interval
Definition: sources/apps/common/includes/deepstream_sources.h:85
NvDsSrcBin::got_key_frame
gboolean got_key_frame
Definition: sources/apps/common/includes/deepstream_sources.h:156
NvDsSrcBin::pre_event_rec
guint64 pre_event_rec
Definition: sources/apps/common/includes/deepstream_sources.h:138
NvDsSourceConfig::http_download_timeout
guint http_download_timeout
HTTP(S) file-download (curl) timeouts in seconds for nvmultiurisrcbin.
Definition: sources/apps/common/includes/deepstream_sources.h:95
NvDsSrcBin::latency
gint latency
Definition: sources/apps/common/includes/deepstream_sources.h:154
create_nvmultiurisrcbin_bin
gboolean create_nvmultiurisrcbin_bin(guint num_sub_bins, NvDsSourceConfig *configs, NvDsSrcParentBin *bin)
Initialize NvDsSrcParentBin.
NvDsSrcBin::rtsp_reconnect_interval_sec
gint rtsp_reconnect_interval_sec
Definition: sources/apps/common/includes/deepstream_sources.h:141
NvDsSrcBin::udp_buffer_size
guint udp_buffer_size
Definition: sources/apps/common/includes/deepstream_sources.h:155
NvDsSourceConfig::source_fps_n
gint source_fps_n
Definition: sources/apps/common/includes/deepstream_sources.h:54
NvDsSrcBin::nvvidconv
GstElement * nvvidconv
Definition: sources/apps/common/includes/deepstream_sources.h:133
NvDsSrcBin::dewarper_bin
NvDsDewarperBin dewarper_bin
Definition: sources/apps/common/includes/deepstream_sources.h:162