NVIDIA DeepStream SDK API Reference

6.4 Release
deepstream_nmos_app.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  */
22 
23 #ifndef __DEEPSTREAM_NMOS_APP_H__
24 #define __DEEPSTREAM_NMOS_APP_H__
25 
26 #include <gst/gst.h>
27 
28 #ifdef __cplusplus
29 extern "C"
30 {
31 #endif
32 
33 #define MAX_SOURCE_NUM 16
34 #define MAX_SINK_NUM 16
35 
36 typedef enum NvDsNmosAppMode {
41 
42 typedef enum NvDsNmosSrcType {
46 
47 typedef enum NvDsNmosSinkType {
53 
54 typedef enum NvDsNmosSrtMode {
59 
60 typedef struct NvDsNmosSrcConfig {
61  gboolean enable;
62  guint index;
63  guint type;
64  guint sinkType;
66  guint payloadSize;
67  gchar *sdpFile;
68  gchar *sinkSdpFile;
69  gchar *localIfaceIp;
70  gchar *id;
71  gchar *sinkId;
72  gchar *srcSdpTxt;
73  gchar *sinkSdpTxt;
74  gchar *srtUri;
75  guint srtMode;
76  guint srtLatency;
77  gchar *srtPassphrase;
78  guint bitrate;
81  guint flipMethod;
83 
84 typedef struct NvDsNmosSinkConfig {
85  gboolean enable;
86  guint index;
87  guint type;
89  guint payloadSize;
90  gchar *sdpFile;
91  gchar *localIfaceIp;
92  gchar *id;
93  gchar *sdpTxt;
95 
96 typedef struct NvDsNmosAppConfig {
97  gboolean enablePgie;
98  guint httpPort;
99  guint numSrc;
100  guint numSink;
101  gchar *seed;
102  gchar *hostName;
103  gchar *pgieConfFile;
104  gboolean pluginType;
108 
109 typedef struct NvDsNmosSrcBin
110 {
111  GstElement *bin;
112  GstElement *src;
113  GstElement *queue;
114  GstElement *payloader;
115  GstElement *sink;
116  gchar *mediaType;
117  gchar *srcId;
118  guint srcIndex;
120 
121 typedef struct NvDsNmosSinkBin
122 {
123  GstElement *bin;
124  GstElement *queue;
125  GstElement *payloader;
126  GstElement *sink;
127  gchar *mediaType;
128  gchar *id;
129  guint index;
131 
132 typedef struct NvDsNmosAppCtx {
133  GstElement *pipeline;
134  guint watchId;
136  GMainLoop *loop;
138  GHashTable *sources;
139  GHashTable *sinks;
141 
142 #ifdef __cplusplus
143 }
144 #endif
145 
146 #endif
NvDsNmosSrcBin
struct NvDsNmosSrcBin NvDsNmosSrcBin
NvDsNmosSrcType
NvDsNmosSrcType
Definition: deepstream_nmos_app.h:42
NvDsNmosAppCtx
Definition: deepstream_nmos_app.h:132
NvDsNmosAppCtx::pipeline
GstElement * pipeline
Definition: deepstream_nmos_app.h:133
NVDS_NMOS_APP_MODE_RECVSEND
@ NVDS_NMOS_APP_MODE_RECVSEND
Definition: deepstream_nmos_app.h:39
NvDsNmosSrcBin::bin
GstElement * bin
Definition: deepstream_nmos_app.h:111
NvDsNmosSrcBin::queue
GstElement * queue
Definition: deepstream_nmos_app.h:113
NvDsNmosAppConfig::httpPort
guint httpPort
Definition: deepstream_nmos_app.h:98
NvDsNmosSrcConfig::encodeCapsFilter
gchar * encodeCapsFilter
Definition: deepstream_nmos_app.h:80
NvDsNmosAppConfig
Definition: deepstream_nmos_app.h:96
NvDsNmosSinkConfig
Definition: deepstream_nmos_app.h:84
NMOS_UDP_SINK_NV
@ NMOS_UDP_SINK_NV
Definition: deepstream_nmos_app.h:49
NMOS_UDP_SRC_OSS
@ NMOS_UDP_SRC_OSS
Definition: deepstream_nmos_app.h:43
NvDsNmosSinkConfig::id
gchar * id
Definition: deepstream_nmos_app.h:92
NvDsNmosSrcBin::src
GstElement * src
Definition: deepstream_nmos_app.h:112
NvDsNmosAppMode
NvDsNmosAppMode
Definition: deepstream_nmos_app.h:36
NvDsNmosAppConfig::numSink
guint numSink
Definition: deepstream_nmos_app.h:100
NvDsNmosSrcConfig::srcSdpTxt
gchar * srcSdpTxt
Definition: deepstream_nmos_app.h:72
NvDsNmosSrcBin::mediaType
gchar * mediaType
Definition: deepstream_nmos_app.h:116
NvDsNmosAppCtx::watchId
guint watchId
Definition: deepstream_nmos_app.h:134
NvDsNmosSinkBin
struct NvDsNmosSinkBin NvDsNmosSinkBin
NvDsNmosAppCtx::sinks
GHashTable * sinks
Definition: deepstream_nmos_app.h:139
NvDsNmosSrcBin::srcIndex
guint srcIndex
Definition: deepstream_nmos_app.h:118
NvDsNmosSrcConfig
struct NvDsNmosSrcConfig NvDsNmosSrcConfig
NvDsNmosSrcBin::sink
GstElement * sink
Definition: deepstream_nmos_app.h:115
NvDsNmosSinkBin::payloader
GstElement * payloader
Definition: deepstream_nmos_app.h:125
NMOS_SRT_SINK
@ NMOS_SRT_SINK
Definition: deepstream_nmos_app.h:50
NvDsNmosAppConfig::pluginType
gboolean pluginType
Definition: deepstream_nmos_app.h:104
NvDsNmosSinkBin
Definition: deepstream_nmos_app.h:121
NvDsNmosSrcConfig::payloadSize
guint payloadSize
Definition: deepstream_nmos_app.h:66
NvDsNmosSrcConfig::enable
gboolean enable
Definition: deepstream_nmos_app.h:61
MAX_SINK_NUM
#define MAX_SINK_NUM
Definition: deepstream_nmos_app.h:34
NVDS_NMOS_APP_MODE_SEND
@ NVDS_NMOS_APP_MODE_SEND
Definition: deepstream_nmos_app.h:38
NMOS_UDP_SINK_OSS
@ NMOS_UDP_SINK_OSS
Definition: deepstream_nmos_app.h:48
NvDsNmosSrcConfig::srtMode
guint srtMode
Definition: deepstream_nmos_app.h:75
NvDsNmosAppConfig::numSrc
guint numSrc
Definition: deepstream_nmos_app.h:99
NvDsNmosAppCtx
struct NvDsNmosAppCtx NvDsNmosAppCtx
NvDsNmosSrcConfig::type
guint type
Definition: deepstream_nmos_app.h:63
NvDsNmosAppConfig
struct NvDsNmosAppConfig NvDsNmosAppConfig
NvDsNmosAppConfig::srcConfigs
NvDsNmosSrcConfig srcConfigs[MAX_SOURCE_NUM]
Definition: deepstream_nmos_app.h:105
NvDsNmosAppConfig::pgieConfFile
gchar * pgieConfFile
Definition: deepstream_nmos_app.h:103
NvDsNmosAppCtx::sources
GHashTable * sources
Definition: deepstream_nmos_app.h:138
NvDsNmosSinkBin::queue
GstElement * queue
Definition: deepstream_nmos_app.h:124
NvDsNmosSrcConfig::sinkId
gchar * sinkId
Definition: deepstream_nmos_app.h:71
NvDsNmosSinkConfig::localIfaceIp
gchar * localIfaceIp
Definition: deepstream_nmos_app.h:91
NvDsNmosSrcConfig::index
guint index
Definition: deepstream_nmos_app.h:62
NMOS_SRT_MODE_RENDEZVOUS
@ NMOS_SRT_MODE_RENDEZVOUS
Definition: deepstream_nmos_app.h:57
NvDsNmosSinkConfig::type
guint type
Definition: deepstream_nmos_app.h:87
NMOS_XVIMAGE_SINK
@ NMOS_XVIMAGE_SINK
Definition: deepstream_nmos_app.h:51
NvDsNmosSinkBin::mediaType
gchar * mediaType
Definition: deepstream_nmos_app.h:127
NvDsNmosAppConfig::enablePgie
gboolean enablePgie
Definition: deepstream_nmos_app.h:97
NvDsNmosSrcBin::srcId
gchar * srcId
Definition: deepstream_nmos_app.h:117
NvDsNmosSrcConfig::id
gchar * id
Definition: deepstream_nmos_app.h:70
NvDsNmosSrcConfig::bitrate
guint bitrate
Definition: deepstream_nmos_app.h:78
NMOS_SRT_MODE_LISTENER
@ NMOS_SRT_MODE_LISTENER
Definition: deepstream_nmos_app.h:56
NvDsNmosSinkType
NvDsNmosSinkType
Definition: deepstream_nmos_app.h:47
NvDsNmosSrcConfig::localIfaceIp
gchar * localIfaceIp
Definition: deepstream_nmos_app.h:69
NvDsNmosSinkBin::id
gchar * id
Definition: deepstream_nmos_app.h:128
NvDsNmosAppConfig::sinkConfigs
NvDsNmosSinkConfig sinkConfigs[MAX_SINK_NUM]
Definition: deepstream_nmos_app.h:106
NvDsNmosSrcConfig
Definition: deepstream_nmos_app.h:60
NvDsNmosSinkBin::sink
GstElement * sink
Definition: deepstream_nmos_app.h:126
NvDsNmosSrcConfig::sinkSdpFile
gchar * sinkSdpFile
Definition: deepstream_nmos_app.h:68
NvDsNmosSrcConfig::iframeinterval
guint iframeinterval
Definition: deepstream_nmos_app.h:79
MAX_SOURCE_NUM
#define MAX_SOURCE_NUM
Definition: deepstream_nmos_app.h:33
NvDsNmosSrcConfig::flipMethod
guint flipMethod
Definition: deepstream_nmos_app.h:81
NvDsNmosSrcConfig::sinkSdpTxt
gchar * sinkSdpTxt
Definition: deepstream_nmos_app.h:73
NvDsNmosSrcConfig::srtPassphrase
gchar * srtPassphrase
Definition: deepstream_nmos_app.h:77
NvDsNmosSrcConfig::sinkType
guint sinkType
Definition: deepstream_nmos_app.h:64
NvDsNmosSinkConfig
struct NvDsNmosSinkConfig NvDsNmosSinkConfig
NvDsNmosSinkConfig::sdpFile
gchar * sdpFile
Definition: deepstream_nmos_app.h:90
NvDsNmosSinkConfig::sdpTxt
gchar * sdpTxt
Definition: deepstream_nmos_app.h:93
NMOS_UDP_SRC_NV
@ NMOS_UDP_SRC_NV
Definition: deepstream_nmos_app.h:44
NvDsNmosSrcConfig::sdpFile
gchar * sdpFile
Definition: deepstream_nmos_app.h:67
NvDsNmosSrcConfig::srtLatency
guint srtLatency
Definition: deepstream_nmos_app.h:76
NvDsNmosSinkConfig::packetsPerLine
guint packetsPerLine
Definition: deepstream_nmos_app.h:88
NvDsNmosSrtMode
NvDsNmosSrtMode
Definition: deepstream_nmos_app.h:54
NvDsNmosAppCtx::isPipelineActive
gboolean isPipelineActive
Definition: deepstream_nmos_app.h:135
NvDsNmosSrcBin
Definition: deepstream_nmos_app.h:109
NvDsNmosSinkConfig::enable
gboolean enable
Definition: deepstream_nmos_app.h:85
NvDsNmosSrcConfig::srtUri
gchar * srtUri
Definition: deepstream_nmos_app.h:74
NMOS_SRT_MODE_CALLER
@ NMOS_SRT_MODE_CALLER
Definition: deepstream_nmos_app.h:55
NvDsNmosSinkConfig::index
guint index
Definition: deepstream_nmos_app.h:86
NvDsNmosSinkBin::index
guint index
Definition: deepstream_nmos_app.h:129
NvDsNmosSinkConfig::payloadSize
guint payloadSize
Definition: deepstream_nmos_app.h:89
NvDsNmosAppConfig::seed
gchar * seed
Definition: deepstream_nmos_app.h:101
NvDsNmosSinkBin::bin
GstElement * bin
Definition: deepstream_nmos_app.h:123
NvDsNmosAppConfig::hostName
gchar * hostName
Definition: deepstream_nmos_app.h:102
NvDsNmosSrcConfig::packetsPerLine
guint packetsPerLine
Definition: deepstream_nmos_app.h:65
NVDS_NMOS_APP_MODE_RECEIVE
@ NVDS_NMOS_APP_MODE_RECEIVE
Definition: deepstream_nmos_app.h:37
NvDsNmosSrcBin::payloader
GstElement * payloader
Definition: deepstream_nmos_app.h:114
NvDsNmosAppCtx::loop
GMainLoop * loop
Definition: deepstream_nmos_app.h:136
NvDsNmosAppCtx::config
NvDsNmosAppConfig config
Definition: deepstream_nmos_app.h:137