I need to implement a Reed Solomon FEC using one way data communication so we decided to use UDP.
I read about Reed Solomon and I understand how it works from the theoretical side but I have some questions about using it in practice.
I read somewhere that it is used for detecting bit flips or corrupted packets and correct the errors, but if a UDP packet gets corrupted, it is immediately gets discarded by the operating system so I can't even try to correct the packet using Reed Solomon.
Can I "bypass" the operating system and still use the corrupted packet and correct it myself using Reed Solomon?
Also, another question I have is how to go about handling packets that are lost - How is it possible to use Reed Solomon for that if the packets are large? I only understand how to use it if each packet is 1 byte long (I can basically just construct a polynomial from these bytes and find the missing one but if the packets are longer how can I even handle that?)
If the packets are fixed in size, they could be handled by using RS code down columns of a group of packets, treating a set of packets like a matrix, this would be similar to how some erasures codes are implemented.
RS codes correct symbols of some fixed size. Hard drives typically use 12 bit symbols. Other applications use bytes (8 bit symbols).