![]() |
TSDuck v3.46-4930
MPEG Transport Stream Toolkit
|
#include <tsmcastNIPDemux.h>


Classes | |
| class | ServiceListContext |
Public Member Functions | |
| NIPDemux (DuckContext &duck, NIPHandlerInterface *handler=nullptr) | |
| void | addProtocolSession (const TransportProtocol &protocol, const FluteSessionId &session) |
| void | addSession (const FluteSessionId &session) |
| template<class Rep, class Period> | |
| void | feedPacket (const cn::duration< Rep, Period > ×tamp, const IPPacket &pkt) |
| 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) |
| const FluteDemux & | getFluteDemux () const |
| template<class CONTAINER> requires std::same_as<typename CONTAINER::value_type, ts::mcast::NIPDemux::ServiceListContext> | |
| void | getServiceLists (CONTAINER &lists) const |
| template<class CONTAINER> requires std::same_as<typename CONTAINER::value_type, ts::mcast::NIPService> | |
| void | getServices (CONTAINER &services) const |
| bool | isFiltered (const FluteSessionId &session) const |
| bool | isFiltered (const IPAddress &source, const IPSocketAddress &destination) const |
| bool | reset (const FluteDemuxArgs &args, bool will_get_files_status=false) |
| void | setHandler (NIPHandlerInterface *h) |
DVB-NIP demux, extracting files and tables.
|
explicit |
Constructor.
| [in,out] | duck | TSDuck execution context. The reference is kept inside the demux. |
| [in] | handler | The object to invoke when information is found. |
|
inline |
Replace the NIP handler.
| [in] | h | The new handler. |
| bool ts::mcast::NIPDemux::reset | ( | const FluteDemuxArgs & | args, |
| bool | will_get_files_status = false ) |
Reset the demux.
| [in] | args | Demux arguments. |
| [in] | will_get_files_status | We intend to call FluteDemux::getFilesStatus() later. This means that the demux needs to keep track of all received files. Since this uses a ever-growing amount of memory, be sure to specify this option when necessary only and when the demux session, until the next reset(), is limited in time. |
| void ts::mcast::NIPDemux::feedPacket | ( | const cn::duration< Rep, Period > & | timestamp, |
| const IPPacket & | pkt ) |
| 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.
| [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. |
| 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.
| [in] | session | The session id to add. |
| void ts::mcast::NIPDemux::addProtocolSession | ( | const TransportProtocol & | protocol, |
| const FluteSessionId & | session ) |
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.
| [in] | protocol | The file transport protocol. |
| [in] | session | The session id to add. |
| bool ts::mcast::NIPDemux::isFiltered | ( | const IPAddress & | source, |
| const IPSocketAddress & | destination ) const |
| bool ts::mcast::NIPDemux::isFiltered | ( | const FluteSessionId & | session | ) | const |
Check if a UDP packet or FLUTE file is part of a filtered session.
| [in] | session | FLUTE session id. |
| void ts::mcast::NIPDemux::getServiceLists | ( | CONTAINER & | lists | ) | const |
Get a description of all service lists.
| [out] | lists | Returned container of service list descriptions. The list of sorted by file names of service lists. |
| void ts::mcast::NIPDemux::getServices | ( | CONTAINER & | services | ) | const |
Get a description of all services.
| [out] | services | Returned container of service descriptions. The list of sorted by logical channel number (LCN). |
|
inline |
Get a constant reference to the undelying FLUTE demux. Because the reference is const, the FLUTE demux can only be used to get or print the status of files.