NvNmos
Loading...
Searching...
No Matches
nvnmos.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: Copyright (c) 2022-2024 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
59#ifndef NVNMOS_H
60#define NVNMOS_H
61
62#if defined(NVNMOS_EXPORTS)
63
64#if defined(_WIN32) || defined(__CYGWIN__)
65#define NVNMOS_API __declspec(dllexport)
66#elif defined(__GNUC__) && (__GNUC__ >= 4)
67#define NVNMOS_API __attribute__ ((visibility("default")))
68#else
69#define NVNMOS_API
70#endif
71
72#elif defined(NVNMOS_STATIC)
73
74#define NVNMOS_API
75
76#else
77
78#if defined(_WIN32) || defined(__CYGWIN__)
79#define NVNMOS_API __declspec(dllimport)
80#elif defined(__GNUC__) && (__GNUC__ >= 4)
81#define NVNMOS_API
82#else
83#define NVNMOS_API
84#endif
85
86#endif
87
88#include <stdbool.h>
89
90#ifdef __cplusplus
91extern "C"
92{
93#endif
94
96
123 NvNmosNodeServer *server,
124 const char *id,
125 const char *sdp);
126
131enum {
147
159typedef void (* nmos_logging_callback)(
160 NvNmosNodeServer *server,
161 const char *categories,
162 int level,
163 const char *message);
164
169
235
240typedef struct _NvNmosAssetConfig
241{
243 const char* manufacturer;
245 const char* product;
248 const char* instance_id;
251 const char** functions;
253 unsigned int num_functions;
255
261{
272 const char *sdp;
274
280{
292 const char *sdp;
294
300{
303 const char* domain;
304
312 unsigned int registration_port;
317
321 const char* system_address;
325 unsigned int system_port;
329 const char* system_version;
331
337typedef struct _NvNmosNodeServer
338{
348 void *impl;
350
361NVNMOS_API
363 const NvNmosNodeConfig *config,
364 NvNmosNodeServer *server);
365
375NVNMOS_API
377 NvNmosNodeServer *server);
378
389NVNMOS_API
391 NvNmosNodeServer *server,
392 const NvNmosReceiverConfig* config);
393
404NVNMOS_API
406 NvNmosNodeServer *server,
407 const char* id);
408
419NVNMOS_API
421 NvNmosNodeServer *server,
422 const NvNmosSenderConfig* config);
423
434NVNMOS_API
436 NvNmosNodeServer *server,
437 const char* id);
438
465NVNMOS_API
467 NvNmosNodeServer *server,
468 const char *id,
469 const char *sdp);
470
471#ifdef __cplusplus
472}
473#endif
474
475#endif
476
struct _NvNmosNetworkServicesConfig NvNmosNetworkServicesConfig
Definition nvnmos.h:168
NVNMOS_API bool remove_nmos_sender_from_node_server(NvNmosNodeServer *server, const char *id)
bool(* nmos_connection_rtp_activation_callback)(NvNmosNodeServer *server, const char *id, const char *sdp)
Definition nvnmos.h:122
NVNMOS_API bool add_nmos_sender_to_node_server(NvNmosNodeServer *server, const NvNmosSenderConfig *config)
NVNMOS_API bool destroy_nmos_node_server(NvNmosNodeServer *server)
void(* nmos_logging_callback)(NvNmosNodeServer *server, const char *categories, int level, const char *message)
Definition nvnmos.h:159
struct _NvNmosNodeServer NvNmosNodeServer
Definition nvnmos.h:95
NVNMOS_API bool create_nmos_node_server(const NvNmosNodeConfig *config, NvNmosNodeServer *server)
struct _NvNmosNodeConfig NvNmosNodeConfig
struct _NvNmosReceiverConfig NvNmosReceiverConfig
Definition nvnmos.h:166
NVNMOS_API bool nmos_connection_rtp_activate(NvNmosNodeServer *server, const char *id, const char *sdp)
NVNMOS_API bool add_nmos_receiver_to_node_server(NvNmosNodeServer *server, const NvNmosReceiverConfig *config)
NVNMOS_API bool remove_nmos_receiver_from_node_server(NvNmosNodeServer *server, const char *id)
struct _NvNmosAssetConfig NvNmosAssetConfig
Definition nvnmos.h:165
struct _NvNmosSenderConfig NvNmosSenderConfig
Definition nvnmos.h:167
@ NVNMOS_LOG_SEVERE
Definition nvnmos.h:143
@ NVNMOS_LOG_DEVEL
Definition nvnmos.h:133
@ NVNMOS_LOG_WARNING
Definition nvnmos.h:139
@ NVNMOS_LOG_ERROR
Definition nvnmos.h:141
@ NVNMOS_LOG_VERBOSE
Definition nvnmos.h:135
@ NVNMOS_LOG_FATAL
Definition nvnmos.h:145
@ NVNMOS_LOG_INFO
Definition nvnmos.h:137
Definition nvnmos.h:241
const char * manufacturer
Definition nvnmos.h:243
const char * instance_id
Definition nvnmos.h:248
const char * product
Definition nvnmos.h:245
unsigned int num_functions
Definition nvnmos.h:253
const char ** functions
Definition nvnmos.h:251
Definition nvnmos.h:300
const char * system_address
Definition nvnmos.h:321
unsigned int registration_port
Definition nvnmos.h:312
const char * domain
Definition nvnmos.h:303
const char * registration_version
Definition nvnmos.h:316
unsigned int system_port
Definition nvnmos.h:325
const char * registration_address
Definition nvnmos.h:308
const char * system_version
Definition nvnmos.h:329
Definition nvnmos.h:175
NvNmosSenderConfig * senders
Definition nvnmos.h:212
int log_level
Definition nvnmos.h:224
unsigned int num_host_addresses
Definition nvnmos.h:186
unsigned int http_port
Definition nvnmos.h:189
const char * seed
Definition nvnmos.h:203
const char ** host_addresses
Definition nvnmos.h:184
NvNmosReceiverConfig * receivers
Definition nvnmos.h:207
const char * description
Definition nvnmos.h:196
const char * label
Definition nvnmos.h:193
unsigned int num_senders
Definition nvnmos.h:214
const char * host_name
Definition nvnmos.h:179
nmos_logging_callback log_callback
Definition nvnmos.h:221
unsigned int num_log_categories
Definition nvnmos.h:229
unsigned int num_receivers
Definition nvnmos.h:209
const char ** log_categories
Definition nvnmos.h:227
NvNmosAssetConfig * asset_tags
Definition nvnmos.h:199
nmos_connection_rtp_activation_callback rtp_connection_activated
Definition nvnmos.h:218
NvNmosNetworkServicesConfig * network_services
Definition nvnmos.h:233
Definition nvnmos.h:338
void * impl
Definition nvnmos.h:348
void * user_data
Definition nvnmos.h:344
Definition nvnmos.h:261
const char * sdp
Definition nvnmos.h:272
Definition nvnmos.h:280
const char * sdp
Definition nvnmos.h:292