12#ifndef ROC_FEC_READER_H_
13#define ROC_FEC_READER_H_
85 void fetch_packets_();
88 void fill_source_block_();
89 void fill_repair_block_();
100 bool can_update_payload_size_(
size_t);
101 bool can_update_source_block_size_(
size_t);
102 bool can_update_repair_block_size_(
size_t);
104 bool update_payload_size_(
size_t);
105 bool update_source_block_size_(
size_t);
106 bool update_repair_block_size_(
size_t);
108 void drop_repair_packets_from_prev_blocks_();
132 size_t payload_size_;
134 bool source_block_resized_;
135 bool repair_block_resized_;
136 bool payload_resized_;
140 const size_t max_sbn_jump_;
Memory allocator interface.
Base class for non-copyable objects.
FEC block decoder interface.
Reader(const ReaderConfig &config, packet::FecScheme fec_scheme, IBlockDecoder &decoder, packet::IReader &source_reader, packet::IReader &repair_reader, packet::IParser &parser, packet::PacketFactory &packet_factory, core::IAllocator &allocator)
Initialize.
bool valid() const
Check if object is successfully constructed.
bool alive() const
Is decoder alive?
virtual packet::PacketPtr read()
Read packet.
bool started() const
Did decoder catch block beginning?
Memory allocator interface.
FEC block decoder interface.
uint16_t blknum_t
FEC block number in a packet stream.
FecScheme
FECFRAME scheme.
size_t max_sbn_jump
Maximum allowed source block number jump.