NvNmos
|
Classes | |
struct | _NvNmosNodeConfig |
struct | _NvNmosAssetConfig |
struct | _NvNmosReceiverConfig |
struct | _NvNmosSenderConfig |
struct | _NvNmosNodeServer |
Typedefs | |
typedef struct _NvNmosNodeServer | NvNmosNodeServer |
typedef bool(* | nmos_connection_rtp_activation_callback) (NvNmosNodeServer *server, const char *id, const char *sdp) |
typedef void(* | nmos_logging_callback) (NvNmosNodeServer *server, const char *categories, int level, const char *message) |
typedef struct _NvNmosAssetConfig | NvNmosAssetConfig |
typedef struct _NvNmosReceiverConfig | NvNmosReceiverConfig |
typedef struct _NvNmosSenderConfig | NvNmosSenderConfig |
typedef struct _NvNmosNodeConfig | NvNmosNodeConfig |
Enumerations | |
enum | { NVNMOS_LOG_DEVEL = -40 , NVNMOS_LOG_VERBOSE = -10 , NVNMOS_LOG_INFO = 0 , NVNMOS_LOG_WARNING = 10 , NVNMOS_LOG_ERROR = 20 , NVNMOS_LOG_SEVERE = 30 , NVNMOS_LOG_FATAL = 40 } |
Functions | |
NVNMOS_API bool | create_nmos_node_server (const NvNmosNodeConfig *config, NvNmosNodeServer *server) |
NVNMOS_API bool | destroy_nmos_node_server (NvNmosNodeServer *server) |
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) |
NVNMOS_API bool | add_nmos_sender_to_node_server (NvNmosNodeServer *server, const NvNmosSenderConfig *config) |
NVNMOS_API bool | remove_nmos_sender_from_node_server (NvNmosNodeServer *server, const char *id) |
NVNMOS_API bool | nmos_connection_rtp_activate (NvNmosNodeServer *server, const char *id, const char *sdp) |
Defines the NVIDIA NMOS utility library (NvNmos) API.
The NvNmos utility library provides the APIs to create, destroy and internally manage an NMOS Node for a Media Node application.
The library can automatically discover and register with an NMOS Registry on the network using the AMWA IS-04 Registration API.
The library provides callbacks for NMOS events such as AMWA IS-05 Connection API requests from an NMOS Controller. These callbacks can be used to update running DeepStream pipelines with new transport parameters, for example.
NvNmos currently supports Senders and Receivers for uncompressed Video and Audio, i.e., SMPTE ST 2110-20 and SMPTE ST 2110-30 streams.
The NvNmos library supports the following specifications, using the Sony nmos-cpp implementation:
typedef bool(* nmos_connection_rtp_activation_callback) (NvNmosNodeServer *server, const char *id, const char *sdp) |
Type for a callback from NvNmos library when an IS-05 Connection API activation occurs.
[in] | server | A pointer to the server issuing the callback. |
[in] | id | The unique identifier for the sender or receiver to be activated or deactivated. |
[in] | sdp | The updated Session Description Protocol data for the sender or receiver, or a null pointer when the sender or receiver is being deactivated. The new data only updates the transport parameters of the sender or receiver, not the media format. The 'inactive' media-level attribute is used to indicate a disabled leg. The 'x-nvnmos-id' session-level attribute specifies the unique identifier for the sender or receiver, id . For a receiver, the 'x-nvnmos-iface-ip' media-level attribute is used to specify the interface IP address on which the stream is received. For a sender, the 'x-nvnmos-src-port' media-level attribute is used to specify the source port from which the stream is transmitted. |
typedef void(* nmos_logging_callback) (NvNmosNodeServer *server, const char *categories, int level, const char *message) |
Type for a callback from NvNmos library for log messages.
[in] | server | A pointer to the server issuing the callback. |
[in] | categories | A comma separated list of topics, indicating e.g. the submodule originating the log message. |
[in] | level | The severity/verbosity level. Values greater than zero are warnings and errors. Values less than zero are debugging or trace messages. |
[in] | message | The message itself. |
typedef struct _NvNmosAssetConfig NvNmosAssetConfig |
Defines asset distinguishing information for BCP-002-02 tags in an NvNmosNodeServer.
typedef struct _NvNmosNodeConfig NvNmosNodeConfig |
Defines configuration settings used to create an NvNmosNodeServer. The structure should be zero initialized.
typedef struct _NvNmosNodeServer NvNmosNodeServer |
Holds the implementation details of a running NvNmos server. The structure should be zero initialized, with the possible exception of the user_data
member.
typedef struct _NvNmosReceiverConfig NvNmosReceiverConfig |
Defines configuration settings used to create receivers in an NvNmosNodeServer.
typedef struct _NvNmosSenderConfig NvNmosSenderConfig |
Defines configuration settings used to create senders in an NvNmosNodeServer.
anonymous enum |
Defines some common severity/logging levels for log messages from the NvNmos library.
NVNMOS_API bool add_nmos_receiver_to_node_server | ( | NvNmosNodeServer * | server, |
const NvNmosReceiverConfig * | config | ||
) |
Add an NMOS Receiver to an NMOS Node server according to the specified configuration settings.
The receiver may be removed using remove_nmos_receiver_from_node_server.
[in] | server | Pointer to the server to update. |
[in] | config | Pointer to the configuration settings. |
NVNMOS_API bool add_nmos_sender_to_node_server | ( | NvNmosNodeServer * | server, |
const NvNmosSenderConfig * | config | ||
) |
Add an NMOS Sender to an NMOS Node server according to the specified configuration settings.
The sender may be removed using remove_nmos_sender_from_node_server.
[in] | server | Pointer to the server to update. |
[in] | config | Pointer to the configuration settings. |
NVNMOS_API bool create_nmos_node_server | ( | const NvNmosNodeConfig * | config, |
NvNmosNodeServer * | server | ||
) |
Initialize and start an NMOS Node server according to the specified configuration settings.
The server should be deinitialized using destroy_nmos_node_server.
[in] | config | Pointer to the configuration settings. |
[in] | server | Pointer to the server to be initialized. |
NVNMOS_API bool destroy_nmos_node_server | ( | NvNmosNodeServer * | server | ) |
Stop and deinitialize an NMOS Node server.
The server should have been successfully initialized using create_nmos_node_server.
[in] | server | Pointer to the server to be deinitialized. |
NVNMOS_API bool nmos_connection_rtp_activate | ( | NvNmosNodeServer * | server, |
const char * | id, | ||
const char * | sdp | ||
) |
Update the configuration settings of a sender or receiver.
[in] | server | A pointer to the server to be updated. |
[in] | id | The unique identifier for the sender or receiver to be activated or deactivated. |
[in] | sdp | The updated Session Description Protocol data for the sender or receiver, or a null pointer when the sender or receiver is being deactivated. The new data only updates the transport parameters of the sender or receiver, not the media format. The 'inactive' media-level attribute is used to indicate a disabled leg. For a sender, the 'ts-refclk' attributes are used to specify the node clock. The 'x-nvnmos-id' session-level attribute specifies the unique identifier for the sender or receiver, id . For a receiver, the 'x-nvnmos-iface-ip' media-level attribute is used to specify the interface IP address on which the stream is received. For a sender, the 'x-nvnmos-src-port' media-level attribute is used to specify the source port from which the stream is transmitted. |
NVNMOS_API bool remove_nmos_receiver_from_node_server | ( | NvNmosNodeServer * | server, |
const char * | id | ||
) |
Remove an NMOS Receiver from an NMOS Node server.
The receiver may have been adding using create_nmos_node_server or add_nmos_receiver_to_node_server.
[in] | server | Pointer to the server to update. |
[in] | id | The unique identifier for the receiver to be removed. |
NVNMOS_API bool remove_nmos_sender_from_node_server | ( | NvNmosNodeServer * | server, |
const char * | id | ||
) |
Remove an NMOS Sender from an NMOS Node server.
The sender may have been adding using create_nmos_node_server or add_nmos_sender_to_node_server.
[in] | server | Pointer to the server to update. |
[in] | id | The unique identifier for the sender to be removed. |