12 #ifndef ROC_FEC_READER_H_
13 #define ROC_FEC_READER_H_
89 void fill_source_block_();
90 void fill_repair_block_();
101 bool can_update_payload_size_(
size_t);
102 bool can_update_source_block_size_(
size_t);
103 bool can_update_repair_block_size_(
size_t);
105 bool update_payload_size_(
size_t);
106 bool update_source_block_size_(
size_t);
107 bool update_repair_block_size_(
size_t);
109 void drop_repair_packets_from_prev_blocks_();
133 size_t payload_size_;
135 bool source_block_resized_;
136 bool repair_block_resized_;
137 bool payload_resized_;
141 const size_t max_sbn_jump_;
#define ROC_ATTR_NODISCARD
Emit warning if function result is not checked.
Base class for non-copyable objects.
FEC block decoder interface.
bool is_valid() const
Check if object is successfully constructed.
bool is_started() const
Did decoder catch block beginning?
virtual ROC_ATTR_NODISCARD status::StatusCode read(packet::PacketPtr &)
Read packet.
bool is_alive() const
Is decoder alive?
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::IArena &arena)
Initialize.
FEC block decoder interface.
uint16_t blknum_t
FEC packet block number.
FecScheme
FECFRAME scheme.
size_t max_sbn_jump
Maximum allowed source block number jump.