Patent ID: 8819520

Claim:
A computer-implemented method for forward error correction (FEC), the method comprising: (a) establishing a network connection between a sender and a recipient; (b) setting a desired data quality and an acceptable delay for packet recovery; (c) transmitting a packet data stream from the sender to the recipient; (d) receiving statistics reflecting losses of packets, including at least quantity of losses and characteristics of bursts; (e) turning an FEC scheme and packet reordering off, and increasing a bit rate of the packet data stream, if no losses are detected; (f) if a packet loss is detected but no packet burst losses are detected, selecting an FEC scheme, and turning off reordering; (g) if packet burst loss is detected but delay for recovery is unacceptable, selecting an FEC scheme, and turning off packet reordering, (h) if packet burst loss is detected and delay for recovery is acceptable, selecting an FEC scheme and reordering the packets; (i) changing the bit rate of the packet data stream, if the FEC scheme was selected or changed; and (j) reordering data packets within the data stream, if the recovery delay is acceptable, wherein the packets are dispersed within the packet stream in such a manner that the packets of the same sequence are located as far as possible from each other.