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
345
350typedef struct _NvNmosAssetConfig
351{
353 const char* manufacturer;
355 const char* product;
358 const char* instance_id;
361 const char** functions;
363 unsigned int num_functions;
365
421
473
479{
482 const char* domain;
483
491 unsigned int registration_port;
496
500 const char* system_address;
504 unsigned int system_port;
508 const char* system_version;
510
516typedef struct _NvNmosNodeServer
517{
527 void *impl;
529
542 const NvNmosNodeConfig *config,
543 NvNmosNodeServer *server);
544
556 NvNmosNodeServer *server);
557
570 NvNmosNodeServer *server,
571 const NvNmosReceiverConfig* config);
572
586 NvNmosNodeServer *server,
587 const char* receiver_name);
588
601 NvNmosNodeServer *server,
602 const NvNmosSenderConfig* config);
603
617 NvNmosNodeServer *server,
618 const char* sender_name);
619
656 NvNmosNodeServer *server,
657 NvNmosSide side,
658 const char *name,
659 const char *transport_file);
660
671
696
701{
703 const char *id;
705 const char *name;
707 const char *description;
709 const char **channel_labels;
713 const char *sender_name;
715 const char **routable_inputs;
719
732
747
764 NvNmosNodeServer *server,
765 const char *name,
766 const NvNmosChannelMappingConfig *mapping);
767
776 NvNmosNodeServer *server,
777 const char *name);
778
797 NvNmosNodeServer *server,
798 const char *name,
799 const char *output_id,
800 const NvNmosChannelMappingActiveMapEntry *active_map,
801 size_t num_active_map);
802
823 const char *seed,
824 char *out,
825 size_t out_len);
826
841 const char *seed,
842 char *out,
843 size_t out_len);
844
863 const char *seed,
864 const char *sender_name,
865 char *out,
866 size_t out_len);
867
886 const char *seed,
887 const char *receiver_name,
888 char *out,
889 size_t out_len);
890
912 const char *seed,
913 const char *sender_name,
914 char *out,
915 size_t out_len);
916
939 const char *seed,
940 const char *sender_name,
941 char *out,
942 size_t out_len);
943
956 const NvNmosNodeServer *server,
957 char *out,
958 size_t out_len);
959
973 const NvNmosNodeServer *server,
974 char *out,
975 size_t out_len);
976
995 const NvNmosNodeServer *server,
996 const char *sender_name,
997 char *out,
998 size_t out_len);
999
1018 const NvNmosNodeServer *server,
1019 const char *receiver_name,
1020 char *out,
1021 size_t out_len);
1022
1045 const NvNmosNodeServer *server,
1046 const char *sender_name,
1047 char *out,
1048 size_t out_len);
1049
1073 const NvNmosNodeServer *server,
1074 const char *sender_name,
1075 char *out,
1076 size_t out_len);
1077
1078#ifdef __cplusplus
1079}
1080#endif
1081
1082#endif
1083
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:665
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:667
@ NVNMOS_CHANNELMAPPING_PARENT_TYPE_SOURCE
Definition nvnmos.h:669
Definition nvnmos.h:351
const char * manufacturer
Definition nvnmos.h:353
const char * instance_id
Definition nvnmos.h:358
const char * product
Definition nvnmos.h:355
unsigned int num_functions
Definition nvnmos.h:363
const char ** functions
Definition nvnmos.h:361
unsigned int input_channel
Definition nvnmos.h:730
const char * input_id
Definition nvnmos.h:728
Definition nvnmos.h:737
const NvNmosChannelMappingOutput * outputs
Definition nvnmos.h:743
const NvNmosChannelMappingInput * inputs
Definition nvnmos.h:739
size_t num_outputs
Definition nvnmos.h:745
size_t num_inputs
Definition nvnmos.h:741
Definition nvnmos.h:676
size_t num_channel_labels
Definition nvnmos.h:686
const char * parent_name
Definition nvnmos.h:688
unsigned int block_size
Definition nvnmos.h:694
const char * id
Definition nvnmos.h:678
const char * description
Definition nvnmos.h:682
NvNmosChannelMappingParentType parent_type
Definition nvnmos.h:690
bool reordering
Definition nvnmos.h:692
const char ** channel_labels
Definition nvnmos.h:684
const char * name
Definition nvnmos.h:680
Definition nvnmos.h:701
const char * name
Definition nvnmos.h:705
const char * sender_name
Definition nvnmos.h:713
const char ** routable_inputs
Definition nvnmos.h:715
size_t num_channel_labels
Definition nvnmos.h:711
size_t num_routable_inputs
Definition nvnmos.h:717
const char * description
Definition nvnmos.h:707
const char ** channel_labels
Definition nvnmos.h:709
const char * id
Definition nvnmos.h:703
Definition nvnmos.h:479
const char * system_address
Definition nvnmos.h:500
unsigned int registration_port
Definition nvnmos.h:491
const char * domain
Definition nvnmos.h:482
const char * registration_version
Definition nvnmos.h:495
unsigned int system_port
Definition nvnmos.h:504
const char * registration_address
Definition nvnmos.h:487
const char * system_version
Definition nvnmos.h:508
Definition nvnmos.h:281
NvNmosSenderConfig * senders
Definition nvnmos.h:318
nmos_connection_activation_callback connection_activated
Definition nvnmos.h:324
int log_level
Definition nvnmos.h:334
unsigned int num_host_addresses
Definition nvnmos.h:292
unsigned int http_port
Definition nvnmos.h:295
const char * seed
Definition nvnmos.h:309
const char ** host_addresses
Definition nvnmos.h:290
NvNmosReceiverConfig * receivers
Definition nvnmos.h:313
const char * description
Definition nvnmos.h:302
const char * label
Definition nvnmos.h:299
unsigned int num_senders
Definition nvnmos.h:320
const char * host_name
Definition nvnmos.h:285
nmos_logging_callback log_callback
Definition nvnmos.h:331
unsigned int num_log_categories
Definition nvnmos.h:339
unsigned int num_receivers
Definition nvnmos.h:315
nmos_channelmapping_activation_callback channelmapping_activated
Definition nvnmos.h:328
const char ** log_categories
Definition nvnmos.h:337
NvNmosAssetConfig * asset_tags
Definition nvnmos.h:305
NvNmosNetworkServicesConfig * network_services
Definition nvnmos.h:343
Definition nvnmos.h:517
void * impl
Definition nvnmos.h:527
void * user_data
Definition nvnmos.h:523
Definition nvnmos.h:371
NvNmosTransport transport
Definition nvnmos.h:375
const char * transport_file
Definition nvnmos.h:419
Definition nvnmos.h:427
const char * transport_file
Definition nvnmos.h:471
NvNmosTransport transport
Definition nvnmos.h:431