NVIDIA DeepStream SDK API Reference

6.4 Release
nvdsnmos.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2022-2023, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA Corporation and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA Corporation is strictly prohibited.
9  *
10  */
11 
52 #ifndef NVDSNMOS_H
53 #define NVDSNMOS_H
54 
55 #if defined(NVDSNMOS_EXPORTS)
56 
57 #if defined(_WIN32) || defined(__CYGWIN__)
58 #define NVDSNMOS_API __declspec(dllexport)
59 #elif defined(__GNUC__) && (__GNUC__ >= 4)
60 #define NVDSNMOS_API __attribute__ ((visibility("default")))
61 #else
62 #define NVDSNMOS_API
63 #endif
64 
65 #elif defined(NVDSNMOS_STATIC)
66 
67 #define NVDSNMOS_API
68 
69 #else
70 
71 #if defined(_WIN32) || defined(__CYGWIN__)
72 #define NVDSNMOS_API __declspec(dllimport)
73 #elif defined(__GNUC__) && (__GNUC__ >= 4)
74 #define NVDSNMOS_API
75 #else
76 #define NVDSNMOS_API
77 #endif
78 
79 #endif
80 
81 #include <stdbool.h>
82 
83 #ifdef __cplusplus
84 extern "C"
85 {
86 #endif
87 
89 
116  NvDsNmosNodeServer *server,
117  const char *id,
118  const char *sdp);
119 
124 enum {
139 };
140 
152 typedef void (* nmos_logging_callback)(
153  NvDsNmosNodeServer *server,
154  const char *categories,
155  int level,
156  const char *message);
157 
161 
166 typedef struct _NvDsNmosNodeConfig
167 {
171  const char *host_name;
176  const char **host_addresses;
178  unsigned int num_host_addresses;
181  unsigned int http_port;
182 
185 
188  const char *seed;
189 
194  unsigned int num_receivers;
199  unsigned int num_senders;
200 
204 
212  const char **log_categories;
214  unsigned int num_log_categories;
216 
221 typedef struct _NvDsNmosAssetConfig
222 {
224  const char* manufacturer;
226  const char* product;
229  const char* instance_id;
232  const char** functions;
234  unsigned int num_functions;
236 
242 {
253  const char *sdp;
255 
260 typedef struct _NvDsNmosSenderConfig
261 {
273  const char *sdp;
275 
281 typedef struct _NvDsNmosNodeServer
282 {
288  void *user_data;
292  void *impl;
294 
307  const NvDsNmosNodeConfig *config,
308  NvDsNmosNodeServer *server);
309 
321  NvDsNmosNodeServer *server);
322 
335  NvDsNmosNodeServer *server,
336  const NvDsNmosReceiverConfig* config);
337 
350  NvDsNmosNodeServer *server,
351  const char* id);
352 
365  NvDsNmosNodeServer *server,
366  const NvDsNmosSenderConfig* config);
367 
380  NvDsNmosNodeServer *server,
381  const char* id);
382 
411  NvDsNmosNodeServer *server,
412  const char *id,
413  const char *sdp);
414 
415 #ifdef __cplusplus
416 }
417 #endif
418 
419 #endif
420 
_NvDsNmosAssetConfig::instance_id
const char * instance_id
Holds the instance identifier, e.g.
Definition: nvdsnmos.h:229
_NvDsNmosAssetConfig::manufacturer
const char * manufacturer
Holds the manufacturer, e.g.
Definition: nvdsnmos.h:224
_NvDsNmosNodeServer::impl
void * impl
Holds an opaque pointer used by the NvDsNmos library.
Definition: nvdsnmos.h:292
destroy_nmos_node_server
NVDSNMOS_API bool destroy_nmos_node_server(NvDsNmosNodeServer *server)
Stop and deinitialize an NMOS Node server.
_NvDsNmosNodeConfig::num_log_categories
unsigned int num_log_categories
Holds the number of log_categories.
Definition: nvdsnmos.h:214
_NvDsNmosNodeConfig::rtp_connection_activated
nmos_connection_rtp_activation_callback rtp_connection_activated
Holds the callback for handling an IS-05 Connection API activation.
Definition: nvdsnmos.h:203
nmos_connection_rtp_activation_callback
bool(* nmos_connection_rtp_activation_callback)(NvDsNmosNodeServer *server, const char *id, const char *sdp)
Type for a callback from NvDsNmos library when an IS-05 Connection API activation occurs.
Definition: nvdsnmos.h:115
_NvDsNmosNodeConfig::log_level
int log_level
Holds the minimum severity/verbosity level for which to make logging callbacks.
Definition: nvdsnmos.h:209
_NvDsNmosNodeServer
Holds the implementation details of a running NvDsNmos server.
Definition: nvdsnmos.h:281
nmos_logging_callback
void(* nmos_logging_callback)(NvDsNmosNodeServer *server, const char *categories, int level, const char *message)
Type for a callback from NvDsNmos library for log messages.
Definition: nvdsnmos.h:152
_NvDsNmosNodeConfig::asset_tags
NvDsNmosAssetConfig * asset_tags
Holds BCP-002-02 Asset Distinguishing Information.
Definition: nvdsnmos.h:184
_NvDsNmosNodeConfig::host_addresses
const char ** host_addresses
Holds the host IP addresses, e.g.
Definition: nvdsnmos.h:176
NvDsNmosNodeServer
struct _NvDsNmosNodeServer NvDsNmosNodeServer
Holds the implementation details of a running NvDsNmos server.
Definition: nvdsnmos.h:88
NVDSNMOS_LOG_SEVERE
@ NVDSNMOS_LOG_SEVERE
Errors which are unlikely to be recoverable without restarting the server.
Definition: nvdsnmos.h:136
_NvDsNmosAssetConfig::product
const char * product
Holds the product name, e.g.
Definition: nvdsnmos.h:226
_NvDsNmosNodeConfig::receivers
NvDsNmosReceiverConfig * receivers
Holds configuration settings for the receivers.
Definition: nvdsnmos.h:192
_NvDsNmosNodeConfig::num_host_addresses
unsigned int num_host_addresses
Holds the number of host_addresses.
Definition: nvdsnmos.h:178
_NvDsNmosNodeConfig::senders
NvDsNmosSenderConfig * senders
Holds configuration settings for the senders.
Definition: nvdsnmos.h:197
NVDSNMOS_LOG_VERBOSE
@ NVDSNMOS_LOG_VERBOSE
Chatty messages such as detailed API request/response tracking.
Definition: nvdsnmos.h:128
_NvDsNmosNodeConfig::seed
const char * seed
Holds a string used to ensure repeatable UUID generation.
Definition: nvdsnmos.h:188
add_nmos_receiver_to_node_server
NVDSNMOS_API bool add_nmos_receiver_to_node_server(NvDsNmosNodeServer *server, const NvDsNmosReceiverConfig *config)
Add an NMOS Receiver to an NMOS Node server according to the specified configuration settings.
_NvDsNmosAssetConfig
Defines asset distinguishing information for BCP-002-02 tags in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:221
NVDSNMOS_LOG_DEVEL
@ NVDSNMOS_LOG_DEVEL
Low level debugging information.
Definition: nvdsnmos.h:126
NVDSNMOS_LOG_INFO
@ NVDSNMOS_LOG_INFO
Higher level information about expected API events.
Definition: nvdsnmos.h:130
_NvDsNmosNodeServer::user_data
void * user_data
Holds a pointer to user data, not used by the NvDsNmos library.
Definition: nvdsnmos.h:288
_NvDsNmosNodeConfig
Defines configuration settings used to create an NvDsNmosNodeServer.
Definition: nvdsnmos.h:166
NvDsNmosAssetConfig
struct _NvDsNmosAssetConfig NvDsNmosAssetConfig
Defines asset distinguishing information for BCP-002-02 tags in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:158
_NvDsNmosReceiverConfig
Defines configuration settings used to create receivers in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:241
NvDsNmosReceiverConfig
struct _NvDsNmosReceiverConfig NvDsNmosReceiverConfig
Defines configuration settings used to create receivers in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:159
_NvDsNmosNodeConfig::host_name
const char * host_name
Holds the fully-qualified host name, e.g.
Definition: nvdsnmos.h:171
_NvDsNmosNodeConfig::log_callback
nmos_logging_callback log_callback
Holds the callback for handling log messages.
Definition: nvdsnmos.h:206
remove_nmos_sender_from_node_server
NVDSNMOS_API bool remove_nmos_sender_from_node_server(NvDsNmosNodeServer *server, const char *id)
Remove an NMOS Sender from an NMOS Node server.
_NvDsNmosSenderConfig
Defines configuration settings used to create senders in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:260
NVDSNMOS_API
#define NVDSNMOS_API
Definition: nvdsnmos.h:76
NVDSNMOS_LOG_ERROR
@ NVDSNMOS_LOG_ERROR
More serious recoverable errors such as rejected requests.
Definition: nvdsnmos.h:134
create_nmos_node_server
NVDSNMOS_API bool create_nmos_node_server(const NvDsNmosNodeConfig *config, NvDsNmosNodeServer *server)
Initialize and start an NMOS Node server according to the specified configuration settings.
nmos_connection_rtp_activate
NVDSNMOS_API bool nmos_connection_rtp_activate(NvDsNmosNodeServer *server, const char *id, const char *sdp)
Update the configuration settings of a sender or receiver.
_NvDsNmosSenderConfig::sdp
const char * sdp
Holds the Session Description Protocol data used to configure the sender.
Definition: nvdsnmos.h:273
NvDsNmosNodeConfig
struct _NvDsNmosNodeConfig NvDsNmosNodeConfig
Defines configuration settings used to create an NvDsNmosNodeServer.
remove_nmos_receiver_from_node_server
NVDSNMOS_API bool remove_nmos_receiver_from_node_server(NvDsNmosNodeServer *server, const char *id)
Remove an NMOS Receiver from an NMOS Node server.
_NvDsNmosReceiverConfig::sdp
const char * sdp
Holds the Session Description Protocol data used to configure the receiver.
Definition: nvdsnmos.h:253
_NvDsNmosNodeConfig::http_port
unsigned int http_port
Holds the port number for the HTTP APIs, e.g.
Definition: nvdsnmos.h:181
_NvDsNmosNodeConfig::num_receivers
unsigned int num_receivers
Holds the number of receivers.
Definition: nvdsnmos.h:194
_NvDsNmosNodeConfig::log_categories
const char ** log_categories
Holds topics for which to make logging callbacks.
Definition: nvdsnmos.h:212
_NvDsNmosAssetConfig::functions
const char ** functions
Holds the function or functions, e.g.
Definition: nvdsnmos.h:232
NVDSNMOS_LOG_FATAL
@ NVDSNMOS_LOG_FATAL
Errors which are likely to cause the server to immediately terminate.
Definition: nvdsnmos.h:138
_NvDsNmosNodeConfig::num_senders
unsigned int num_senders
Holds the number of senders.
Definition: nvdsnmos.h:199
NVDSNMOS_LOG_WARNING
@ NVDSNMOS_LOG_WARNING
Minor problems that could be recovered automatically by the library.
Definition: nvdsnmos.h:132
NvDsNmosSenderConfig
struct _NvDsNmosSenderConfig NvDsNmosSenderConfig
Defines configuration settings used to create senders in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:160
_NvDsNmosAssetConfig::num_functions
unsigned int num_functions
Holds the number of functions.
Definition: nvdsnmos.h:234
add_nmos_sender_to_node_server
NVDSNMOS_API bool add_nmos_sender_to_node_server(NvDsNmosNodeServer *server, const NvDsNmosSenderConfig *config)
Add an NMOS Sender to an NMOS Node server according to the specified configuration settings.