NVIDIA DeepStream SDK API Reference

9.1 Release
9.1/sources/apps/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 {
45  NvDsSourceType type;
46  gboolean enable;
47  gboolean loop;
48  gboolean live_source;
49  gboolean Intra_decode;
50  gboolean low_latency_mode;
51  guint smart_record;
52  gint source_width;
53  gint source_height;
54  gint source_fps_n;
55  gint source_fps_d;
56  gint camera_csi_sensor_id;
57  gint camera_v4l2_dev_node;
58  gchar *uri;
59  gchar *dir_path;
60  gchar *file_prefix;
61  gint latency;
62  guint smart_rec_cache_size;
63  guint smart_rec_container;
64  guint smart_rec_def_duration;
65  guint smart_rec_duration;
66  guint smart_rec_start_time;
67  guint smart_rec_interval;
68  guint num_sources;
69  guint buffer_mode;
70  guint gpu_id;
71  guint camera_id;
72  guint source_id;
73  guint select_rtp_protocol;
74  guint leaky;
75  guint max_size_buffers;
76  guint num_decode_surfaces;
77  guint num_extra_surfaces;
78  guint nvbuf_memory_type;
79  guint cuda_memory_type;
80 #if defined(__aarch64__) && !defined(AARCH64_IS_SBSA)
81  /* copy-hw as VIC applicable only for Jetson */
82  guint nvvideoconvert_copy_hw;
83 #endif
84  NvDsDewarperConfig dewarper_config;
85  guint drop_frame_interval;
86  gboolean drop_on_latency;
87  gboolean extract_sei_type5_data;
88  gint rtsp_reconnect_interval_sec;
89  gint init_rtsp_reconnect_interval_sec;
90  guint rtsp_reconnect_attempts;
91  gboolean rtsp_reconnect_attempt_exceeded;
92  guint simulate_fps_interval_ms;
93  guint udp_buffer_size;
94  gboolean sensorIdToPadIdMapping;
98  guint input_audio_rate;
100  gchar* alsa_device;
102  gchar* video_format;
104 
106 
107 typedef struct
108 {
109  GstElement *bin;
110  GstElement *src_elem;
111  GstElement *cap_filter;
112  GstElement *cap_filter1;
113  GstElement *depay;
114  GstElement *parser;
115  GstElement *enc_que;
116  GstElement *dec_que;
117  GstElement *decodebin;
118  GstElement *enc_filter;
119  GstElement *encbin_que;
120  GstElement *tee;
121  GstElement *tee_rtsp_pre_decode;
122  GstElement *tee_rtsp_post_decode;
123  GstElement *fakesink_queue;
124  GstElement *fakesink;
125  GstElement *nvvidconv;
126  GstElement *audio_converter;
127  GstElement *audio_resample;
128 
129  gboolean do_record;
130  guint64 pre_event_rec;
131  GMutex bin_lock;
132  guint bin_id;
133  gint rtsp_reconnect_interval_sec;
134  gint rtsp_reconnect_attempts;
135  gint num_rtsp_reconnects;
136  gboolean have_eos;
137  struct timeval last_buffer_time;
138  struct timeval last_reconnect_time;
139  gulong src_buffer_probe;
140  gulong rtspsrc_monitor_probe;
141  gpointer bbox_meta;
142  GstBuffer *inbuf;
143  gchar *location;
144  gchar *file;
145  gchar *direction;
146  gint latency;
147  guint udp_buffer_size;
148  gboolean got_key_frame;
149  gboolean eos_done;
150  gboolean reset_done;
151  gboolean live_source;
152  gboolean reconfiguring;
153  gboolean async_state_watch_running;
154  NvDsDewarperBin dewarper_bin;
155  gulong probe_id;
156  guint64 accumulated_base;
157  guint64 prev_accumulated_base;
158  guint source_id;
159  NvDsSourceConfig *config;
160  NvDsSrcParentBin *parent_bin;
161  gpointer recordCtx;
162 } NvDsSrcBin;
163 
164 struct NvDsSrcParentBin
165 {
166  GstElement *bin;
167  GstElement *streammux;
168  GstElement *nvmultiurisrcbin;
169  GThread *reset_thread;
171  guint num_bins;
172  guint num_fr_on;
173  gboolean live_source;
175 };
176 
177 
178 gboolean create_source_bin (NvDsSourceConfig *config, NvDsSrcBin *bin);
179 gboolean create_audio_source_bin (NvDsSourceConfig *config, NvDsSrcBin *bin);
180 
194 gboolean
195 create_multi_source_bin (guint num_sub_bins, NvDsSourceConfig *configs,
196  NvDsSrcParentBin *bin);
197 
211 gboolean
212 create_nvmultiurisrcbin_bin (guint num_sub_bins, NvDsSourceConfig *configs,
213  NvDsSrcParentBin *bin);
214 
215 gboolean reset_source_pipeline (gpointer data);
216 gboolean set_source_to_playing (gpointer data);
217 gpointer reset_encodebin (gpointer data);
218 void destroy_smart_record_bin (gpointer data);
219 #ifdef __cplusplus
220 }
221 #endif
222 
223 #endif
NV_DS_SOURCE_AUDIO_WAV
@ NV_DS_SOURCE_AUDIO_WAV
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:37
NvDsSrcParentBin::reset_thread
GThread * reset_thread
Definition: sources/apps/apps-common/includes/deepstream_sources.h:169
NvDsSrcParentBin::nvstreammux_eosmonitor_probe
gulong nvstreammux_eosmonitor_probe
Definition: sources/apps/apps-common/includes/deepstream_sources.h:174
MAX_SOURCE_BINS
#define MAX_SOURCE_BINS
Definition: sources/apps/apps-common/includes/deepstream_config.h:91
NvDsSourceType
NvDsSourceType
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:30
create_multi_source_bin
gboolean create_multi_source_bin(guint num_sub_bins, NvDsSourceConfig *configs, NvDsSrcParentBin *bin)
Initialize NvDsSrcParentBin.
NvDsSrcParentBin::nvmultiurisrcbin
GstElement * nvmultiurisrcbin
Definition: sources/apps/apps-common/includes/deepstream_sources.h:168
reset_source_pipeline
gboolean reset_source_pipeline(gpointer data)
NV_DS_SOURCE_RTSP
@ NV_DS_SOURCE_RTSP
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:35
create_source_bin
gboolean create_source_bin(NvDsSourceConfig *config, NvDsSrcBin *bin)
NvDsSrcParentBin::live_source
gboolean live_source
Definition: sources/apps/apps-common/includes/deepstream_sources.h:173
NvDsDewarperBin
Definition: sources/apps/apps-common/includes/deepstream_dewarper.h:28
NV_DS_SOURCE_CAMERA_V4L2
@ NV_DS_SOURCE_CAMERA_V4L2
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:32
NvDsSrcParentBin::sub_bins
NvDsSrcBin sub_bins[MAX_SOURCE_BINS]
Definition: sources/apps/apps-common/includes/deepstream_sources.h:170
set_source_to_playing
gboolean set_source_to_playing(gpointer data)
NV_DS_SOURCE_IPC
@ NV_DS_SOURCE_IPC
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:40
reset_encodebin
gpointer reset_encodebin(gpointer data)
NvDsSourceConfig
Definition: sources/apps/apps-common/includes/deepstream_sources.h:43
NvDsSrcParentBin::num_fr_on
guint num_fr_on
Definition: sources/apps/apps-common/includes/deepstream_sources.h:172
NV_DS_SOURCE_URI_MULTIPLE
@ NV_DS_SOURCE_URI_MULTIPLE
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:34
NvDsSrcBin
Definition: sources/apps/apps-common/includes/deepstream_sources.h:107
NvDsSrcParentBin::num_bins
guint num_bins
Definition: sources/apps/apps-common/includes/deepstream_sources.h:171
NV_DS_SOURCE_ALSA_SRC
@ NV_DS_SOURCE_ALSA_SRC
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:39
NvDsSrcParentBin::bin
GstElement * bin
Definition: sources/apps/apps-common/includes/deepstream_sources.h:166
NV_DS_SOURCE_CAMERA_CSI
@ NV_DS_SOURCE_CAMERA_CSI
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:36
create_nvmultiurisrcbin_bin
gboolean create_nvmultiurisrcbin_bin(guint num_sub_bins, NvDsSourceConfig *configs, NvDsSrcParentBin *bin)
Initialize NvDsSrcParentBin.
NvDsSrcParentBin
Definition: sources/apps/apps-common/includes/deepstream_sources.h:164
NV_DS_SOURCE_AUDIO_URI
@ NV_DS_SOURCE_AUDIO_URI
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:38
NV_DS_SOURCE_URI
@ NV_DS_SOURCE_URI
Definition: 9.1/sources/apps/apps-common/includes/deepstream_sources.h:33
NvDsSrcParentBin::streammux
GstElement * streammux
Definition: sources/apps/apps-common/includes/deepstream_sources.h:167
NvDsSourceType
NvDsSourceType
Definition: sources/apps/apps-common/includes/deepstream_sources.h:30
create_audio_source_bin
gboolean create_audio_source_bin(NvDsSourceConfig *config, NvDsSrcBin *bin)
NvDsDewarperConfig
Definition: sources/apps/apps-common/includes/deepstream_dewarper.h:40
destroy_smart_record_bin
void destroy_smart_record_bin(gpointer data)
GstBuffer
struct _GstBuffer GstBuffer
Definition: sources/includes/ds3d/common/idatatype.h:24
deepstream_dewarper.h