]> git.sesse.net Git - greproxy/blobdiff - rsdecoder.cpp
Switch to a different RS encoding.
[greproxy] / rsdecoder.cpp
index 20297bf53230e77e84bfd9bd2f8aab98c114b9b6..8a27896d8dedd70f2c3b8094e703a8c81eadd661 100644 (file)
@@ -15,7 +15,10 @@ extern "C" {
 using namespace std;
 
 RSDecoder::RSDecoder(Sender *sender)
-       : sender(sender) {}
+       : sender(sender)
+{
+       rs = init_rs_char(RS_SYM_SIZE, RS_GF_POLY, 1, 1, RS_PARITY_SIZE, RS_PAD);
+}
 
 void RSDecoder::send_packet(uint16_t proto, const std::string &data, int incoming_seq)
 {
@@ -109,8 +112,7 @@ void RSDecoder::send_packet(uint16_t proto, const std::string &data, int incomin
                                for (int j = 0; j < RS_GROUP_SIZE; ++j) {
                                        ch[j] = padded_packets[j][i];
                                }
-                               int ret = decode_rs_8(ch, &missing_packets[0], missing_packets.size(),
-                                       RS_PAD);
+                               int ret = decode_rs_char(rs, ch, &missing_packets[0], missing_packets.size());
                                if (ret == -1) {
                                        printf("Failed reconstruction!\n");
                                        // We might get more data later, so don't remove it.