Defines the DeepStream NMOS utility library (NvDsNmos) API.
The NvDsNmos utility library provides the APIs to create, destroy and internally manage an NMOS Node for a DeepStream 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.
NvDsNmos currently supports Senders and Receivers for uncompressed Video and Audio, i.e., SMPTE ST 2110-20 and SMPTE ST 2110-30 streams.
The NvDsNmos library supports the following specifications, using the Sony nmos-cpp implementation:
Data Structures | |
struct | _NvDsNmosNodeConfig |
Defines configuration settings used to create an NvDsNmosNodeServer. More... | |
struct | _NvDsNmosReceiverConfig |
Defines configuration settings used to create receivers in an NvDsNmosNodeServer. More... | |
struct | _NvDsNmosSenderConfig |
Defines configuration settings used to create senders in an NvDsNmosNodeServer. More... | |
struct | _NvDsNmosNodeServer |
Holds the implementation details of a running NvDsNmos server. More... | |
Typedefs | |
typedef struct _NvDsNmosNodeServer | NvDsNmosNodeServer |
Holds the implementation details of a running NvDsNmos server. More... | |
typedef bool(* | nmos_connection_rtp_activation_callback) (NvDsNmosNodeServer *server, const char *id, const char *sdp) |
Type for a callback from NvDsNmos library when an IS-05 Connection API activation occurs. More... | |
typedef void(* | nmos_logging_callback) (NvDsNmosNodeServer *server, const char *categories, int level, const char *message) |
Type for a callback from NvDsNmos library for log messages. More... | |
typedef struct _NvDsNmosReceiverConfig | NvDsNmosReceiverConfig |
Defines configuration settings used to create receivers in an NvDsNmosNodeServer. More... | |
typedef struct _NvDsNmosSenderConfig | NvDsNmosSenderConfig |
Defines configuration settings used to create senders in an NvDsNmosNodeServer. More... | |
typedef struct _NvDsNmosNodeConfig | NvDsNmosNodeConfig |
Defines configuration settings used to create an NvDsNmosNodeServer. More... | |
Enumerations | |
enum | { NVDSNMOS_LOG_DEVEL = -40, NVDSNMOS_LOG_VERBOSE = -10, NVDSNMOS_LOG_INFO = 0, NVDSNMOS_LOG_WARNING = 10, NVDSNMOS_LOG_ERROR = 20, NVDSNMOS_LOG_SEVERE = 30, NVDSNMOS_LOG_FATAL = 40 } |
Defines some common severity/logging levels for log messages from the NvDsNmos library. More... | |
Functions | |
bool | create_nmos_node_server (const NvDsNmosNodeConfig *config, NvDsNmosNodeServer *server) |
Initialize and start an NMOS Node server according to the specified configuration settings. More... | |
bool | destroy_nmos_node_server (NvDsNmosNodeServer *server) |
Stop and deinitialize an NMOS Node server. More... | |
bool | nmos_connection_rtp_activate (NvDsNmosNodeServer *server, const char *id, const char *sdp) |
Update the configuration settings of a sender or receiver. More... | |
typedef bool(* nmos_connection_rtp_activation_callback) (NvDsNmosNodeServer *server, const char *id, const char *sdp) |
Type for a callback from NvDsNmos 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 x-nvds-id session-level attribute specifies the unique identifier for the sender or receiver, id . For a receiver, the x-nvds-iface-ip media-level attribute is used to specify the interface IP address on which the stream is received. For a sender, the x-nvds-src-port media-level attribute is used to specify the source port from which the stream is transmitted. |
Definition at line 85 of file nvdsnmos.h.
typedef void(* nmos_logging_callback) (NvDsNmosNodeServer *server, const char *categories, int level, const char *message) |
Type for a callback from NvDsNmos 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. |
Definition at line 122 of file nvdsnmos.h.
typedef struct _NvDsNmosNodeConfig NvDsNmosNodeConfig |
Defines configuration settings used to create an NvDsNmosNodeServer.
The structure should be zero initialized.
typedef struct _NvDsNmosNodeServer NvDsNmosNodeServer |
Holds the implementation details of a running NvDsNmos server.
The structure should be zero initialized, with the possible exception of the user_data
member.
Definition at line 60 of file nvdsnmos.h.
typedef struct _NvDsNmosReceiverConfig NvDsNmosReceiverConfig |
Defines configuration settings used to create receivers in an NvDsNmosNodeServer.
Definition at line 128 of file nvdsnmos.h.
typedef struct _NvDsNmosSenderConfig NvDsNmosSenderConfig |
Defines configuration settings used to create senders in an NvDsNmosNodeServer.
Definition at line 129 of file nvdsnmos.h.
anonymous enum |
Defines some common severity/logging levels for log messages from the NvDsNmos library.
Definition at line 94 of file nvdsnmos.h.
bool create_nmos_node_server | ( | const NvDsNmosNodeConfig * | config, |
NvDsNmosNodeServer * | 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. |
bool destroy_nmos_node_server | ( | NvDsNmosNodeServer * | 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. |
bool nmos_connection_rtp_activate | ( | NvDsNmosNodeServer * | 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 x-nvds-id session-level attribute specifies the unique identifier for the sender or receiver, id . For a receiver, the x-nvds-iface-ip media-level attribute is used to specify the interface IP address on which the stream is received. For a sender, the x-nvds-src-port media-level attribute is used to specify the source port from which the stream is transmitted. |