Secure Reliable Transport (SRT) Socket.
More...
#include <tsSRTSocket.h>
|
| SRTSocket () |
| Constructor.
|
|
| ~SRTSocket () |
| Destructor.
|
|
bool | close (Report &report=(ts::CerrReport::Instance())) |
| Close the socket.
|
|
void | defineArgs (Args &args) |
| Add command line option definitions in an Args.
|
|
bool | getMessageApi () const |
| Check if the SRT socket uses the Message API.
|
|
int | getSocket () const |
| Get the underlying SRT socket handle (use with care).
|
|
bool | getSockOpt (int optName, const char *optNameStr, void *optval, int &optlen, Report &report=(ts::CerrReport::Instance())) const |
| Get SRT option.
|
|
bool | loadArgs (DuckContext &duck, Args &args) |
| Load arguments from command line.
|
|
bool | open (size_t max_payload=NPOS, Report &report=(ts::CerrReport::Instance())) |
| Open the socket using parameters from the command line.
|
|
bool | open (SRTSocketMode mode, const IPv4SocketAddress &local_address, const IPv4SocketAddress &remote_address, size_t max_payload=NPOS, Report &report=(ts::CerrReport::Instance())) |
| Open the socket.
|
|
bool | peerDisconnected () const |
| Check if the connection was disconnected by the peer.
|
|
bool | receive (void *data, size_t max_size, size_t &ret_size, cn::microseconds ×tamp, Report &report=(ts::CerrReport::Instance())) |
| Receive a message with timestamp.
|
|
bool | receive (void *data, size_t max_size, size_t &ret_size, Report &report=(ts::CerrReport::Instance())) |
| Receive a message.
|
|
bool | reportStatistics (SRTStatMode mode=SRTStatMode::ALL, Report &report=(ts::CerrReport::Instance())) |
| Get statistics about the socket and report them.
|
|
bool | send (const void *data, size_t size, Report &report=(ts::CerrReport::Instance())) |
| Send a message to the default destination address and port.
|
|
bool | setAddresses (const UString &listener_address, const UString &caller_address, const UString &local_interface=UString(), Report &report=(ts::CerrReport::Instance())) |
| Preset local and remote socket addresses in string form.
|
|
size_t | totalReceivedBytes () const |
| Get the total number of received bytes since the socket was opened.
|
|
size_t | totalSentBytes () const |
| Get the total number of sent bytes since the socket was opened.
|
|
Secure Reliable Transport (SRT) Socket.
If the libsrt is not available during compilation of this class, all methods will fail with an error status.
- See also
- https://github.com/Haivision/srt
-
https://www.srtalliance.org/
◆ open() [1/2]
Open the socket using parameters from the command line.
- Parameters
-
[in] | max_payload | Maximum payload size in bytes. Unset if NPOS. |
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ open() [2/2]
Open the socket.
- Parameters
-
[in] | mode | SRT socket mode. If set to DEFAULT, the mode must have been specified in the command line options. |
[in] | local_address | Local socket address. Ignored in DEFAULT mode. Optional local IP address used in CALLER mode. |
[in] | remote_address | Remote socket address. Ignored in DEFAULT and LISTENER modes. |
[in] | max_payload | Maximum payload size in bytes. Unset if NPOS. |
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ close()
Close the socket.
- Parameters
-
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ defineArgs()
void ts::SRTSocket::defineArgs |
( |
Args & |
args | ) |
|
Add command line option definitions in an Args.
- Parameters
-
[in,out] | args | Command line arguments to update. |
◆ loadArgs()
Load arguments from command line.
Args error indicator is set in case of incorrect arguments.
- Parameters
-
[in,out] | duck | TSDuck execution context. |
[in,out] | args | Command line arguments. |
- Returns
- True on success, false on error in argument line.
◆ setAddresses()
Preset local and remote socket addresses in string form.
- If only listener_address is not empty, the socket is set in listener mode.
- If only caller_address is not empty, the socket is set in caller mode.
- If both strings are not empty, the socket is set in rendezvous mode.
- If both strings are empty, the current mode of the socket is reset and local and/or remote addresses must be specified by command line arguments or through open().
- Parameters
-
[in] | listener_address | Local "[address:]port". |
[in] | caller_address | Remote "address:port". |
[in] | local_interface | Optional, can be empty. In caller mode, specify the local outgoing IP address. |
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ send()
Send a message to the default destination address and port.
- Parameters
-
[in] | data | Address of the message to send. |
[in] | size | Size in bytes of the message to send. |
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ receive() [1/2]
Receive a message.
- Parameters
-
[out] | data | Address of the buffer for the received message. |
[in] | max_size | Size in bytes of the reception buffer. |
[out] | ret_size | Size in bytes of the received message. Will never be larger than max_size. |
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ receive() [2/2]
bool ts::SRTSocket::receive |
( |
void * |
data, |
|
|
size_t |
max_size, |
|
|
size_t & |
ret_size, |
|
|
cn::microseconds & |
timestamp, |
|
|
Report & |
report = (ts::CerrReport::Instance()) |
|
) |
| |
Receive a message with timestamp.
- Parameters
-
[out] | data | Address of the buffer for the received message. |
[in] | max_size | Size in bytes of the reception buffer. |
[out] | ret_size | Size in bytes of the received message. Will never be larger than max_size. |
[out] | timestamp | Source timestamp in micro-seconds, negative if not available. |
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ totalSentBytes()
size_t ts::SRTSocket::totalSentBytes |
( |
| ) |
const |
Get the total number of sent bytes since the socket was opened.
- Returns
- The total number of sent bytes since the socket was opened.
◆ totalReceivedBytes()
size_t ts::SRTSocket::totalReceivedBytes |
( |
| ) |
const |
Get the total number of received bytes since the socket was opened.
- Returns
- The total number of received bytes since the socket was opened.
◆ peerDisconnected()
bool ts::SRTSocket::peerDisconnected |
( |
| ) |
const |
Check if the connection was disconnected by the peer.
This can be used after a send/receive error to differentiate between "end of session" and actual error.
- Returns
- True if the connection was closed by the peer.
◆ reportStatistics()
Get statistics about the socket and report them.
- Parameters
-
[in] | mode | Type of statistics to report (or'ing bitmask values is allowed). |
[in,out] | report | Where to report statistics and errors. |
- Returns
- True on success, false on error.
◆ getSockOpt()
bool ts::SRTSocket::getSockOpt |
( |
int |
optName, |
|
|
const char * |
optNameStr, |
|
|
void * |
optval, |
|
|
int & |
optlen, |
|
|
Report & |
report = (ts::CerrReport::Instance()) |
|
) |
| const |
Get SRT option.
- Parameters
-
[in] | optName | Option name as enumeration. The possible values for optName are given by the enumeration type SRT_SOCKOPT in libsrt. The profile of this method uses "int" to remain portable in the absence of libsrt, but the actual values come from SRT_SOCKOPT in libsrt. |
[in] | optNameStr | Option name as ASCII string. |
[out] | optval | Address of returned value. |
[in,out] | optlen | Size of returned buffer (input), updated to size of returned value. |
[in,out] | report | Where to report error. |
- Returns
- True on success, false on error.
◆ getSocket()
int ts::SRTSocket::getSocket |
( |
| ) |
const |
Get the underlying SRT socket handle (use with care).
This method is reserved for low-level operations and should not be used by normal applications.
- Returns
- The underlying SRT socket handle.
◆ getMessageApi()
bool ts::SRTSocket::getMessageApi |
( |
| ) |
const |
Check if the SRT socket uses the Message API.
- Returns
- True if the SRT socket uses the Message API. False if it uses the Buffer API.
◆ GetLibraryVersion()
static UString ts::SRTSocket::GetLibraryVersion |
( |
| ) |
|
|
static |
Get the version of the SRT library.
- Returns
- A string describing the SRT library version (or the lack of SRT support).
The documentation for this class was generated from the following file: