NVIDIA DeepStream SDK API Reference

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