<div dir="ltr">The Opus encoder does not provide generic &quot;FEC&quot; in the conventional sense.  You can do that yourself as a later step between the encoder and transmission.<div><br></div><div>What Opus provides, in some modes, is an additional &quot;Low Bitrate Redundancy&quot; frame within some packets to increase packet loss resilience.  See <a href="http://tools.ietf.org/html/rfc6716#section-2.1.7">http://tools.ietf.org/html/rfc6716#section-2.1.7</a> for an overview and <a href="http://tools.ietf.org/html/rfc6716#section-4.2.5">http://tools.ietf.org/html/rfc6716#section-4.2.5</a> for details.</div>
<div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jan 28, 2013 at 10:50 AM, Young, Milan <span dir="ltr">&lt;<a href="mailto:Milan.Young@nuance.com" target="_blank">Milan.Young@nuance.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I understand the encoder provides an option for FEC to provide some protection against packet loss, but I don&#39;t understand the details of this arrangement.  I&#39;d appreciate answers to the following:<br>
<br>
* Adding FEC seems to change the encoded audio bit-stream itself, i.e., it doesn&#39;t just add additional protection bits, but also changes the encoded bits. This is easy to show by comparing two decoded versions of the same audio file: one encoded with no FEC, and another with FEC. Is this expected or is it a bug?<br>

* Related to the above, what does the FEC information consist of? How does the decoder use it? Does it simply repeat preceding packets, or interpolate preceding and subsequent packets, or does it do something smarter?<br>

 * Based on my tests, the FEC in opus seems to have a limit, i.e., it adds correction but only up to approx 4---10% expected packet loss, depending on the file. What are the parameters/limits of the FEC?<br>
  * Does FEC add any algorithmic delay? i.e., does it require the decoder to wait until post-loss packets are received in order to generate a replacement for the lost packets? If so, what is the maximum delay and can it be variably set?<br>

<br>
Thank you<br>
<br>
_______________________________________________<br>
opus mailing list<br>
<a href="mailto:opus@xiph.org">opus@xiph.org</a><br>
<a href="http://lists.xiph.org/mailman/listinfo/opus" target="_blank">http://lists.xiph.org/mailman/listinfo/opus</a><br>
</blockquote></div><br></div>