NVIDIA DeepStream SDK API Reference

7.0 Release
nvdsnmos.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022-2023 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 
53 #ifndef NVDSNMOS_H
54 #define NVDSNMOS_H
55 
56 #if defined(NVDSNMOS_EXPORTS)
57 
58 #if defined(_WIN32) || defined(__CYGWIN__)
59 #define NVDSNMOS_API __declspec(dllexport)
60 #elif defined(__GNUC__) && (__GNUC__ >= 4)
61 #define NVDSNMOS_API __attribute__ ((visibility("default")))
62 #else
63 #define NVDSNMOS_API
64 #endif
65 
66 #elif defined(NVDSNMOS_STATIC)
67 
68 #define NVDSNMOS_API
69 
70 #else
71 
72 #if defined(_WIN32) || defined(__CYGWIN__)
73 #define NVDSNMOS_API __declspec(dllimport)
74 #elif defined(__GNUC__) && (__GNUC__ >= 4)
75 #define NVDSNMOS_API
76 #else
77 #define NVDSNMOS_API
78 #endif
79 
80 #endif
81 
82 #include <stdbool.h>
83 
84 #ifdef __cplusplus
85 extern "C"
86 {
87 #endif
88 
90 
117  NvDsNmosNodeServer *server,
118  const char *id,
119  const char *sdp);
120 
125 enum {
140 };
141 
153 typedef void (* nmos_logging_callback)(
154  NvDsNmosNodeServer *server,
155  const char *categories,
156  int level,
157  const char *message);
158 
162 
167 typedef struct _NvDsNmosNodeConfig
168 {
172  const char *host_name;
177  const char **host_addresses;
179  unsigned int num_host_addresses;
182  unsigned int http_port;
183 
186 
189  const char *seed;
190 
195  unsigned int num_receivers;
200  unsigned int num_senders;
201 
205 
213  const char **log_categories;
215  unsigned int num_log_categories;
217 
222 typedef struct _NvDsNmosAssetConfig
223 {
225  const char* manufacturer;
227  const char* product;
230  const char* instance_id;
233  const char** functions;
235  unsigned int num_functions;
237 
243 {
254  const char *sdp;
256 
261 typedef struct _NvDsNmosSenderConfig
262 {
274  const char *sdp;
276 
282 typedef struct _NvDsNmosNodeServer
283 {
289  void *user_data;
293  void *impl;
295 
308  const NvDsNmosNodeConfig *config,
309  NvDsNmosNodeServer *server);
310 
322  NvDsNmosNodeServer *server);
323 
336  NvDsNmosNodeServer *server,
337  const NvDsNmosReceiverConfig* config);
338 
351  NvDsNmosNodeServer *server,
352  const char* id);
353 
366  NvDsNmosNodeServer *server,
367  const NvDsNmosSenderConfig* config);
368 
381  NvDsNmosNodeServer *server,
382  const char* id);
383 
412  NvDsNmosNodeServer *server,
413  const char *id,
414  const char *sdp);
415 
416 #ifdef __cplusplus
417 }
418 #endif
419 
420 #endif
421 
_NvDsNmosAssetConfig::instance_id
const char * instance_id
Holds the instance identifier, e.g.
Definition: nvdsnmos.h:230
_NvDsNmosAssetConfig::manufacturer
const char * manufacturer
Holds the manufacturer, e.g.
Definition: nvdsnmos.h:225
_NvDsNmosNodeServer::impl
void * impl
Holds an opaque pointer used by the NvDsNmos library.
Definition: nvdsnmos.h:293
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:215
_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:204
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:116
_NvDsNmosNodeConfig::log_level
int log_level
Holds the minimum severity/verbosity level for which to make logging callbacks.
Definition: nvdsnmos.h:210
_NvDsNmosNodeServer
Holds the implementation details of a running NvDsNmos server.
Definition: nvdsnmos.h:282
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:153
_NvDsNmosNodeConfig::asset_tags
NvDsNmosAssetConfig * asset_tags
Holds BCP-002-02 Asset Distinguishing Information.
Definition: nvdsnmos.h:185
_NvDsNmosNodeConfig::host_addresses
const char ** host_addresses
Holds the host IP addresses, e.g.
Definition: nvdsnmos.h:177
NvDsNmosNodeServer
struct _NvDsNmosNodeServer NvDsNmosNodeServer
Holds the implementation details of a running NvDsNmos server.
Definition: nvdsnmos.h:89
NVDSNMOS_LOG_SEVERE
@ NVDSNMOS_LOG_SEVERE
Errors which are unlikely to be recoverable without restarting the server.
Definition: nvdsnmos.h:137
_NvDsNmosAssetConfig::product
const char * product
Holds the product name, e.g.
Definition: nvdsnmos.h:227
_NvDsNmosNodeConfig::receivers
NvDsNmosReceiverConfig * receivers
Holds configuration settings for the receivers.
Definition: nvdsnmos.h:193
_NvDsNmosNodeConfig::num_host_addresses
unsigned int num_host_addresses
Holds the number of host_addresses.
Definition: nvdsnmos.h:179
_NvDsNmosNodeConfig::senders
NvDsNmosSenderConfig * senders
Holds configuration settings for the senders.
Definition: nvdsnmos.h:198
NVDSNMOS_LOG_VERBOSE
@ NVDSNMOS_LOG_VERBOSE
Chatty messages such as detailed API request/response tracking.
Definition: nvdsnmos.h:129
_NvDsNmosNodeConfig::seed
const char * seed
Holds a string used to ensure repeatable UUID generation.
Definition: nvdsnmos.h:189
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:222
NVDSNMOS_LOG_DEVEL
@ NVDSNMOS_LOG_DEVEL
Low level debugging information.
Definition: nvdsnmos.h:127
NVDSNMOS_LOG_INFO
@ NVDSNMOS_LOG_INFO
Higher level information about expected API events.
Definition: nvdsnmos.h:131
_NvDsNmosNodeServer::user_data
void * user_data
Holds a pointer to user data, not used by the NvDsNmos library.
Definition: nvdsnmos.h:289
_NvDsNmosNodeConfig
Defines configuration settings used to create an NvDsNmosNodeServer.
Definition: nvdsnmos.h:167
NvDsNmosAssetConfig
struct _NvDsNmosAssetConfig NvDsNmosAssetConfig
Defines asset distinguishing information for BCP-002-02 tags in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:159
_NvDsNmosReceiverConfig
Defines configuration settings used to create receivers in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:242
NvDsNmosReceiverConfig
struct _NvDsNmosReceiverConfig NvDsNmosReceiverConfig
Defines configuration settings used to create receivers in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:160
_NvDsNmosNodeConfig::host_name
const char * host_name
Holds the fully-qualified host name, e.g.
Definition: nvdsnmos.h:172
_NvDsNmosNodeConfig::log_callback
nmos_logging_callback log_callback
Holds the callback for handling log messages.
Definition: nvdsnmos.h:207
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:261
NVDSNMOS_API
#define NVDSNMOS_API
Definition: nvdsnmos.h:77
NVDSNMOS_LOG_ERROR
@ NVDSNMOS_LOG_ERROR
More serious recoverable errors such as rejected requests.
Definition: nvdsnmos.h:135
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:274
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:254
_NvDsNmosNodeConfig::http_port
unsigned int http_port
Holds the port number for the HTTP APIs, e.g.
Definition: nvdsnmos.h:182
_NvDsNmosNodeConfig::num_receivers
unsigned int num_receivers
Holds the number of receivers.
Definition: nvdsnmos.h:195
_NvDsNmosNodeConfig::log_categories
const char ** log_categories
Holds topics for which to make logging callbacks.
Definition: nvdsnmos.h:213
_NvDsNmosAssetConfig::functions
const char ** functions
Holds the function or functions, e.g.
Definition: nvdsnmos.h:233
NVDSNMOS_LOG_FATAL
@ NVDSNMOS_LOG_FATAL
Errors which are likely to cause the server to immediately terminate.
Definition: nvdsnmos.h:139
_NvDsNmosNodeConfig::num_senders
unsigned int num_senders
Holds the number of senders.
Definition: nvdsnmos.h:200
NVDSNMOS_LOG_WARNING
@ NVDSNMOS_LOG_WARNING
Minor problems that could be recovered automatically by the library.
Definition: nvdsnmos.h:133
NvDsNmosSenderConfig
struct _NvDsNmosSenderConfig NvDsNmosSenderConfig
Defines configuration settings used to create senders in an NvDsNmosNodeServer.
Definition: nvdsnmos.h:161
_NvDsNmosAssetConfig::num_functions
unsigned int num_functions
Holds the number of functions.
Definition: nvdsnmos.h:235
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.