DVB-NIP demux, extracting files and tables.
More...
#include <tsmcastNIPDemux.h>
|
| | NIPDemux (DuckContext &duck, NIPHandlerInterface *handler=nullptr) |
| | Constructor.
|
| |
| void | addProtocolSession (const TransportProtocol &protocol, const FluteSessionId &session) |
| | Add a FLUTE or ROUTE session in the DVB-NIP analyzer.
|
| |
| void | addSession (const FluteSessionId &session) |
| | Add a FLUTE session in the DVB-NIP analyzer.
|
| |
| template<class Rep , class Period > |
| void | feedPacket (const cn::duration< Rep, Period > ×tamp, const IPPacket &pkt) |
| | The following method feeds the demux with an IP packet.
|
| |
| template<class Rep , class Period > |
| void | feedPacket (const cn::duration< Rep, Period > ×tamp, const IPSocketAddress &source, const IPSocketAddress &destination, const uint8_t *udp, size_t udp_size) |
| | The following method feeds the demux with a UDP packet.
|
| |
|
void | getFileStatus () |
| | Force a file status update in the FLUTE so that the handler can be notified on its handleFluteFile().
|
| |
template<class CONTAINER >
requires std::same_as<typename CONTAINER::value_type, ts::mcast::NIPDemux::ServiceListContext> |
| void | getServiceLists (CONTAINER &lists) const |
| | Get a description of all service lists.
|
| |
template<class CONTAINER >
requires std::same_as<typename CONTAINER::value_type, ts::mcast::NIPService> |
| void | getServices (CONTAINER &services) const |
| | Get a description of all services.
|
| |
| bool | isFiltered (const FluteSessionId &session) const |
| | Check if a UDP packet or FLUTE file is part of a filtered session.
|
| |
| bool | isFiltered (const IPAddress &source, const IPSocketAddress &destination) const |
| | Check if a UDP packet or FLUTE file is part of a filtered session.
|
| |
| bool | reset (const FluteDemuxArgs &args) |
| | Reset the demux.
|
| |
| void | setHandler (NIPHandlerInterface *h) |
| | Replace the NIP handler.
|
| |
DVB-NIP demux, extracting files and tables.
◆ NIPDemux()
Constructor.
- Parameters
-
| [in,out] | duck | TSDuck execution context. The reference is kept inside the demux. |
| [in] | handler | The object to invoke when information is found. |
◆ setHandler()
Replace the NIP handler.
- Parameters
-
◆ reset()
Reset the demux.
- Parameters
-
- Returns
- True on success, false on error.
◆ feedPacket() [1/2]
template<class Rep , class Period >
| void ts::mcast::NIPDemux::feedPacket |
( |
const cn::duration< Rep, Period > & |
timestamp, |
|
|
const IPPacket & |
pkt |
|
) |
| |
The following method feeds the demux with an IP packet.
The packet is ignored if this is not a UDP packet.
- Parameters
-
| [in] | timestamp | Packet time stamp value. This value should be taken from a monotonic clock. |
| [in] | pkt | An IP packet. |
◆ feedPacket() [2/2]
template<class Rep , class Period >
| void ts::mcast::NIPDemux::feedPacket |
( |
const cn::duration< Rep, Period > & |
timestamp, |
|
|
const IPSocketAddress & |
source, |
|
|
const IPSocketAddress & |
destination, |
|
|
const uint8_t * |
udp, |
|
|
size_t |
udp_size |
|
) |
| |
The following method feeds the demux with a UDP packet.
- Parameters
-
| [in] | timestamp | Packet time stamp value. This value should be taken from a monotonic clock. |
| [in] | source | Source socket address. |
| [in] | destination | Destination socket address. |
| [in] | udp | Address of UDP payload. |
| [in] | udp_size | Size in bytes of UDP payload. |
◆ addSession()
| void ts::mcast::NIPDemux::addSession |
( |
const FluteSessionId & |
session | ) |
|
Add a FLUTE session in the DVB-NIP analyzer.
There is normally no reason to call this from the application. The analyzer always starts with the DVB-NIP Announcement Channel on reset(). Then, all declared sessions in the DVB-NIP tables are automatically added.
- Parameters
-
| [in] | session | The session id to add. |
◆ addProtocolSession()
Add a FLUTE or ROUTE session in the DVB-NIP analyzer.
There is normally no reason to call this from the application. The analyzer always starts with the DVB-NIP Announcement Channel on reset(). Then, all declared sessions in the DVB-NIP tables are automatically added.
- Parameters
-
| [in] | protocol | The file transport protocol. |
| [in] | session | The session id to add. |
◆ isFiltered() [1/2]
Check if a UDP packet or FLUTE file is part of a filtered session.
- Parameters
-
| [in] | source | Source IP address. |
| [in] | destination | Destination IP address and UDP port. |
- Returns
- True if the packet is part of a filtered session.
◆ isFiltered() [2/2]
| bool ts::mcast::NIPDemux::isFiltered |
( |
const FluteSessionId & |
session | ) |
const |
Check if a UDP packet or FLUTE file is part of a filtered session.
- Parameters
-
| [in] | session | FLUTE session id. |
- Returns
- True if the packet is part of a filtered session.
◆ getServiceLists()
| void ts::mcast::NIPDemux::getServiceLists |
( |
CONTAINER & |
lists | ) |
const |
Get a description of all service lists.
- Parameters
-
| [out] | lists | Returned container of service list descriptions. The list of sorted by file names of service lists. |
◆ getServices()
| void ts::mcast::NIPDemux::getServices |
( |
CONTAINER & |
services | ) |
const |
Get a description of all services.
- Parameters
-
| [out] | services | Returned container of service descriptions. The list of sorted by logical channel number (LCN). |
The documentation for this class was generated from the following file: