NVIDIA DeepStream SDK API Reference

8.0 Release
gstdsnvmultiurisrcbin.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022-2025 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 __GST_DS_NVMULTIURISRC_BIN_H__
14 #define __GST_DS_NVMULTIURISRC_BIN_H__
15 
16 #include <gst/gst.h>
17 #include <gst/video/video.h>
18 #include "gst-nvmultiurisrcbincreator.h"
19 #include "gstdsnvurisrcbin.h"
20 
21 G_BEGIN_DECLS
22 
23 enum
24 {
70  //nvstreammux props:
71 
100 };
101 
102 typedef struct _GstDsNvMultiUriBin
103 {
104  GstBin bin;
105 
106  GMutex bin_lock;
107 
112  gchar* uriList;
113  gchar** uriListV;
114  gchar* sensorIdList;
115  gchar** sensorIdListV;
121  GstPad* bin_src_pad;
122  void* restServer;
123  gchar* httpIp;
124  gchar* httpPort;
126 
128 {
129  GstBinClass parent_class;
131 
132 
133 /* Standard GStreamer boilerplate */
134 #define GST_TYPE_DS_NVMULTIURISRC_BIN (gst_ds_nvmultiurisrc_bin_get_type())
135 #define GST_DS_NVMULTIURISRC_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DS_NVMULTIURISRC_BIN,GstDsNvMultiUriBin))
136 #define GST_DS_NVMULTIURISRC_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DS_NVMULTIURISRC_BIN,GstDsNvMultiUriBinClass))
137 #define GST_DS_NVMULTIURISRC_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GST_TYPE_DS_NVMULTIURISRC_BIN, GstDsNvMultiUriBinClass))
138 #define GST_IS_DS_NVMULTIURISRC_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DS_NVMULTIURISRC_BIN))
139 #define GST_IS_DS_NVMULTIURISRC_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DS_NVMULTIURISRC_BIN))
140 #define GST_DS_NVMULTIURISRC_BIN_CAST(obj) ((GstDsNvMultiUriBin *)(obj))
141 
143 
144 G_END_DECLS
145 #endif /* __GST_DS_NVMULTIURISRC_BIN_H__ */
GstDsNvMultiUriBin
struct _GstDsNvMultiUriBin GstDsNvMultiUriBin
MULTIURIBIN_PROP_MAX_SIZE_BUFFERS
@ MULTIURIBIN_PROP_MAX_SIZE_BUFFERS
Definition: gstdsnvmultiurisrcbin.h:43
PROP_WIDTH
@ PROP_WIDTH
Definition: gstdsnvmultiurisrcbin.h:74
MULTIURIBIN_PROP_DISABLE_PASSTHROUGH
@ MULTIURIBIN_PROP_DISABLE_PASSTHROUGH
Definition: gstdsnvmultiurisrcbin.h:60
PROP_NUM_SURFACES_PER_FRAME
@ PROP_NUM_SURFACES_PER_FRAME
Definition: gstdsnvmultiurisrcbin.h:78
MULTIURIBIN_PROP_IPC_CONNECTION_ATTEMPTS
@ MULTIURIBIN_PROP_IPC_CONNECTION_ATTEMPTS
Definition: gstdsnvmultiurisrcbin.h:67
MULTIURIBIN_PROP_SMART_RECORD_VIDEO_CACHE
@ MULTIURIBIN_PROP_SMART_RECORD_VIDEO_CACHE
Definition: gstdsnvmultiurisrcbin.h:48
MULTIURIBIN_PROP_RTSP_INIT_RECONNECT_INTERVAL
@ MULTIURIBIN_PROP_RTSP_INIT_RECONNECT_INTERVAL
Definition: gstdsnvmultiurisrcbin.h:55
MULTIURIBIN_PROP_FILE_LOOP
@ MULTIURIBIN_PROP_FILE_LOOP
Definition: gstdsnvmultiurisrcbin.h:44
_GstDsNvUriSrcConfig
Definition: includes/gst-nvdscommonconfig.h:97
MULTIURIBIN_PROP_SMART_RECORD_DEFAULT_DURATION
@ MULTIURIBIN_PROP_SMART_RECORD_DEFAULT_DURATION
Definition: gstdsnvmultiurisrcbin.h:52
_GstDsNvMultiUriBin::bin
GstBin bin
Definition: gstdsnvmultiurisrcbin.h:104
PROP_ALIGN_FIRST_BUFFER
@ PROP_ALIGN_FIRST_BUFFER
Definition: gstdsnvmultiurisrcbin.h:97
MULTIURIBIN_PROP_EXTRACT_SEI_TYPE5_DATA_DEC
@ MULTIURIBIN_PROP_EXTRACT_SEI_TYPE5_DATA_DEC
Definition: gstdsnvmultiurisrcbin.h:62
_GstDsNvMultiUriBin::config
GstDsNvUriSrcConfig * config
source config that will be used for all the N uri sources that may be added into this bin
Definition: gstdsnvmultiurisrcbin.h:110
MULTIURIBIN_PROP_RTP_PROTOCOL
@ MULTIURIBIN_PROP_RTP_PROTOCOL
Definition: gstdsnvmultiurisrcbin.h:41
_GstDsNvMultiUriBin::restServer
void * restServer
Definition: gstdsnvmultiurisrcbin.h:122
_GstDsNvMultiUriBin::uriList
gchar * uriList
Definition: gstdsnvmultiurisrcbin.h:112
MULTIURIBIN_PROP_BUFFER_MODE
@ MULTIURIBIN_PROP_BUFFER_MODE
Definition: gstdsnvmultiurisrcbin.h:40
MULTIURIBIN_PROP_SMART_RECORD
@ MULTIURIBIN_PROP_SMART_RECORD
Definition: gstdsnvmultiurisrcbin.h:45
PROP_FRAME_DURATION
@ PROP_FRAME_DURATION
Definition: gstdsnvmultiurisrcbin.h:88
MULTIURIBIN_PROP_HTTP_PORT
@ MULTIURIBIN_PROP_HTTP_PORT
Definition: gstdsnvmultiurisrcbin.h:30
PROP_BUFFER_POOL_SIZE
@ PROP_BUFFER_POOL_SIZE
Definition: gstdsnvmultiurisrcbin.h:82
_GstDsNvMultiUriBin::uriListV
gchar ** uriListV
Definition: gstdsnvmultiurisrcbin.h:113
_GstDsNvMultiUriBin::httpIp
gchar * httpIp
Definition: gstdsnvmultiurisrcbin.h:123
MULTIURIBIN_PROP_LEAKY
@ MULTIURIBIN_PROP_LEAKY
Definition: gstdsnvmultiurisrcbin.h:42
MULTIURIBIN_PROP_LAST
@ MULTIURIBIN_PROP_LAST
Definition: gstdsnvmultiurisrcbin.h:99
MULTIURIBIN_PROP_SMART_RECORD_MODE
@ MULTIURIBIN_PROP_SMART_RECORD_MODE
Definition: gstdsnvmultiurisrcbin.h:51
MULTIURIBIN_PROP_0
@ MULTIURIBIN_PROP_0
Definition: gstdsnvmultiurisrcbin.h:25
PROP_BATCH_SIZE
@ PROP_BATCH_SIZE
Definition: gstdsnvmultiurisrcbin.h:72
PROP_ENABLE_PADDING
@ PROP_ENABLE_PADDING
Definition: gstdsnvmultiurisrcbin.h:76
MULTIURIBIN_PROP_IPC_CONNECTION_INTERVAL
@ MULTIURIBIN_PROP_IPC_CONNECTION_INTERVAL
Definition: gstdsnvmultiurisrcbin.h:68
_GstDsNvMultiUriBin::mode
NvDsMultiUriMode mode
Definition: gstdsnvmultiurisrcbin.h:118
MULTIURIBIN_PROP_LATENCY
@ MULTIURIBIN_PROP_LATENCY
Definition: gstdsnvmultiurisrcbin.h:57
MULTIURIBIN_PROP_CUDADEC_MEM_TYPE
@ MULTIURIBIN_PROP_CUDADEC_MEM_TYPE
Definition: gstdsnvmultiurisrcbin.h:37
MULTIURIBIN_PROP_SEI_UUID
@ MULTIURIBIN_PROP_SEI_UUID
Definition: gstdsnvmultiurisrcbin.h:63
MULTIURIBIN_PROP_DROP_FRAME_INTERVAL
@ MULTIURIBIN_PROP_DROP_FRAME_INTERVAL
Definition: gstdsnvmultiurisrcbin.h:38
MULTIURIBIN_PROP_SMART_RECORD_DIR_PATH
@ MULTIURIBIN_PROP_SMART_RECORD_DIR_PATH
Definition: gstdsnvmultiurisrcbin.h:46
MULTIURIBIN_PROP_MAX_BATCH_SIZE
@ MULTIURIBIN_PROP_MAX_BATCH_SIZE
Definition: gstdsnvmultiurisrcbin.h:31
PROP_NVBUF_MEMORY_TYPE
@ PROP_NVBUF_MEMORY_TYPE
Definition: gstdsnvmultiurisrcbin.h:79
_GstDsNvMultiUriBin
Definition: gstdsnvmultiurisrcbin.h:102
MULTIURIBIN_PROP_UDP_BUFFER_SIZE
@ MULTIURIBIN_PROP_UDP_BUFFER_SIZE
Definition: gstdsnvmultiurisrcbin.h:59
NvDst_Handle_NvMultiUriSrcCreator
void * NvDst_Handle_NvMultiUriSrcCreator
Definition: includes/gst-nvmultiurisrcbincreator.h:31
MULTIURIBIN_PROP_NUM_EXTRA_SURF
@ MULTIURIBIN_PROP_NUM_EXTRA_SURF
Definition: gstdsnvmultiurisrcbin.h:33
PROP_BATCHED_PUSH_TIMEOUT
@ PROP_BATCHED_PUSH_TIMEOUT
Definition: gstdsnvmultiurisrcbin.h:73
PROP_NO_PIPELINE_EOS
@ PROP_NO_PIPELINE_EOS
Definition: gstdsnvmultiurisrcbin.h:90
PROP_LIVE_SOURCE
@ PROP_LIVE_SOURCE
Definition: gstdsnvmultiurisrcbin.h:77
PROP_ATTACH_SYS_TIME_STAMP
@ PROP_ATTACH_SYS_TIME_STAMP
Definition: gstdsnvmultiurisrcbin.h:83
GstDsNvMultiUriBinClass
struct _GstDsNvMultiUriBinClass GstDsNvMultiUriBinClass
PROP_FRAME_NUM_RESET_ON_EOS
@ PROP_FRAME_NUM_RESET_ON_EOS
Definition: gstdsnvmultiurisrcbin.h:86
MULTIURIBIN_PROP_DISABLE_AUDIO
@ MULTIURIBIN_PROP_DISABLE_AUDIO
Definition: gstdsnvmultiurisrcbin.h:61
NvDsMultiUriMode
NvDsMultiUriMode
Definition: includes/gst-nvmultiurisrcbincreator.h:33
MULTIURIBIN_PROP_SOURCE_TYPE
@ MULTIURIBIN_PROP_SOURCE_TYPE
Definition: gstdsnvmultiurisrcbin.h:36
PROP_ASYNC_PROCESS
@ PROP_ASYNC_PROCESS
Definition: gstdsnvmultiurisrcbin.h:89
MULTIURIBIN_PROP_RTSP_RECONNECT_ATTEMPTS
@ MULTIURIBIN_PROP_RTSP_RECONNECT_ATTEMPTS
Definition: gstdsnvmultiurisrcbin.h:56
MULTIURIBIN_PROP_HTTP_IP
@ MULTIURIBIN_PROP_HTTP_IP
Definition: gstdsnvmultiurisrcbin.h:32
MULTIURIBIN_PROP_SMART_RECORD_CONTAINER
@ MULTIURIBIN_PROP_SMART_RECORD_CONTAINER
Definition: gstdsnvmultiurisrcbin.h:50
_GstDsNvMultiUriBin::sensorIdList
gchar * sensorIdList
Definition: gstdsnvmultiurisrcbin.h:114
MULTIURIBIN_PROP_URI_LIST
@ MULTIURIBIN_PROP_URI_LIST
Definition: gstdsnvmultiurisrcbin.h:26
MULTIURIBIN_PROP_IPC_BUFFER_TIMESTAMP_COPY
@ MULTIURIBIN_PROP_IPC_BUFFER_TIMESTAMP_COPY
Definition: gstdsnvmultiurisrcbin.h:65
PROP_INTERPOLATION_METHOD
@ PROP_INTERPOLATION_METHOD
Definition: gstdsnvmultiurisrcbin.h:81
_GstDsNvMultiUriBin::bin_lock
GMutex bin_lock
Definition: gstdsnvmultiurisrcbin.h:106
MULTIURIBIN_PROP_SENSOR_ID_LIST
@ MULTIURIBIN_PROP_SENSOR_ID_LIST
Definition: gstdsnvmultiurisrcbin.h:27
_GstDsNvMultiUriBin::httpPort
gchar * httpPort
Definition: gstdsnvmultiurisrcbin.h:124
PROP_HEIGHT
@ PROP_HEIGHT
Definition: gstdsnvmultiurisrcbin.h:75
MULTIURIBIN_PROP_SENSOR_NAME_LIST
@ MULTIURIBIN_PROP_SENSOR_NAME_LIST
Definition: gstdsnvmultiurisrcbin.h:28
MULTIURIBIN_PROP_MODE
@ MULTIURIBIN_PROP_MODE
Definition: gstdsnvmultiurisrcbin.h:29
_GstDsNvMultiUriBin::sourceIdCounter
guint sourceIdCounter
Definition: gstdsnvmultiurisrcbin.h:120
MULTIURIBIN_PROP_IPC_SOCKET_PATH
@ MULTIURIBIN_PROP_IPC_SOCKET_PATH
Definition: gstdsnvmultiurisrcbin.h:66
_GstDsNvMultiUriBinClass
Definition: gstdsnvmultiurisrcbin.h:127
PROP_EXTRACT_SIM_TIME
@ PROP_EXTRACT_SIM_TIME
Definition: gstdsnvmultiurisrcbin.h:96
_GstDsNvMultiUriBin::sensorIdListV
gchar ** sensorIdListV
Definition: gstdsnvmultiurisrcbin.h:115
MULTIURIBIN_PROP_SMART_RECORD_FILE_PREFIX
@ MULTIURIBIN_PROP_SMART_RECORD_FILE_PREFIX
Definition: gstdsnvmultiurisrcbin.h:47
MULTIURIBIN_PROP_SOURCE_ID
@ MULTIURIBIN_PROP_SOURCE_ID
Definition: gstdsnvmultiurisrcbin.h:58
_GstDsNvMultiUriBin::sensorNameListV
gchar ** sensorNameListV
Definition: gstdsnvmultiurisrcbin.h:117
MULTIURIBIN_PROP_SMART_RECORD_STATUS
@ MULTIURIBIN_PROP_SMART_RECORD_STATUS
Definition: gstdsnvmultiurisrcbin.h:53
PROP_CACHE_BUFFERS_TIMEOUT
@ PROP_CACHE_BUFFERS_TIMEOUT
Definition: gstdsnvmultiurisrcbin.h:95
MULTIURIBIN_PROP_LOW_LATENCY_MODE
@ MULTIURIBIN_PROP_LOW_LATENCY_MODE
Definition: gstdsnvmultiurisrcbin.h:64
PROP_MAX_LATNECY
@ PROP_MAX_LATNECY
Definition: gstdsnvmultiurisrcbin.h:85
PROP_CONFIG_FILE_PATH
@ PROP_CONFIG_FILE_PATH
Definition: gstdsnvmultiurisrcbin.h:91
PROP_SYNC_INPUTS_NTP
@ PROP_SYNC_INPUTS_NTP
Definition: gstdsnvmultiurisrcbin.h:98
_GstDsNvMultiUriBin::nvmultiurisrcbinCreator
NvDst_Handle_NvMultiUriSrcCreator nvmultiurisrcbinCreator
Definition: gstdsnvmultiurisrcbin.h:119
MULTIURIBIN_PROP_GPU_DEVICE_ID
@ MULTIURIBIN_PROP_GPU_DEVICE_ID
Definition: gstdsnvmultiurisrcbin.h:34
GstDsNvStreammuxConfig
Definition: includes/gst-nvdscommonconfig.h:141
PROP_SYNC_INPUTS
@ PROP_SYNC_INPUTS
Definition: gstdsnvmultiurisrcbin.h:84
MULTIURIBIN_PROP_RTSP_RECONNECT_INTERVAL
@ MULTIURIBIN_PROP_RTSP_RECONNECT_INTERVAL
Definition: gstdsnvmultiurisrcbin.h:54
PROP_COMPUTE_HW
@ PROP_COMPUTE_HW
Definition: gstdsnvmultiurisrcbin.h:80
_GstDsNvMultiUriBin::sensorNameList
gchar * sensorNameList
Definition: gstdsnvmultiurisrcbin.h:116
gstdsnvurisrcbin.h
MULTIURIBIN_PROP_SENSORID_PADID_MAPPING
@ MULTIURIBIN_PROP_SENSORID_PADID_MAPPING
Definition: gstdsnvmultiurisrcbin.h:69
MULTIURIBIN_PROP_SMART_RECORD_CACHE
@ MULTIURIBIN_PROP_SMART_RECORD_CACHE
Definition: gstdsnvmultiurisrcbin.h:49
PROP_FRAME_NUM_RESET_ON_STREAM_RESET
@ PROP_FRAME_NUM_RESET_ON_STREAM_RESET
Definition: gstdsnvmultiurisrcbin.h:87
_GstDsNvMultiUriBin::muxConfig
GstDsNvStreammuxConfig * muxConfig
Definition: gstdsnvmultiurisrcbin.h:111
MULTIURIBIN_PROP_DEC_SKIP_FRAMES
@ MULTIURIBIN_PROP_DEC_SKIP_FRAMES
Definition: gstdsnvmultiurisrcbin.h:35
PROP_EXTRACT_SEI_TYPE5_DATA_MUX
@ PROP_EXTRACT_SEI_TYPE5_DATA_MUX
Definition: gstdsnvmultiurisrcbin.h:92
_GstDsNvMultiUriBin::bin_src_pad
GstPad * bin_src_pad
Definition: gstdsnvmultiurisrcbin.h:121
PROP_SORT_BATCH_BUFFERS
@ PROP_SORT_BATCH_BUFFERS
Definition: gstdsnvmultiurisrcbin.h:93
PROP_CACHE_BUFFERS
@ PROP_CACHE_BUFFERS
Definition: gstdsnvmultiurisrcbin.h:94
MULTIURIBIN_PROP_DROP_ON_LATENCY
@ MULTIURIBIN_PROP_DROP_ON_LATENCY
Definition: gstdsnvmultiurisrcbin.h:39
gst_ds_nvmultiurisrc_bin_get_type
GType gst_ds_nvmultiurisrc_bin_get_type(void)
_GstDsNvMultiUriBinClass::parent_class
GstBinClass parent_class
Definition: gstdsnvmultiurisrcbin.h:129