NVIDIA DeepStream SDK API Reference

8.0 Release
gstnvdsudpsink.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-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_NVDSUDPSINK_H_
14 #define _GST_NVDSUDPSINK_H_
15 
16 #include <gst/base/gstbasesink.h>
17 #include <gst/base/gstadapter.h>
18 #include <rivermax_api.h>
19 #include <gio/gio.h>
20 
21 #include "gstnvdsudpcommon.h"
22 
23 G_BEGIN_DECLS
24 
25 #define GST_TYPE_NVDSUDPSINK (gst_nvdsudpsink_get_type())
26 #define GST_NVDSUDPSINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NVDSUDPSINK,GstNvDsUdpSink))
27 #define GST_NVDSUDPSINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NVDSUDPSINK,GstNvDsUdpSinkClass))
28 #define GST_IS_NVDSUDPSINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NVDSUDPSINK))
29 #define GST_IS_NVDSUDPSINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NVDSUDPSINK))
30 
33 
34 typedef struct StreamParams {
35  guint width;
36  guint height;
41  guint payloadStride; // payload stride size.
42  guint headerStride; // header stride size.
43  guint chunkSize; // Number of packets in a chunk.
44  guint sampleRate;
45  guint depth;
47  guint64 ptime; // duration of audio in a packet in nanoseconds.
48  gdouble frameTimeInterval; // Time interval of frame in nanoseconds.
49  gdouble firstPacketTime;
50  gdouble fps;
53  gchar *format;
54  guint chunkNum;
55  guint64 frameCount;
56  guint16 seq;
57  guint16 extSeqNumber;
58  gdouble timestampTick;
59  guint ssrc;
60  guint8 payloadType;
61 } StreamParams;
62 
64 {
65  GstBaseSink parent;
66 
67  gboolean isRtpStream;
68  GstAdapter *adapter;
69  /* properties */
70  gboolean auto_multicast;
71  gboolean close_socket;
72  gboolean loop;
73  GSocket *socket;
74  gchar *sdpFile;
75  gchar *host;
76  guint16 port;
77  gchar *uri;
78  gchar *localIfaceIp;
79  gchar *ptpSrc;
80  guint nChunks;
82  guint payloadSize;
85  gint gpu_id; /* GPU ID for GPUDirect, -1 means disabled */
86 
87  guint nextChunk;
88  GThread *rThread;
89  GQueue *bufferQ;
90  GCond qCond;
91  GMutex qLock;
92  gboolean isRunning;
93  gint lastError;
95 
96  /* Rivermax specific */
97  void *memblock;
98  void *header_block;
99  rmax_stream_id streamId;
100  struct sockaddr_in localNicAddr;
101  struct rmax_chunk *chunks;
102  rmax_mkey_id mKey[MAX_ST2022_7_STREAMS];
103  rmax_mkey_id hKey[MAX_ST2022_7_STREAMS];
105  gboolean isGenericApi;
107 
108  /* GPU direct specific */
109  gboolean isGpuDirect;
110  gboolean is_nvmm;
112  CUstream cuda_stream;
113 
114  gboolean is_dup;
116  guint num_streams;
117 };
118 
120 {
121  GstBaseSinkClass parent_class;
122 };
123 
124 GType gst_nvdsudpsink_get_type (void);
125 
126 G_END_DECLS
127 
128 #endif
MAX_ST2022_7_STREAMS
#define MAX_ST2022_7_STREAMS
Definition: gstnvdsudpcommon.h:30
_GstNvDsUdpSink::isGenericApi
gboolean isGenericApi
Definition: gstnvdsudpsink.h:105
_GstNvDsUdpSink::internalThreadCore
gint internalThreadCore
Definition: gstnvdsudpsink.h:106
StreamParams::depth
guint depth
Definition: gstnvdsudpsink.h:45
StreamParams::ptime
guint64 ptime
Definition: gstnvdsudpsink.h:47
StreamParams::chunksPerFrame
guint chunksPerFrame
Definition: gstnvdsudpsink.h:38
_GstNvDsUdpSink::adapter
GstAdapter * adapter
Definition: gstnvdsudpsink.h:68
StreamParams::packetsPerFrame
guint packetsPerFrame
Definition: gstnvdsudpsink.h:37
_GstNvDsUdpSinkClass
Definition: gstnvdsudpsink.h:119
StreamParams::streamType
StreamType streamType
Definition: gstnvdsudpsink.h:51
_GstNvDsUdpSink::localIfaceIp
gchar * localIfaceIp
Definition: gstnvdsudpsink.h:78
gst_nvdsudpsink_get_type
GType gst_nvdsudpsink_get_type(void)
_GstNvDsUdpSink::isRtpStream
gboolean isRtpStream
Definition: gstnvdsudpsink.h:67
_GstNvDsUdpSink::rThread
GThread * rThread
Definition: gstnvdsudpsink.h:88
_GstNvDsUdpSink::mKey
rmax_mkey_id mKey[MAX_ST2022_7_STREAMS]
Definition: gstnvdsudpsink.h:102
_GstNvDsUdpSink::parent
GstBaseSink parent
Definition: gstnvdsudpsink.h:65
gstnvdsudpcommon.h
_GstNvDsUdpSink::loop
gboolean loop
Definition: gstnvdsudpsink.h:72
_GstNvDsUdpSinkClass::parent_class
GstBaseSinkClass parent_class
Definition: gstnvdsudpsink.h:121
_GstNvDsUdpSink::ptpSrc
gchar * ptpSrc
Definition: gstnvdsudpsink.h:79
_GstNvDsUdpSink::header_block
void * header_block
Definition: gstnvdsudpsink.h:98
_GstNvDsUdpSink::alignedMemSize
size_t alignedMemSize
Definition: gstnvdsudpsink.h:111
StreamParams::audioChannels
guint audioChannels
Definition: gstnvdsudpsink.h:46
StreamParams::payloadStride
guint payloadStride
Definition: gstnvdsudpsink.h:41
_GstNvDsUdpSink::streamParams
StreamParams streamParams
Definition: gstnvdsudpsink.h:104
_GstNvDsUdpSink::source_ips
gchar * source_ips[MAX_ST2022_7_STREAMS]
Definition: gstnvdsudpsink.h:115
StreamParams::seq
guint16 seq
Definition: gstnvdsudpsink.h:56
_GstNvDsUdpSink::bufferQ
GQueue * bufferQ
Definition: gstnvdsudpsink.h:89
_GstNvDsUdpSink::is_nvmm
gboolean is_nvmm
Definition: gstnvdsudpsink.h:110
StreamParams::frameCount
guint64 frameCount
Definition: gstnvdsudpsink.h:55
_GstNvDsUdpSink::streamId
rmax_stream_id streamId
Definition: gstnvdsudpsink.h:99
StreamParams::chunksPerMemblock
guint chunksPerMemblock
Definition: gstnvdsudpsink.h:39
StreamParams::height
guint height
Definition: gstnvdsudpsink.h:36
StreamParams
Definition: gstnvdsudpsink.h:34
StreamParams::videoType
VideoType videoType
Definition: gstnvdsudpsink.h:52
_GstNvDsUdpSink::memblock
void * memblock
Definition: gstnvdsudpsink.h:97
StreamParams::sampleRate
guint sampleRate
Definition: gstnvdsudpsink.h:44
_GstNvDsUdpSink::auto_multicast
gboolean auto_multicast
Definition: gstnvdsudpsink.h:70
StreamParams::ssrc
guint ssrc
Definition: gstnvdsudpsink.h:59
_GstNvDsUdpSink::isGpuDirect
gboolean isGpuDirect
Definition: gstnvdsudpsink.h:109
StreamParams
struct StreamParams StreamParams
_GstNvDsUdpSink::cuda_stream
CUstream cuda_stream
Definition: gstnvdsudpsink.h:112
StreamParams::extSeqNumber
guint16 extSeqNumber
Definition: gstnvdsudpsink.h:57
StreamParams::format
gchar * format
Definition: gstnvdsudpsink.h:53
_GstNvDsUdpSink::isRunning
gboolean isRunning
Definition: gstnvdsudpsink.h:92
_GstNvDsUdpSink::packetsPerChunk
guint packetsPerChunk
Definition: gstnvdsudpsink.h:81
_GstNvDsUdpSink::chunks
struct rmax_chunk * chunks
Definition: gstnvdsudpsink.h:101
_GstNvDsUdpSink::nChunks
guint nChunks
Definition: gstnvdsudpsink.h:80
_GstNvDsUdpSink::qCond
GCond qCond
Definition: gstnvdsudpsink.h:90
_GstNvDsUdpSink::uri
gchar * uri
Definition: gstnvdsudpsink.h:77
_GstNvDsUdpSink::renderThreadCore
gchar * renderThreadCore
Definition: gstnvdsudpsink.h:94
_GstNvDsUdpSink::packetsPerLine
guint packetsPerLine
Definition: gstnvdsudpsink.h:83
_GstNvDsUdpSink::num_streams
guint num_streams
Definition: gstnvdsudpsink.h:116
_GstNvDsUdpSink::localNicAddr
struct sockaddr_in localNicAddr
Definition: gstnvdsudpsink.h:100
StreamType
StreamType
Definition: gstnvdsudpcommon.h:35
_GstNvDsUdpSink::payloadSize
guint payloadSize
Definition: gstnvdsudpsink.h:82
_GstNvDsUdpSink
Definition: gstnvdsudpsink.h:63
StreamParams::timestampTick
gdouble timestampTick
Definition: gstnvdsudpsink.h:58
StreamParams::firstPacketTime
gdouble firstPacketTime
Definition: gstnvdsudpsink.h:49
StreamParams::fps
gdouble fps
Definition: gstnvdsudpsink.h:50
StreamParams::frameTimeInterval
gdouble frameTimeInterval
Definition: gstnvdsudpsink.h:48
_GstNvDsUdpSink::qLock
GMutex qLock
Definition: gstnvdsudpsink.h:91
_GstNvDsUdpSink::close_socket
gboolean close_socket
Definition: gstnvdsudpsink.h:71
_GstNvDsUdpSink::pass_rtp_timestamp
gboolean pass_rtp_timestamp
Definition: gstnvdsudpsink.h:84
_GstNvDsUdpSink::is_dup
gboolean is_dup
Definition: gstnvdsudpsink.h:114
_GstNvDsUdpSink::sdpFile
gchar * sdpFile
Definition: gstnvdsudpsink.h:74
StreamParams::chunkNum
guint chunkNum
Definition: gstnvdsudpsink.h:54
StreamParams::framesPerMemblock
guint framesPerMemblock
Definition: gstnvdsudpsink.h:40
_GstNvDsUdpSink::lastError
gint lastError
Definition: gstnvdsudpsink.h:93
_GstNvDsUdpSink::hKey
rmax_mkey_id hKey[MAX_ST2022_7_STREAMS]
Definition: gstnvdsudpsink.h:103
_GstNvDsUdpSink::port
guint16 port
Definition: gstnvdsudpsink.h:76
StreamParams::width
guint width
Definition: gstnvdsudpsink.h:35
_GstNvDsUdpSink::host
gchar * host
Definition: gstnvdsudpsink.h:75
VideoType
VideoType
Definition: gstnvdsudpcommon.h:43
StreamParams::chunkSize
guint chunkSize
Definition: gstnvdsudpsink.h:43
_GstNvDsUdpSink::gpu_id
gint gpu_id
Definition: gstnvdsudpsink.h:85
StreamParams::headerStride
guint headerStride
Definition: gstnvdsudpsink.h:42
StreamParams::payloadType
guint8 payloadType
Definition: gstnvdsudpsink.h:60
_GstNvDsUdpSink::nextChunk
guint nextChunk
Definition: gstnvdsudpsink.h:87
_GstNvDsUdpSink::socket
GSocket * socket
Definition: gstnvdsudpsink.h:73