NVIDIA DeepStream SDK API Reference

9.1 Release
sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2020-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 __GST_DS_NVURISRC_BIN_H__
19 #define __GST_DS_NVURISRC_BIN_H__
20 
21 #include "gst-nvdssr.h"
22 #include <gst/video/video.h>
23 #include "gst-nvdscommonconfig.h"
24 
25 G_BEGIN_DECLS
26 
27 enum
28 {
69 };
70 
71 
72 
73 typedef struct _GstDsNvUriSrcBin
74 {
75  GstBin bin;
76 
77  GstElement *src_elem;
78  GstElement *cap_filter;
79  GstElement *cap_filter1;
80  GstElement *depay;
81  GstElement *parser;
82  GstElement *dec_que;
83  GstElement *decodebin;
84  GstElement *tee;
85  GstElement *tee_rtsp_pre_decode;
86  GstElement *tee_rtsp_post_decode;
87  GstElement *fakesink_queue;
88  GstElement *fakesink;
89  GstElement *nvvidconv;
90 
91  GMutex bin_lock;
92  struct timeval last_buffer_time;
93  struct timeval last_reconnect_time;
95  gboolean reconfiguring;
101 
103 
104  GstElement *adepay;
105  GstElement *aqueue;
106  GstElement *aparsebin;
107  GstElement *atee;
108  GstElement *adecodebin;
109  GstElement *audio_convert;
110  GstElement *audio_resample;
111 
115 
117 {
118  GstBinClass parent_class;
119 
121  guint startTime, guint duration, gpointer userData);
124  gpointer userData);
125 
127 
128 
129 /* Standard GStreamer boilerplate */
130 #define GST_TYPE_DS_NVURISRC_BIN (gst_ds_nvurisrc_bin_get_type())
131 #define GST_DS_NVURISRC_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DS_NVURISRC_BIN,GstDsNvUriSrcBin))
132 #define GST_DS_NVURISRC_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DS_NVURISRC_BIN,GstDsNvUriSrcBinClass))
133 #define GST_DS_NVURISRC_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GST_TYPE_DS_NVURISRC_BIN, GstDsNvUriSrcBinClass))
134 #define GST_IS_DS_NVURISRC_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DS_NVURISRC_BIN))
135 #define GST_IS_DS_NVURISRC_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DS_NVURISRC_BIN))
136 #define GST_DS_NVURISRC_BIN_CAST(obj) ((GstDsNvUriSrcBin *)(obj))
137 
138 GType gst_ds_nvurisrc_bin_get_type (void);
139 
140 G_END_DECLS
141 #endif /* __GST_DS_NVURISRC_BIN_H__ */
_GstDsNvUriSrcBin::tee_rtsp_pre_decode
GstElement * tee_rtsp_pre_decode
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:85
PROP_LEAKY
@ PROP_LEAKY
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:38
NvDsSRSessionId
guint32 NvDsSRSessionId
Definition: sources/includes/gst-nvdssr.h:54
PROP_SEI_UUID
@ PROP_SEI_UUID
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:61
PROP_SMART_RECORD_CACHE
@ PROP_SMART_RECORD_CACHE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:46
GstDsNvUriSrcBin
struct _GstDsNvUriSrcBin GstDsNvUriSrcBin
_GstDsNvUriSrcBin::nvvidconv
GstElement * nvvidconv
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:89
_GstDsNvUriSrcConfig
Definition: sources/includes/gst-nvdscommonconfig.h:102
PROP_SIMULATE_FPS_INTERVAL_MS
@ PROP_SIMULATE_FPS_INTERVAL_MS
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:67
PROP_UDP_BUFFER_SIZE
@ PROP_UDP_BUFFER_SIZE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:56
PROP_RTSP_RECONNECT_ATTEMPTS
@ PROP_RTSP_RECONNECT_ATTEMPTS
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:53
_GstDsNvUriSrcBin::cap_filter
GstElement * cap_filter
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:78
PROP_GPU_DEVICE_ID
@ PROP_GPU_DEVICE_ID
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:32
_GstDsNvUriSrcBin::aparsebin
GstElement * aparsebin
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:106
_GstDsNvUriSrcBin::dec_que
GstElement * dec_que
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:82
PROP_EXTRACT_SEI_TYPE5_DATA
@ PROP_EXTRACT_SEI_TYPE5_DATA
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:59
_GstDsNvUriSrcBin::src_elem
GstElement * src_elem
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:77
_GstDsNvUriSrcBin::tee_rtsp_post_decode
GstElement * tee_rtsp_post_decode
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:86
PROP_IPC_SOCKET_PATH
@ PROP_IPC_SOCKET_PATH
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:64
PROP_SMART_RECORD_DEFAULT_DURATION
@ PROP_SMART_RECORD_DEFAULT_DURATION
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:49
NvDsSRStatus
NvDsSRStatus
Specifies API return status.
Definition: sources/includes/gst-nvdssr.h:67
_GstDsNvUriSrcBin::fakesink
GstElement * fakesink
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:88
PROP_RTP_PROTOCOL
@ PROP_RTP_PROTOCOL
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:40
PROP_CUDADEC_MEM_TYPE
@ PROP_CUDADEC_MEM_TYPE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:35
GstDsNvUriSrcBinClass
struct _GstDsNvUriSrcBinClass GstDsNvUriSrcBinClass
PROP_SOURCE_ID
@ PROP_SOURCE_ID
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:55
_GstDsNvUriSrcBin::video_elem_populated
gboolean video_elem_populated
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:112
PROP_SMART_RECORD
@ PROP_SMART_RECORD
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:42
PROP_FILE_LOOP
@ PROP_FILE_LOOP
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:41
_GstDsNvUriSrcBin::accumulated_base
guint64 accumulated_base
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:97
PROP_SMART_RECORD_MODE
@ PROP_SMART_RECORD_MODE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:48
_GstDsNvUriSrcBinClass
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:116
_GstDsNvUriSrcBin::bin
GstBin bin
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:75
PROP_IPC_BUFFER_TIMESTAMP_COPY
@ PROP_IPC_BUFFER_TIMESTAMP_COPY
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:63
PROP_SMART_RECORD_FILE_PREFIX
@ PROP_SMART_RECORD_FILE_PREFIX
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:44
_GstDsNvUriSrcBin::adepay
GstElement * adepay
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:104
PROP_SMART_RECORD_CONTAINER
@ PROP_SMART_RECORD_CONTAINER
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:47
_GstDsNvUriSrcBinClass::stop_sr
NvDsSRStatus(* stop_sr)(GstDsNvUriSrcBin *, NvDsSRSessionId sessionId)
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:122
_GstDsNvUriSrcBin::last_buffer_time
struct timeval last_buffer_time
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:92
_GstDsNvUriSrcBin::decodebin
GstElement * decodebin
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:83
PROP_DEC_SKIP_FRAMES
@ PROP_DEC_SKIP_FRAMES
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:33
PROP_SMART_RECORD_VIDEO_CACHE
@ PROP_SMART_RECORD_VIDEO_CACHE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:45
_GstDsNvUriSrcBin::async_state_watch_running
gboolean async_state_watch_running
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:96
PROP_RTSP_INIT_RECONNECT_INTERVAL
@ PROP_RTSP_INIT_RECONNECT_INTERVAL
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:52
_GstDsNvUriSrcBin::rtspsrc_monitor_probe
gulong rtspsrc_monitor_probe
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:94
NvDsSRContext
Holds information about smart record instance.
Definition: sources/includes/gst-nvdssr.h:108
_GstDsNvUriSrcBin::recordCtx
NvDsSRContext * recordCtx
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:100
PROP_DISABLE_PASSTHROUGH
@ PROP_DISABLE_PASSTHROUGH
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:57
_GstDsNvUriSrcBinClass::parent_class
GstBinClass parent_class
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:118
_GstDsNvUriSrcBin
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:73
_GstDsNvUriSrcBin::aqueue
GstElement * aqueue
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:105
PROP_MAX_SIZE_BUFFERS
@ PROP_MAX_SIZE_BUFFERS
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:39
_GstDsNvUriSrcBinClass::sr_done
NvDsSRStatus(* sr_done)(GstDsNvUriSrcBin *, NvDsSRRecordingInfo *info, gpointer userData)
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:123
PROP_URI
@ PROP_URI
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:30
PROP_DISABLE_AUDIO
@ PROP_DISABLE_AUDIO
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:58
_GstDsNvUriSrcBin::audio_resample
GstElement * audio_resample
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:110
PROP_SOURCE_TYPE
@ PROP_SOURCE_TYPE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:34
PROP_0
@ PROP_0
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:29
PROP_NUM_EXTRA_SURF
@ PROP_NUM_EXTRA_SURF
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:31
_GstDsNvUriSrcBin::reconfiguring
gboolean reconfiguring
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:95
PROP_IPC_CONNECTION_INTERVAL
@ PROP_IPC_CONNECTION_INTERVAL
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:66
_GstDsNvUriSrcBinClass::start_sr
NvDsSRStatus(* start_sr)(GstDsNvUriSrcBin *, NvDsSRSessionId *sessionId, guint startTime, guint duration, gpointer userData)
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:120
PROP_DROP_FRAME_INTERVAL
@ PROP_DROP_FRAME_INTERVAL
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:36
_GstDsNvUriSrcBin::last_reconnect_time
struct timeval last_reconnect_time
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:93
PROP_SMART_RECORD_DIR_PATH
@ PROP_SMART_RECORD_DIR_PATH
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:43
_GstDsNvUriSrcBin::cap_filter1
GstElement * cap_filter1
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:79
_GstDsNvUriSrcBin::audio_convert
GstElement * audio_convert
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:109
_GstDsNvUriSrcBin::atee
GstElement * atee
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:107
PROP_RTSP_RECONNECT_INTERVAL
@ PROP_RTSP_RECONNECT_INTERVAL
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:51
PROP_IPC_CONNECTION_ATTEMPTS
@ PROP_IPC_CONNECTION_ATTEMPTS
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:65
PROP_BUFFER_MODE
@ PROP_BUFFER_MODE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:37
_GstDsNvUriSrcBin::prev_accumulated_base
guint64 prev_accumulated_base
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:98
PROP_LOW_LATENCY_MODE
@ PROP_LOW_LATENCY_MODE
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:60
_GstDsNvUriSrcBin::bin_lock
GMutex bin_lock
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:91
PROP_LAST
@ PROP_LAST
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:68
PROP_DROP_ON_LATENCY
@ PROP_DROP_ON_LATENCY
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:62
_GstDsNvUriSrcBin::audio_elem_populated
gboolean audio_elem_populated
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:113
_GstDsNvUriSrcBin::source_watch_id
guint source_watch_id
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:102
PROP_SMART_RECORD_STATUS
@ PROP_SMART_RECORD_STATUS
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:50
_GstDsNvUriSrcBin::parser
GstElement * parser
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:81
_GstDsNvUriSrcBin::config
GstDsNvUriSrcConfig * config
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:99
NvDsSRRecordingInfo
Hold information about video recorded.
Definition: sources/includes/gst-nvdssr.h:141
gst_ds_nvurisrc_bin_get_type
GType gst_ds_nvurisrc_bin_get_type(void)
_GstDsNvUriSrcBin::depay
GstElement * depay
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:80
_GstDsNvUriSrcBin::tee
GstElement * tee
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:84
_GstDsNvUriSrcBin::adecodebin
GstElement * adecodebin
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:108
_GstDsNvUriSrcBin::fakesink_queue
GstElement * fakesink_queue
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:87
PROP_LATENCY
@ PROP_LATENCY
Definition: sources/gst-plugins/gst-nvmultiurisrcbin/gstdsnvurisrcbin.h:54