NVIDIA DeepStream SDK API Reference

9.1 Release
sources/includes/nvdsnmos.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022-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 
58 #ifndef NVDSNMOS_H
59 #define NVDSNMOS_H
60 
61 #if defined(NVDSNMOS_EXPORTS)
62 
63 #if defined(_WIN32) || defined(__CYGWIN__)
64 #define NVDSNMOS_API __declspec(dllexport)
65 #elif defined(__GNUC__) && (__GNUC__ >= 4)
66 #define NVDSNMOS_API __attribute__ ((visibility("default")))
67 #else
68 #define NVDSNMOS_API
69 #endif
70 
71 #elif defined(NVDSNMOS_STATIC)
72 
73 #define NVDSNMOS_API
74 
75 #else
76 
77 #if defined(_WIN32) || defined(__CYGWIN__)
78 #define NVDSNMOS_API __declspec(dllimport)
79 #elif defined(__GNUC__) && (__GNUC__ >= 4)
80 #define NVDSNMOS_API
81 #else
82 #define NVDSNMOS_API
83 #endif
84 
85 #endif
86 
87 #include <stdbool.h>
88 
89 #ifdef __cplusplus
90 extern "C"
91 {
92 #endif
93 
95 
122  NvDsNmosNodeServer *server,
123  const char *id,
124  const char *sdp);
125 
130 enum {
145 };
146 
158 typedef void (* nmos_logging_callback)(
159  NvDsNmosNodeServer *server,
160  const char *categories,
161  int level,
162  const char *message);
163 
167 
172 typedef struct _NvDsNmosNodeConfig
173 {
177  const char *host_name;
182  const char **host_addresses;
184  unsigned int num_host_addresses;
187  unsigned int http_port;
188 
191 
194  const char *seed;
195 
200  unsigned int num_receivers;
205  unsigned int num_senders;
206 
210 
218  const char **log_categories;
220  unsigned int num_log_categories;
222 
227 typedef struct _NvDsNmosAssetConfig
228 {
230  const char* manufacturer;
232  const char* product;
235  const char* instance_id;
238  const char** functions;
240  unsigned int num_functions;
242 
248 {
259  const char *sdp;
261 
266 typedef struct _NvDsNmosSenderConfig
267 {
279  const char *sdp;
281 
287 typedef struct _NvDsNmosNodeServer
288 {
294  void *user_data;
298  void *impl;
300 
313  const NvDsNmosNodeConfig *config,
314  NvDsNmosNodeServer *server);
315 
327  NvDsNmosNodeServer *server);
328 
341  NvDsNmosNodeServer *server,
342  const NvDsNmosReceiverConfig* config);
343 
356  NvDsNmosNodeServer *server,
357  const char* id);
358 
371  NvDsNmosNodeServer *server,
372  const NvDsNmosSenderConfig* config);
373 
386  NvDsNmosNodeServer *server,
387  const char* id);
388 
417  NvDsNmosNodeServer *server,
418  const char *id,
419  const char *sdp);
420 
421 #ifdef __cplusplus
422 }
423 #endif
424 
425 #endif
426 
_NvDsNmosNodeConfig::receivers
NvDsNmosReceiverConfig * receivers
Holds configuration settings for the receivers.
Definition: sources/includes/nvdsnmos.h:198
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: sources/includes/nvdsnmos.h:220
_NvDsNmosNodeConfig::rtp_connection_activated
nmos_connection_rtp_activation_callback rtp_connection_activated
Holds the callback for handling an IS-05 Connection API activation.
Definition: sources/includes/nvdsnmos.h:209
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: sources/includes/nvdsnmos.h:121
_NvDsNmosNodeConfig::log_level
int log_level
Holds the minimum severity/verbosity level for which to make logging callbacks.
Definition: sources/includes/nvdsnmos.h:215
_NvDsNmosNodeServer
Holds the implementation details of a running NvDsNmos server.
Definition: sources/includes/nvdsnmos.h:287
NVDSNMOS_LOG_FATAL
@ NVDSNMOS_LOG_FATAL
Errors which are likely to cause the server to immediately terminate.
Definition: sources/includes/nvdsnmos.h:144
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: sources/includes/nvdsnmos.h:158
NvDsNmosNodeServer
struct _NvDsNmosNodeServer NvDsNmosNodeServer
Holds the implementation details of a running NvDsNmos server.
Definition: sources/includes/nvdsnmos.h:94
NVDSNMOS_LOG_SEVERE
@ NVDSNMOS_LOG_SEVERE
Errors which are unlikely to be recoverable without restarting the server.
Definition: sources/includes/nvdsnmos.h:142
_NvDsNmosNodeConfig::num_host_addresses
unsigned int num_host_addresses
Holds the number of host_addresses.
Definition: sources/includes/nvdsnmos.h:184
_NvDsNmosReceiverConfig::sdp
const char * sdp
Holds the Session Description Protocol data used to configure the receiver.
Definition: sources/includes/nvdsnmos.h:259
_NvDsNmosNodeConfig::seed
const char * seed
Holds a string used to ensure repeatable UUID generation.
Definition: sources/includes/nvdsnmos.h:194
_NvDsNmosAssetConfig::functions
const char ** functions
Holds the function or functions, e.g.
Definition: sources/includes/nvdsnmos.h:238
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.
_NvDsNmosNodeConfig::senders
NvDsNmosSenderConfig * senders
Holds configuration settings for the senders.
Definition: sources/includes/nvdsnmos.h:203
_NvDsNmosAssetConfig
Defines asset distinguishing information for BCP-002-02 tags in an NvDsNmosNodeServer.
Definition: sources/includes/nvdsnmos.h:227
_NvDsNmosNodeConfig::log_categories
const char ** log_categories
Holds topics for which to make logging callbacks.
Definition: sources/includes/nvdsnmos.h:218
NVDSNMOS_LOG_ERROR
@ NVDSNMOS_LOG_ERROR
More serious recoverable errors such as rejected requests.
Definition: sources/includes/nvdsnmos.h:140
_NvDsNmosNodeConfig
Defines configuration settings used to create an NvDsNmosNodeServer.
Definition: sources/includes/nvdsnmos.h:172
NvDsNmosAssetConfig
struct _NvDsNmosAssetConfig NvDsNmosAssetConfig
Defines asset distinguishing information for BCP-002-02 tags in an NvDsNmosNodeServer.
Definition: sources/includes/nvdsnmos.h:164
_NvDsNmosReceiverConfig
Defines configuration settings used to create receivers in an NvDsNmosNodeServer.
Definition: sources/includes/nvdsnmos.h:247
NvDsNmosReceiverConfig
struct _NvDsNmosReceiverConfig NvDsNmosReceiverConfig
Defines configuration settings used to create receivers in an NvDsNmosNodeServer.
Definition: sources/includes/nvdsnmos.h:165
_NvDsNmosAssetConfig::manufacturer
const char * manufacturer
Holds the manufacturer, e.g.
Definition: sources/includes/nvdsnmos.h:230
_NvDsNmosNodeConfig::log_callback
nmos_logging_callback log_callback
Holds the callback for handling log messages.
Definition: sources/includes/nvdsnmos.h:212
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.
NVDSNMOS_LOG_INFO
@ NVDSNMOS_LOG_INFO
Higher level information about expected API events.
Definition: sources/includes/nvdsnmos.h:136
_NvDsNmosAssetConfig::product
const char * product
Holds the product name, e.g.
Definition: sources/includes/nvdsnmos.h:232
_NvDsNmosSenderConfig
Defines configuration settings used to create senders in an NvDsNmosNodeServer.
Definition: sources/includes/nvdsnmos.h:266
_NvDsNmosNodeConfig::asset_tags
NvDsNmosAssetConfig * asset_tags
Holds BCP-002-02 Asset Distinguishing Information.
Definition: sources/includes/nvdsnmos.h:190
_NvDsNmosNodeServer::user_data
void * user_data
Holds a pointer to user data, not used by the NvDsNmos library.
Definition: sources/includes/nvdsnmos.h:294
_NvDsNmosAssetConfig::instance_id
const char * instance_id
Holds the instance identifier, e.g.
Definition: sources/includes/nvdsnmos.h:235
NVDSNMOS_API
#define NVDSNMOS_API
Definition: sources/includes/nvdsnmos.h:82
NVDSNMOS_LOG_WARNING
@ NVDSNMOS_LOG_WARNING
Minor problems that could be recovered automatically by the library.
Definition: sources/includes/nvdsnmos.h:138
_NvDsNmosNodeServer::impl
void * impl
Holds an opaque pointer used by the NvDsNmos library.
Definition: sources/includes/nvdsnmos.h:298
_NvDsNmosNodeConfig::host_name
const char * host_name
Holds the fully-qualified host name, e.g.
Definition: sources/includes/nvdsnmos.h:177
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.
_NvDsNmosNodeConfig::host_addresses
const char ** host_addresses
Holds the host IP addresses, e.g.
Definition: sources/includes/nvdsnmos.h:182
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.
_NvDsNmosNodeConfig::http_port
unsigned int http_port
Holds the port number for the HTTP APIs, e.g.
Definition: sources/includes/nvdsnmos.h:187
NVDSNMOS_LOG_VERBOSE
@ NVDSNMOS_LOG_VERBOSE
Chatty messages such as detailed API request/response tracking.
Definition: sources/includes/nvdsnmos.h:134
_NvDsNmosNodeConfig::num_receivers
unsigned int num_receivers
Holds the number of receivers.
Definition: sources/includes/nvdsnmos.h:200
_NvDsNmosSenderConfig::sdp
const char * sdp
Holds the Session Description Protocol data used to configure the sender.
Definition: sources/includes/nvdsnmos.h:279
NVDSNMOS_LOG_DEVEL
@ NVDSNMOS_LOG_DEVEL
Low level debugging information.
Definition: sources/includes/nvdsnmos.h:132
_NvDsNmosNodeConfig::num_senders
unsigned int num_senders
Holds the number of senders.
Definition: sources/includes/nvdsnmos.h:205
NvDsNmosSenderConfig
struct _NvDsNmosSenderConfig NvDsNmosSenderConfig
Defines configuration settings used to create senders in an NvDsNmosNodeServer.
Definition: sources/includes/nvdsnmos.h:166
_NvDsNmosAssetConfig::num_functions
unsigned int num_functions
Holds the number of functions.
Definition: sources/includes/nvdsnmos.h:240
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.