X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=rsencoder.cpp;h=d98a13caf16cb9612965915a501f833a820cc96a;hb=f873d7fa08ab2f48e5ca96a5b6d1b41724874b09;hp=3026dd4d2373fdc552fbe1660ab88dbf37ce818e;hpb=02120e9414a6e613b17d6284891593271659b5d9;p=greproxy diff --git a/rsencoder.cpp b/rsencoder.cpp index 3026dd4..d98a13c 100644 --- a/rsencoder.cpp +++ b/rsencoder.cpp @@ -16,6 +16,12 @@ extern "C" { #include using namespace std; + +RSEncoder::RSEncoder(Sender *sender) + : sender(sender) +{ + rs = init_rs_char(RS_SYM_SIZE, RS_GF_POLY, 1, 1, RS_PARITY_SIZE, RS_PAD); +} void RSEncoder::send_packet(uint16_t proto, const std::string &data, int incoming_seq) { @@ -73,9 +79,9 @@ void RSEncoder::finish_group() for (int j = 0; j < packet_history.size(); ++j) { data[j] = packet_history[j].data[i]; } - encode_rs_8(reinterpret_cast(&data[0]), - reinterpret_cast(&parity[0]), - RS_PAD); + encode_rs_char(rs, + reinterpret_cast(&data[0]), + reinterpret_cast(&parity[0])); for (int j = 0; j < RS_PARITY_SIZE; ++j) { rs_packets[j][i] = parity[j]; }