12 #ifndef ROC_FEC_WRITER_H_
13 #define ROC_FEC_WRITER_H_
72 bool resize(
size_t sblen,
size_t rblen);
85 bool apply_sizes_(
size_t sblen,
size_t rblen,
size_t payload_size);
88 void make_repair_packets_();
90 void encode_repair_packets_();
91 void compose_repair_packets_();
104 size_t cur_payload_size_;
#define ROC_ATTR_NODISCARD
Emit warning if function result is not checked.
Base class for non-copyable objects.
FEC block encoder interface.
bool is_alive() const
Check if writer is still working.
bool is_valid() const
Check if object is successfully constructed.
bool resize(size_t sblen, size_t rblen)
Set number of source packets per block.
Writer(const WriterConfig &config, packet::FecScheme fec_scheme, IBlockEncoder &encoder, packet::IWriter &writer, packet::IComposer &source_composer, packet::IComposer &repair_composer, packet::PacketFactory &packet_factory, core::IArena &arena)
Initialize.
virtual ROC_ATTR_NODISCARD status::StatusCode write(const packet::PacketPtr &)
Write packet.
Packet composer interface.
FEC block encoder interface.
Packet composer interface.
uint16_t seqnum_t
Packet sequence number.
uint16_t blknum_t
FEC packet block number.
FecScheme
FECFRAME scheme.
size_t n_repair_packets
Number of FEC packets in block.
size_t n_source_packets
Number of data packets in block.