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
65#ifndef NVNMOS_H
66#define NVNMOS_H
67
74#if defined(NVNMOS_EXPORTS)
75
76#if defined(_WIN32) || defined(__CYGWIN__)
77#define NVNMOS_API __declspec(dllexport)
78#elif defined(__GNUC__) && (__GNUC__ >= 4)
79#define NVNMOS_API __attribute__ ((visibility("default")))
80#else
81#define NVNMOS_API
82#endif
83
84#elif defined(NVNMOS_STATIC)
85
86#define NVNMOS_API
87
88#else
89
90#if defined(_WIN32) || defined(__CYGWIN__)
91#define NVNMOS_API __declspec(dllimport)
92#elif defined(__GNUC__) && (__GNUC__ >= 4)
93#define NVNMOS_API
94#else
95#define NVNMOS_API
96#endif
97
98#endif
99
100#include <stdbool.h>
101#include <stddef.h>
102
103#ifdef __cplusplus
104extern "C"
105{
106#endif
107
114#define NVNMOS_ID_LEN 37
115
117
135
151
199 NvNmosNodeServer *server,
200 NvNmosSide side,
201 const char *name,
202 const char *transport_file);
203
205
227 NvNmosNodeServer *server,
228 const char *name,
229 const char *output_id,
230 const NvNmosChannelMappingActiveMapEntry *active_map,
231 size_t num_active_map);
232
237enum {
253
265typedef void (* nmos_logging_callback)(
266 NvNmosNodeServer *server,
267 const char *categories,
268 int level,
269 const char *message);
270
275
352
357typedef struct _NvNmosAssetConfig
358{
360 const char* manufacturer;
362 const char* product;
365 const char* instance_id;
368 const char** functions;
370 unsigned int num_functions;
372
428
480
486{
489 const char* domain;
490
498 unsigned int registration_port;
503
507 const char* system_address;
511 unsigned int system_port;
515 const char* system_version;
517
523typedef struct _NvNmosNodeServer
524{
534 void *impl;
536
549 const NvNmosNodeConfig *config,
550 NvNmosNodeServer *server);
551
563 NvNmosNodeServer *server);
564
577 NvNmosNodeServer *server,
578 const NvNmosReceiverConfig* config);
579
593 NvNmosNodeServer *server,
594 const char* receiver_name);
595
608 NvNmosNodeServer *server,
609 const NvNmosSenderConfig* config);
610
624 NvNmosNodeServer *server,
625 const char* sender_name);
626
663 NvNmosNodeServer *server,
664 NvNmosSide side,
665 const char *name,
666 const char *transport_file);
667
678
703
708{
710 const char *id;
712 const char *name;
714 const char *description;
716 const char **channel_labels;
720 const char *sender_name;
722 const char **routable_inputs;
726
739
754
771 NvNmosNodeServer *server,
772 const char *name,
773 const NvNmosChannelMappingConfig *mapping);
774
783 NvNmosNodeServer *server,
784 const char *name);
785
804 NvNmosNodeServer *server,
805 const char *name,
806 const char *output_id,
807 const NvNmosChannelMappingActiveMapEntry *active_map,
808 size_t num_active_map);
809
830 const char *seed,
831 char *out,
832 size_t out_len);
833
848 const char *seed,
849 char *out,
850 size_t out_len);
851
870 const char *seed,
871 const char *sender_name,
872 char *out,
873 size_t out_len);
874
893 const char *seed,
894 const char *receiver_name,
895 char *out,
896 size_t out_len);
897
919 const char *seed,
920 const char *sender_name,
921 char *out,
922 size_t out_len);
923
946 const char *seed,
947 const char *sender_name,
948 char *out,
949 size_t out_len);
950
963 const NvNmosNodeServer *server,
964 char *out,
965 size_t out_len);
966
980 const NvNmosNodeServer *server,
981 char *out,
982 size_t out_len);
983
1002 const NvNmosNodeServer *server,
1003 const char *sender_name,
1004 char *out,
1005 size_t out_len);
1006
1025 const NvNmosNodeServer *server,
1026 const char *receiver_name,
1027 char *out,
1028 size_t out_len);
1029
1052 const NvNmosNodeServer *server,
1053 const char *sender_name,
1054 char *out,
1055 size_t out_len);
1056
1080 const NvNmosNodeServer *server,
1081 const char *sender_name,
1082 char *out,
1083 size_t out_len);
1084
1085#ifdef __cplusplus
1086}
1087#endif
1088
1089#endif
1090
enum _NvNmosChannelMappingParentType NvNmosChannelMappingParentType
NVNMOS_API bool nmos_make_device_id(const char *seed, char *out, size_t out_len)
struct _NvNmosNetworkServicesConfig NvNmosNetworkServicesConfig
Definition nvnmos.h:274
NVNMOS_API bool nmos_get_node_id(const NvNmosNodeServer *server, char *out, size_t out_len)
NVNMOS_API bool nmos_get_source_id(const NvNmosNodeServer *server, const char *sender_name, char *out, size_t out_len)
NVNMOS_API bool nmos_connection_activate(NvNmosNodeServer *server, NvNmosSide side, const char *name, const char *transport_file)
NVNMOS_API bool nmos_make_node_id(const char *seed, char *out, size_t out_len)
NVNMOS_API bool remove_nmos_receiver_from_node_server(NvNmosNodeServer *server, const char *receiver_name)
NVNMOS_API bool nmos_make_sender_id(const char *seed, const char *sender_name, char *out, size_t out_len)
NVNMOS_API bool nmos_make_receiver_id(const char *seed, const char *receiver_name, char *out, size_t out_len)
NVNMOS_API bool add_nmos_sender_to_node_server(NvNmosNodeServer *server, const NvNmosSenderConfig *config)
NVNMOS_API bool destroy_nmos_node_server(NvNmosNodeServer *server)
bool(* nmos_channelmapping_activation_callback)(NvNmosNodeServer *server, const char *name, const char *output_id, const NvNmosChannelMappingActiveMapEntry *active_map, size_t num_active_map)
Definition nvnmos.h:226
NVNMOS_API bool remove_nmos_sender_from_node_server(NvNmosNodeServer *server, const char *sender_name)
void(* nmos_logging_callback)(NvNmosNodeServer *server, const char *categories, int level, const char *message)
Definition nvnmos.h:265
bool(* nmos_connection_activation_callback)(NvNmosNodeServer *server, NvNmosSide side, const char *name, const char *transport_file)
Definition nvnmos.h:198
struct _NvNmosNodeServer NvNmosNodeServer
Definition nvnmos.h:116
NVNMOS_API bool nmos_get_flow_id(const NvNmosNodeServer *server, const char *sender_name, char *out, size_t out_len)
NVNMOS_API bool nmos_make_source_id(const char *seed, const char *sender_name, char *out, size_t out_len)
NVNMOS_API bool nmos_get_device_id(const NvNmosNodeServer *server, char *out, size_t out_len)
NVNMOS_API bool create_nmos_node_server(const NvNmosNodeConfig *config, NvNmosNodeServer *server)
struct _NvNmosNodeConfig NvNmosNodeConfig
#define NVNMOS_API
Definition nvnmos.h:95
struct _NvNmosChannelMappingOutput NvNmosChannelMappingOutput
struct _NvNmosReceiverConfig NvNmosReceiverConfig
Definition nvnmos.h:272
NVNMOS_API bool nmos_get_sender_id(const NvNmosNodeServer *server, const char *sender_name, char *out, size_t out_len)
NVNMOS_API bool nmos_channelmapping_activate(NvNmosNodeServer *server, const char *name, const char *output_id, const NvNmosChannelMappingActiveMapEntry *active_map, size_t num_active_map)
NVNMOS_API bool add_nmos_receiver_to_node_server(NvNmosNodeServer *server, const NvNmosReceiverConfig *config)
struct _NvNmosChannelMappingConfig NvNmosChannelMappingConfig
enum _NvNmosTransport NvNmosTransport
_NvNmosTransport
Definition nvnmos.h:125
struct _NvNmosAssetConfig NvNmosAssetConfig
Definition nvnmos.h:271
struct _NvNmosSenderConfig NvNmosSenderConfig
Definition nvnmos.h:273
_NvNmosSide
Definition nvnmos.h:145
struct _NvNmosChannelMappingInput NvNmosChannelMappingInput
NVNMOS_API bool add_nmos_channelmapping_to_node_server(NvNmosNodeServer *server, const char *name, const NvNmosChannelMappingConfig *mapping)
NVNMOS_API bool nmos_get_receiver_id(const NvNmosNodeServer *server, const char *receiver_name, char *out, size_t out_len)
enum _NvNmosSide NvNmosSide
_NvNmosChannelMappingParentType
Definition nvnmos.h:672
struct _NvNmosChannelMappingActiveMapEntry NvNmosChannelMappingActiveMapEntry
Definition nvnmos.h:204
NVNMOS_API bool nmos_make_flow_id(const char *seed, const char *sender_name, char *out, size_t out_len)
NVNMOS_API bool remove_nmos_channelmapping_from_node_server(NvNmosNodeServer *server, const char *name)
@ NVNMOS_LOG_SEVERE
Definition nvnmos.h:249
@ NVNMOS_LOG_DEVEL
Definition nvnmos.h:239
@ NVNMOS_LOG_WARNING
Definition nvnmos.h:245
@ NVNMOS_LOG_ERROR
Definition nvnmos.h:247
@ NVNMOS_LOG_VERBOSE
Definition nvnmos.h:241
@ NVNMOS_LOG_FATAL
Definition nvnmos.h:251
@ NVNMOS_LOG_INFO
Definition nvnmos.h:243
@ NVNMOS_TRANSPORT_RTP
Definition nvnmos.h:129
@ NVNMOS_TRANSPORT_MXL
Definition nvnmos.h:133
@ NVNMOS_SIDE_RECEIVER
Definition nvnmos.h:149
@ NVNMOS_SIDE_SENDER
Definition nvnmos.h:147
@ NVNMOS_CHANNELMAPPING_PARENT_TYPE_RECEIVER
Definition nvnmos.h:674
@ NVNMOS_CHANNELMAPPING_PARENT_TYPE_SOURCE
Definition nvnmos.h:676
Definition nvnmos.h:358
const char * manufacturer
Definition nvnmos.h:360
const char * instance_id
Definition nvnmos.h:365
const char * product
Definition nvnmos.h:362
unsigned int num_functions
Definition nvnmos.h:370
const char ** functions
Definition nvnmos.h:368
unsigned int input_channel
Definition nvnmos.h:737
const char * input_id
Definition nvnmos.h:735
Definition nvnmos.h:744
const NvNmosChannelMappingOutput * outputs
Definition nvnmos.h:750
const NvNmosChannelMappingInput * inputs
Definition nvnmos.h:746
size_t num_outputs
Definition nvnmos.h:752
size_t num_inputs
Definition nvnmos.h:748
Definition nvnmos.h:683
size_t num_channel_labels
Definition nvnmos.h:693
const char * parent_name
Definition nvnmos.h:695
unsigned int block_size
Definition nvnmos.h:701
const char * id
Definition nvnmos.h:685
const char * description
Definition nvnmos.h:689
NvNmosChannelMappingParentType parent_type
Definition nvnmos.h:697
bool reordering
Definition nvnmos.h:699
const char ** channel_labels
Definition nvnmos.h:691
const char * name
Definition nvnmos.h:687
Definition nvnmos.h:708
const char * name
Definition nvnmos.h:712
const char * sender_name
Definition nvnmos.h:720
const char ** routable_inputs
Definition nvnmos.h:722
size_t num_channel_labels
Definition nvnmos.h:718
size_t num_routable_inputs
Definition nvnmos.h:724
const char * description
Definition nvnmos.h:714
const char ** channel_labels
Definition nvnmos.h:716
const char * id
Definition nvnmos.h:710
Definition nvnmos.h:486
const char * system_address
Definition nvnmos.h:507
unsigned int registration_port
Definition nvnmos.h:498
const char * domain
Definition nvnmos.h:489
const char * registration_version
Definition nvnmos.h:502
unsigned int system_port
Definition nvnmos.h:511
const char * registration_address
Definition nvnmos.h:494
const char * system_version
Definition nvnmos.h:515
Definition nvnmos.h:281
NvNmosSenderConfig * senders
Definition nvnmos.h:320
nmos_connection_activation_callback connection_activated
Definition nvnmos.h:326
int log_level
Definition nvnmos.h:336
unsigned int num_host_addresses
Definition nvnmos.h:292
unsigned int http_port
Definition nvnmos.h:297
const char * seed
Definition nvnmos.h:311
const char ** host_addresses
Definition nvnmos.h:290
NvNmosReceiverConfig * receivers
Definition nvnmos.h:315
const char * description
Definition nvnmos.h:304
const char * label
Definition nvnmos.h:301
unsigned int num_senders
Definition nvnmos.h:322
const char * host_name
Definition nvnmos.h:285
nmos_logging_callback log_callback
Definition nvnmos.h:333
unsigned int num_log_categories
Definition nvnmos.h:346
unsigned int num_receivers
Definition nvnmos.h:317
nmos_channelmapping_activation_callback channelmapping_activated
Definition nvnmos.h:330
const char ** log_categories
Definition nvnmos.h:344
NvNmosAssetConfig * asset_tags
Definition nvnmos.h:307
NvNmosNetworkServicesConfig * network_services
Definition nvnmos.h:350
Definition nvnmos.h:524
void * impl
Definition nvnmos.h:534
void * user_data
Definition nvnmos.h:530
Definition nvnmos.h:378
NvNmosTransport transport
Definition nvnmos.h:382
const char * transport_file
Definition nvnmos.h:426
Definition nvnmos.h:434
const char * transport_file
Definition nvnmos.h:478
NvNmosTransport transport
Definition nvnmos.h:438