NVIDIA DeepStream SDK API Reference

9.1 Release
9.1/sources/gst-plugins/gst-nvdsudp/legacy_api/gstnvdsudpsrc.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_NVDSUDPSRC_H_
19 #define _GST_NVDSUDPSRC_H_
20 
21 #include <gst/base/gstpushsrc.h>
22 #include <gio/gio.h>
23 #include <rivermax_api.h>
24 
25 #include "../gstnvdsudpcommon.h"
26 
27 G_BEGIN_DECLS
28 
29 #define GST_TYPE_NVDSUDPSRC (gst_nvdsudpsrc_get_type())
30 #define GST_NVDSUDPSRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVDSUDPSRC,GstNvDsUdpSrc))
31 #define GST_NVDSUDPSRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVDSUDPSRC,GstNvDsUdpSrcClass))
32 #define GST_IS_NVDSUDPSRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVDSUDPSRC))
33 #define GST_IS_NVDSUDPSRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVDSUDPSRC))
34 
37 typedef struct DstStreamInfo {
38  char *ip;
39  uint16_t port;
41 
42 struct _GstNvDsUdpSrc
43 {
44  GstPushSrc parent;
45 
46  /* properties */
47  gchar *uri;
48  gchar *localIfaceIps;
49  gint port;
50  gint buffer_size;
51  gchar *multi_iface;
52  gboolean auto_multicast;
53  GstCaps *caps;
54  gchar *address;
55  gchar *sourceAddresses;
56  GSocket *used_socket;
57  guint64 timeout;
58  gboolean reuse;
59  gboolean loop;
60  guint headerSize;
61  guint payloadSize;
62  guint numPackets;
63  guint payMultiple;
64  gint gpuId;
65  gboolean use_rtp_timestamp;
66  gboolean adjust_leap_seconds;
67  guint64 latency_offset; /* Latency offset in nanoseconds */
68  gchar *ptpSrc;
69  gchar *st2022_7_streams; /* List of IP:port pairs for ST2022-7 redundant streams */
70  guint num_streams; /* Number of active streams (primary + redundant) */
71  guint num_source_addresses; /* Number of source addresses for filtering */
72  guint num_local_interfaces; /* Number of local interfaces */
73 
77  guint frameSize;
78  guint stride;
79  uint8_t *dataPtr1;
80  uint8_t *dataPtr2;
81  guint len1;
82  guint len2;
83  gboolean mBit;
84  gboolean ffFound;
85  guint packetCounter;
86 
87  GstBufferPool *pool;
88  GThread *pThread;
89  GQueue *bufferQ;
90  GCond qCond;
91  GMutex qLock;
92  GCond flowCond;
93  GMutex flowLock;
94  gboolean isRunning;
95  gboolean flushing;
96  GInetSocketAddress *addr;
97  GCancellable *cancellable;
98  gint cancellableFd;
99  gint pollfd;
100  gint lastError;
101  gboolean isRtpOut;
102  /*For rtpticks based buffer pts/dts generation */
103  gboolean first_rtp_packet;
104  guint64 last_rtp_tick;
105  guint64 rtp_tick_base;
106  guint clock_rate;
107  gboolean is_nvmm;
108 
109  /* Rivermax specific */
110  guint flowId;
111  struct sockaddr_in localNicAddr;
112  rmax_stream_id streamId[MAX_ST2022_7_STREAMS];
113  struct rmax_in_flow_attr flowAttr[MAX_ST2022_7_STREAMS];
114  struct rmax_in_buffer_attr bufferAttr;
115  struct rmax_in_memblock data;
116  struct rmax_in_memblock hdr;
117  gboolean isGpuDirect;
118  gpointer dataPtr;
119  gpointer hdrPtr;
120  size_t alignedMemSize;
121 
125 };
126 
127 struct _GstNvDsUdpSrcClass
128 {
129  GstPushSrcClass parent_class;
130 };
131 
132 GType gst_nvdsudpsrc_get_type (void);
133 
134 G_END_DECLS
135 
136 #endif
_GstNvDsUdpSrc::address
gchar * address
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:54
_GstNvDsUdpSrc::dataPtr
gpointer dataPtr
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:126
_GstNvDsUdpSrc::uri
gchar * uri
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:47
_GstNvDsUdpSrc::st2022_7_streams
gchar * st2022_7_streams
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:69
_GstNvDsUdpSrc::addr
GInetSocketAddress * addr
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:96
_GstNvDsUdpSrc::port
gint port
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:49
_GstNvDsUdpSrc::stride
guint stride
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:78
_GstNvDsUdpSrc::isRtpOut
gboolean isRtpOut
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:101
_GstNvDsUdpSrc::caps
GstCaps * caps
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:53
_GstNvDsUdpSrc::clock_rate
guint clock_rate
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:106
_GstNvDsUdpSrc::parent
GstPushSrc parent
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:44
_GstNvDsUdpSrc::dataPtr1
uint8_t * dataPtr1
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:79
_GstNvDsUdpSrc::flowId
guint flowId
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:110
_GstNvDsUdpSrc::len2
guint len2
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:82
_GstNvDsUdpSrc::mBit
gboolean mBit
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:83
_GstNvDsUdpSrc
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:42
_GstNvDsUdpSrc::flowAttr
struct rmax_in_flow_attr flowAttr[MAX_ST2022_7_STREAMS]
Definition: sources/gst-plugins/gst-nvdsudp/legacy_api/gstnvdsudpsrc.h:113
_GstNvDsUdpSrc::hdr
rmx_mem_region * hdr
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:116
_GstNvDsUdpSrc::localIfaceIp
gchar * localIfaceIp[MAX_ST2022_7_STREAMS]
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:132
_GstNvDsUdpSrc::payMultiple
guint payMultiple
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:63
_GstNvDsUdpSrc::lastError
gint lastError
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:100
DstStreamInfo
struct DstStreamInfo DstStreamInfo
_GstNvDsUdpSrc::latency_offset
guint64 latency_offset
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:67
_GstNvDsUdpSrc::is_nvmm
gboolean is_nvmm
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:107
_GstNvDsUdpSrc::alignedMemSize
size_t alignedMemSize
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:128
VideoType
VideoType
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpcommon.h:49
_GstNvDsUdpSrc::data
rmx_mem_region * data
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:115
_GstNvDsUdpSrc::adjust_leap_seconds
gboolean adjust_leap_seconds
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:66
_GstNvDsUdpSrc::rtp_tick_base
guint64 rtp_tick_base
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:105
_GstNvDsUdpSrc::sourceAddresses
gchar * sourceAddresses
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:55
_GstNvDsUdpSrc::bufferQ
GQueue * bufferQ
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:89
_GstNvDsUdpSrc::numPackets
guint numPackets
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:62
MemoryType
MemoryType
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpcommon.h:54
_GstNvDsUdpSrc::packetCounter
guint packetCounter
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:85
_GstNvDsUdpSrc::isRunning
gboolean isRunning
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:94
_GstNvDsUdpSrc::flushing
gboolean flushing
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:95
_GstNvDsUdpSrc::auto_multicast
gboolean auto_multicast
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:52
_GstNvDsUdpSrc::reuse
gboolean reuse
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:58
DstStreamInfo
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:37
_GstNvDsUdpSrc::flowCond
GCond flowCond
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:92
_GstNvDsUdpSrc::pThread
GThread * pThread
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:88
_GstNvDsUdpSrc::used_socket
GSocket * used_socket
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:56
_GstNvDsUdpSrc::multi_iface
gchar * multi_iface
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:51
_GstNvDsUdpSrc::pollfd
gint pollfd
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:99
_GstNvDsUdpSrc::qLock
GMutex qLock
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:91
_GstNvDsUdpSrcClass::parent_class
GstPushSrcClass parent_class
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:137
_GstNvDsUdpSrc::ptpSrc
gchar * ptpSrc
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:68
_GstNvDsUdpSrc::bufferAttr
struct rmax_in_buffer_attr bufferAttr
Definition: sources/gst-plugins/gst-nvdsudp/legacy_api/gstnvdsudpsrc.h:114
_GstNvDsUdpSrc::use_rtp_timestamp
gboolean use_rtp_timestamp
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:65
_GstNvDsUdpSrc::num_local_interfaces
guint num_local_interfaces
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:72
_GstNvDsUdpSrc::dataPtr2
uint8_t * dataPtr2
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:80
_GstNvDsUdpSrc::loop
gboolean loop
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:59
_GstNvDsUdpSrc::num_streams
guint num_streams
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:70
DstStreamInfo::port
uint16_t port
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:39
_GstNvDsUdpSrc::first_rtp_packet
gboolean first_rtp_packet
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:103
_GstNvDsUdpSrc::buffer_size
gint buffer_size
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:50
_GstNvDsUdpSrc::flowLock
GMutex flowLock
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:93
_GstNvDsUdpSrc::len1
guint len1
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:81
_GstNvDsUdpSrc::srcAddress
gchar * srcAddress[MAX_ST2022_7_STREAMS]
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:131
_GstNvDsUdpSrcClass
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:135
_GstNvDsUdpSrc::isGpuDirect
gboolean isGpuDirect
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:125
_GstNvDsUdpSrc::localNicAddr
struct sockaddr_in localNicAddr
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:111
DstStreamInfo::ip
char * ip
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:38
_GstNvDsUdpSrc::last_rtp_tick
guint64 last_rtp_tick
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:104
_GstNvDsUdpSrc::pool
GstBufferPool * pool
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:87
_GstNvDsUdpSrc::timeout
guint64 timeout
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:57
_GstNvDsUdpSrc::frameSize
guint frameSize
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:77
_GstNvDsUdpSrc::qCond
GCond qCond
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:90
_GstNvDsUdpSrc::hdrPtr
gpointer hdrPtr
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:127
_GstNvDsUdpSrc::headerSize
guint headerSize
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:60
gst_nvdsudpsrc_get_type
GType gst_nvdsudpsrc_get_type(void)
_GstNvDsUdpSrc::num_source_addresses
guint num_source_addresses
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:71
_GstNvDsUdpSrc::gpuId
gint gpuId
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:64
MAX_ST2022_7_STREAMS
#define MAX_ST2022_7_STREAMS
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpcommon.h:36
_GstNvDsUdpSrc::dstStream
DstStreamInfo dstStream[MAX_ST2022_7_STREAMS]
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:130
StreamType
StreamType
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpcommon.h:41
_GstNvDsUdpSrc::payloadSize
guint payloadSize
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:61
_GstNvDsUdpSrc::streamType
StreamType streamType
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:74
_GstNvDsUdpSrc::streamId
rmx_stream_id streamId[MAX_ST2022_7_STREAMS]
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:112
_GstNvDsUdpSrc::cancellableFd
gint cancellableFd
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:98
_GstNvDsUdpSrc::outputMemType
MemoryType outputMemType
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:76
_GstNvDsUdpSrc::videoType
VideoType videoType
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:75
_GstNvDsUdpSrc::localIfaceIps
gchar * localIfaceIps
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:48
_GstNvDsUdpSrc::cancellable
GCancellable * cancellable
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:97
_GstNvDsUdpSrc::ffFound
gboolean ffFound
Definition: sources/gst-plugins/gst-nvdsudp/gstnvdsudpsrc.h:84