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
350
355typedef struct _NvNmosAssetConfig
356{
358 const char* manufacturer;
360 const char* product;
363 const char* instance_id;
366 const char** functions;
368 unsigned int num_functions;
370
426
478
484{
487 const char* domain;
488
496 unsigned int registration_port;
501
505 const char* system_address;
509 unsigned int system_port;
513 const char* system_version;
515
521typedef struct _NvNmosNodeServer
522{
532 void *impl;
534
547 const NvNmosNodeConfig *config,
548 NvNmosNodeServer *server);
549
561 NvNmosNodeServer *server);
562
575 NvNmosNodeServer *server,
576 const NvNmosReceiverConfig* config);
577
591 NvNmosNodeServer *server,
592 const char* receiver_name);
593
606 NvNmosNodeServer *server,
607 const NvNmosSenderConfig* config);
608
622 NvNmosNodeServer *server,
623 const char* sender_name);
624
661 NvNmosNodeServer *server,
662 NvNmosSide side,
663 const char *name,
664 const char *transport_file);
665
676
701
706{
708 const char *id;
710 const char *name;
712 const char *description;
714 const char **channel_labels;
718 const char *sender_name;
720 const char **routable_inputs;
724
737
752
769 NvNmosNodeServer *server,
770 const char *name,
771 const NvNmosChannelMappingConfig *mapping);
772
781 NvNmosNodeServer *server,
782 const char *name);
783
802 NvNmosNodeServer *server,
803 const char *name,
804 const char *output_id,
805 const NvNmosChannelMappingActiveMapEntry *active_map,
806 size_t num_active_map);
807
828 const char *seed,
829 char *out,
830 size_t out_len);
831
846 const char *seed,
847 char *out,
848 size_t out_len);
849
868 const char *seed,
869 const char *sender_name,
870 char *out,
871 size_t out_len);
872
891 const char *seed,
892 const char *receiver_name,
893 char *out,
894 size_t out_len);
895
917 const char *seed,
918 const char *sender_name,
919 char *out,
920 size_t out_len);
921
944 const char *seed,
945 const char *sender_name,
946 char *out,
947 size_t out_len);
948
961 const NvNmosNodeServer *server,
962 char *out,
963 size_t out_len);
964
978 const NvNmosNodeServer *server,
979 char *out,
980 size_t out_len);
981
1000 const NvNmosNodeServer *server,
1001 const char *sender_name,
1002 char *out,
1003 size_t out_len);
1004
1023 const NvNmosNodeServer *server,
1024 const char *receiver_name,
1025 char *out,
1026 size_t out_len);
1027
1050 const NvNmosNodeServer *server,
1051 const char *sender_name,
1052 char *out,
1053 size_t out_len);
1054
1078 const NvNmosNodeServer *server,
1079 const char *sender_name,
1080 char *out,
1081 size_t out_len);
1082
1083#ifdef __cplusplus
1084}
1085#endif
1086
1087#endif
1088
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:670
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:672
@ NVNMOS_CHANNELMAPPING_PARENT_TYPE_SOURCE
Definition nvnmos.h:674
Definition nvnmos.h:356
const char * manufacturer
Definition nvnmos.h:358
const char * instance_id
Definition nvnmos.h:363
const char * product
Definition nvnmos.h:360
unsigned int num_functions
Definition nvnmos.h:368
const char ** functions
Definition nvnmos.h:366
unsigned int input_channel
Definition nvnmos.h:735
const char * input_id
Definition nvnmos.h:733
Definition nvnmos.h:742
const NvNmosChannelMappingOutput * outputs
Definition nvnmos.h:748
const NvNmosChannelMappingInput * inputs
Definition nvnmos.h:744
size_t num_outputs
Definition nvnmos.h:750
size_t num_inputs
Definition nvnmos.h:746
Definition nvnmos.h:681
size_t num_channel_labels
Definition nvnmos.h:691
const char * parent_name
Definition nvnmos.h:693
unsigned int block_size
Definition nvnmos.h:699
const char * id
Definition nvnmos.h:683
const char * description
Definition nvnmos.h:687
NvNmosChannelMappingParentType parent_type
Definition nvnmos.h:695
bool reordering
Definition nvnmos.h:697
const char ** channel_labels
Definition nvnmos.h:689
const char * name
Definition nvnmos.h:685
Definition nvnmos.h:706
const char * name
Definition nvnmos.h:710
const char * sender_name
Definition nvnmos.h:718
const char ** routable_inputs
Definition nvnmos.h:720
size_t num_channel_labels
Definition nvnmos.h:716
size_t num_routable_inputs
Definition nvnmos.h:722
const char * description
Definition nvnmos.h:712
const char ** channel_labels
Definition nvnmos.h:714
const char * id
Definition nvnmos.h:708
Definition nvnmos.h:484
const char * system_address
Definition nvnmos.h:505
unsigned int registration_port
Definition nvnmos.h:496
const char * domain
Definition nvnmos.h:487
const char * registration_version
Definition nvnmos.h:500
unsigned int system_port
Definition nvnmos.h:509
const char * registration_address
Definition nvnmos.h:492
const char * system_version
Definition nvnmos.h:513
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:344
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:342
NvNmosAssetConfig * asset_tags
Definition nvnmos.h:305
NvNmosNetworkServicesConfig * network_services
Definition nvnmos.h:348
Definition nvnmos.h:522
void * impl
Definition nvnmos.h:532
void * user_data
Definition nvnmos.h:528
Definition nvnmos.h:376
NvNmosTransport transport
Definition nvnmos.h:380
const char * transport_file
Definition nvnmos.h:424
Definition nvnmos.h:432
const char * transport_file
Definition nvnmos.h:476
NvNmosTransport transport
Definition nvnmos.h:436