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
62#ifndef NVNMOS_H
63#define NVNMOS_H
64
71#if defined(NVNMOS_EXPORTS)
72
73#if defined(_WIN32) || defined(__CYGWIN__)
74#define NVNMOS_API __declspec(dllexport)
75#elif defined(__GNUC__) && (__GNUC__ >= 4)
76#define NVNMOS_API __attribute__ ((visibility("default")))
77#else
78#define NVNMOS_API
79#endif
80
81#elif defined(NVNMOS_STATIC)
82
83#define NVNMOS_API
84
85#else
86
87#if defined(_WIN32) || defined(__CYGWIN__)
88#define NVNMOS_API __declspec(dllimport)
89#elif defined(__GNUC__) && (__GNUC__ >= 4)
90#define NVNMOS_API
91#else
92#define NVNMOS_API
93#endif
94
95#endif
96
97#include <stdbool.h>
98#include <stddef.h>
99
100#ifdef __cplusplus
101extern "C"
102{
103#endif
104
111#define NVNMOS_ID_LEN 37
112
114
132
148
196 NvNmosNodeServer *server,
197 NvNmosSide side,
198 const char *name,
199 const char *transport_file);
200
202
224 NvNmosNodeServer *server,
225 const char *name,
226 const char *output_id,
227 const NvNmosChannelMappingActiveMapEntry *active_map,
228 size_t num_active_map);
229
234enum {
250
262typedef void (* nmos_logging_callback)(
263 NvNmosNodeServer *server,
264 const char *categories,
265 int level,
266 const char *message);
267
272
342
347typedef struct _NvNmosAssetConfig
348{
350 const char* manufacturer;
352 const char* product;
355 const char* instance_id;
358 const char** functions;
360 unsigned int num_functions;
362
418
470
476{
479 const char* domain;
480
488 unsigned int registration_port;
493
497 const char* system_address;
501 unsigned int system_port;
505 const char* system_version;
507
513typedef struct _NvNmosNodeServer
514{
524 void *impl;
526
539 const NvNmosNodeConfig *config,
540 NvNmosNodeServer *server);
541
553 NvNmosNodeServer *server);
554
567 NvNmosNodeServer *server,
568 const NvNmosReceiverConfig* config);
569
583 NvNmosNodeServer *server,
584 const char* receiver_name);
585
598 NvNmosNodeServer *server,
599 const NvNmosSenderConfig* config);
600
614 NvNmosNodeServer *server,
615 const char* sender_name);
616
653 NvNmosNodeServer *server,
654 NvNmosSide side,
655 const char *name,
656 const char *transport_file);
657
668
693
698{
700 const char *id;
702 const char *name;
704 const char *description;
706 const char **channel_labels;
710 const char *sender_name;
712 const char **routable_inputs;
716
729
744
761 NvNmosNodeServer *server,
762 const char *name,
763 const NvNmosChannelMappingConfig *mapping);
764
773 NvNmosNodeServer *server,
774 const char *name);
775
794 NvNmosNodeServer *server,
795 const char *name,
796 const char *output_id,
797 const NvNmosChannelMappingActiveMapEntry *active_map,
798 size_t num_active_map);
799
820 const char *seed,
821 char *out,
822 size_t out_len);
823
842 const char *seed,
843 const char *sender_name,
844 char *out,
845 size_t out_len);
846
865 const char *seed,
866 const char *receiver_name,
867 char *out,
868 size_t out_len);
869
890 const char *seed,
891 const char *source_name,
892 char *out,
893 size_t out_len);
894
907 const NvNmosNodeServer *server,
908 char *out,
909 size_t out_len);
910
929 const NvNmosNodeServer *server,
930 const char *sender_name,
931 char *out,
932 size_t out_len);
933
952 const NvNmosNodeServer *server,
953 const char *receiver_name,
954 char *out,
955 size_t out_len);
956
979 const NvNmosNodeServer *server,
980 const char *source_name,
981 char *out,
982 size_t out_len);
983
984#ifdef __cplusplus
985}
986#endif
987
988#endif
989
enum _NvNmosChannelMappingParentType NvNmosChannelMappingParentType
struct _NvNmosNetworkServicesConfig NvNmosNetworkServicesConfig
Definition nvnmos.h:271
NVNMOS_API bool nmos_get_node_id(const NvNmosNodeServer *server, 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 nmos_make_source_id(const char *seed, const char *source_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:223
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:262
bool(* nmos_connection_activation_callback)(NvNmosNodeServer *server, NvNmosSide side, const char *name, const char *transport_file)
Definition nvnmos.h:195
struct _NvNmosNodeServer NvNmosNodeServer
Definition nvnmos.h:113
NVNMOS_API bool create_nmos_node_server(const NvNmosNodeConfig *config, NvNmosNodeServer *server)
struct _NvNmosNodeConfig NvNmosNodeConfig
#define NVNMOS_API
Definition nvnmos.h:92
struct _NvNmosChannelMappingOutput NvNmosChannelMappingOutput
struct _NvNmosReceiverConfig NvNmosReceiverConfig
Definition nvnmos.h:269
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:122
struct _NvNmosAssetConfig NvNmosAssetConfig
Definition nvnmos.h:268
struct _NvNmosSenderConfig NvNmosSenderConfig
Definition nvnmos.h:270
_NvNmosSide
Definition nvnmos.h:142
NVNMOS_API bool nmos_get_source_id(const NvNmosNodeServer *server, const char *source_name, char *out, size_t out_len)
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:662
struct _NvNmosChannelMappingActiveMapEntry NvNmosChannelMappingActiveMapEntry
Definition nvnmos.h:201
NVNMOS_API bool remove_nmos_channelmapping_from_node_server(NvNmosNodeServer *server, const char *name)
@ NVNMOS_LOG_SEVERE
Definition nvnmos.h:246
@ NVNMOS_LOG_DEVEL
Definition nvnmos.h:236
@ NVNMOS_LOG_WARNING
Definition nvnmos.h:242
@ NVNMOS_LOG_ERROR
Definition nvnmos.h:244
@ NVNMOS_LOG_VERBOSE
Definition nvnmos.h:238
@ NVNMOS_LOG_FATAL
Definition nvnmos.h:248
@ NVNMOS_LOG_INFO
Definition nvnmos.h:240
@ NVNMOS_TRANSPORT_RTP
Definition nvnmos.h:126
@ NVNMOS_TRANSPORT_MXL
Definition nvnmos.h:130
@ NVNMOS_SIDE_RECEIVER
Definition nvnmos.h:146
@ NVNMOS_SIDE_SENDER
Definition nvnmos.h:144
@ NVNMOS_CHANNELMAPPING_PARENT_TYPE_RECEIVER
Definition nvnmos.h:664
@ NVNMOS_CHANNELMAPPING_PARENT_TYPE_SOURCE
Definition nvnmos.h:666
Definition nvnmos.h:348
const char * manufacturer
Definition nvnmos.h:350
const char * instance_id
Definition nvnmos.h:355
const char * product
Definition nvnmos.h:352
unsigned int num_functions
Definition nvnmos.h:360
const char ** functions
Definition nvnmos.h:358
unsigned int input_channel
Definition nvnmos.h:727
const char * input_id
Definition nvnmos.h:725
Definition nvnmos.h:734
const NvNmosChannelMappingOutput * outputs
Definition nvnmos.h:740
const NvNmosChannelMappingInput * inputs
Definition nvnmos.h:736
size_t num_outputs
Definition nvnmos.h:742
size_t num_inputs
Definition nvnmos.h:738
Definition nvnmos.h:673
size_t num_channel_labels
Definition nvnmos.h:683
const char * parent_name
Definition nvnmos.h:685
unsigned int block_size
Definition nvnmos.h:691
const char * id
Definition nvnmos.h:675
const char * description
Definition nvnmos.h:679
NvNmosChannelMappingParentType parent_type
Definition nvnmos.h:687
bool reordering
Definition nvnmos.h:689
const char ** channel_labels
Definition nvnmos.h:681
const char * name
Definition nvnmos.h:677
Definition nvnmos.h:698
const char * name
Definition nvnmos.h:702
const char * sender_name
Definition nvnmos.h:710
const char ** routable_inputs
Definition nvnmos.h:712
size_t num_channel_labels
Definition nvnmos.h:708
size_t num_routable_inputs
Definition nvnmos.h:714
const char * description
Definition nvnmos.h:704
const char ** channel_labels
Definition nvnmos.h:706
const char * id
Definition nvnmos.h:700
Definition nvnmos.h:476
const char * system_address
Definition nvnmos.h:497
unsigned int registration_port
Definition nvnmos.h:488
const char * domain
Definition nvnmos.h:479
const char * registration_version
Definition nvnmos.h:492
unsigned int system_port
Definition nvnmos.h:501
const char * registration_address
Definition nvnmos.h:484
const char * system_version
Definition nvnmos.h:505
Definition nvnmos.h:278
NvNmosSenderConfig * senders
Definition nvnmos.h:315
nmos_connection_activation_callback connection_activated
Definition nvnmos.h:321
int log_level
Definition nvnmos.h:331
unsigned int num_host_addresses
Definition nvnmos.h:289
unsigned int http_port
Definition nvnmos.h:292
const char * seed
Definition nvnmos.h:306
const char ** host_addresses
Definition nvnmos.h:287
NvNmosReceiverConfig * receivers
Definition nvnmos.h:310
const char * description
Definition nvnmos.h:299
const char * label
Definition nvnmos.h:296
unsigned int num_senders
Definition nvnmos.h:317
const char * host_name
Definition nvnmos.h:282
nmos_logging_callback log_callback
Definition nvnmos.h:328
unsigned int num_log_categories
Definition nvnmos.h:336
unsigned int num_receivers
Definition nvnmos.h:312
nmos_channelmapping_activation_callback channelmapping_activated
Definition nvnmos.h:325
const char ** log_categories
Definition nvnmos.h:334
NvNmosAssetConfig * asset_tags
Definition nvnmos.h:302
NvNmosNetworkServicesConfig * network_services
Definition nvnmos.h:340
Definition nvnmos.h:514
void * impl
Definition nvnmos.h:524
void * user_data
Definition nvnmos.h:520
Definition nvnmos.h:368
NvNmosTransport transport
Definition nvnmos.h:372
const char * transport_file
Definition nvnmos.h:416
Definition nvnmos.h:424
const char * transport_file
Definition nvnmos.h:468
NvNmosTransport transport
Definition nvnmos.h:428