<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div dir="ltr" id="yui_3_16_0_1_1423561830758_48248"><span id="yui_3_16_0_1_1423561830758_48252">Hi,</span></div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48246"><span><br></span></div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48242"><span id="yui_3_16_0_1_1423561830758_48244">Thank you very much for your answer.</span></div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48235"><br></div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48235">So the size of the audio payload would be the same with or without FEC &nbsp;?</div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48234">I have tested with OPUS_SET_PACKET_LOSS_PERC(20) , I imagined that at this packet loss there should be a lot of FEC , even if i'm</div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48234">testing in NARROWBAND mode.</div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48232"><br></div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48254">Regards,</div><div dir="ltr" id="yui_3_16_0_1_1423561830758_48255">Dragos Oancea</div><div id="yui_3_16_0_1_1423561830758_48230"><br></div>  <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1423561830758_48082"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1423561830758_48081"> <div dir="ltr" id="yui_3_16_0_1_1423561830758_48228"> <hr size="1">  <font size="2" face="Arial" id="yui_3_16_0_1_1423561830758_48227"> <b><span style="font-weight:bold;">From:</span></b> Jean-Marc Valin &lt;jmvalin@mozilla.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> Dragos Oancea &lt;droancea@yahoo.com&gt;; "opus@xiph.org" &lt;opus@xiph.org&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Friday, February 6, 2015 1:57 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [opus] VOIP: FEC and NARROWBAND<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_1_1423561830758_48080"><br>At this bitrate the encoder likely decides that it's better to put all<br clear="none">the bits in the normal packet than use FEC. When you enable FEC it<br clear="none">steals a lot of bits from the non-FEC content. Also, the use of FEC<br clear="none">depends on the reported percentage of packet loss. The more loss there<br clear="none">is, the lower the threshold for enabling FEC. Overall, the encoder<br clear="none">attempt to make the best decision on a packet-per-packet basis as to<br clear="none">whether FEC is useful considering the bit-rate, percentage of loss, and<br clear="none">the exact audio content.<br clear="none"><br clear="none">Cheers,<br clear="none"><br clear="none">&nbsp;&nbsp;&nbsp; Jean-Marc<br clear="none"><div class="qtdSeparateBR"><br><br></div><div class="yqt8237513175" id="yqtfd38093"><br clear="none">On 05/02/15 11:46 AM, Dragos Oancea wrote:<br clear="none">&gt; Hello,<br clear="none">&gt; <br clear="none">&gt; Is FEC supposed to work in NARROWBAND mode&nbsp; (with<br clear="none">&gt; maxaveragebitrate=12000; maxplaybackrate=8000 ) ?<br clear="none">&gt; I am having some confusing results, it appears that FEC is enabled in<br clear="none">&gt; the encoder, but the decoder cannot find any packet with FEC.<br clear="none">&gt; <br clear="none">&gt; I am also wondering if this piece of code is correct (webrtc):<br clear="none">&gt; <br clear="none">&gt; /* The following is to parse the LBRR flags. */<br clear="none">&gt;&nbsp;  if (opus_packet_parse(payload, payload_length_bytes, NULL, frame_data,<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  frame_sizes, NULL) &lt; 0) {<br clear="none">&gt;&nbsp; &nbsp;  return 0;<br clear="none">&gt;&nbsp;  }<br clear="none">&gt; <br clear="none">&gt;&nbsp;  if (frame_sizes[0] &lt;= 1) {<br clear="none">&gt;&nbsp; &nbsp;  return 0;<br clear="none">&gt;&nbsp;  }<br clear="none">&gt; <br clear="none">&gt;&nbsp;  for (n = 0; n &lt; channels; n++) {<br clear="none">&gt;&nbsp; &nbsp;  if (frame_data[0][0] &amp; (0x80 &gt;&gt; ((n + 1) * (frames + 1) - 1)))<br clear="none">&gt;&nbsp; &nbsp; &nbsp;  return 1;<br clear="none">&gt;&nbsp;  }<br clear="none">&gt; <br clear="none">&gt; Is this the way to detect is an Opus-encoded packet has FEC info about<br clear="none">&gt; the previous packet ?<br clear="none">&gt; <br clear="none">&gt; Does Opus support FEC n+2 too, like SILK ?<br clear="none">&gt; <br clear="none">&gt; Thank you for this great codec!<br clear="none">&gt; <br clear="none">&gt; Regards,<br clear="none">&gt; Dragos Oancea</div><br clear="none">&gt; <br clear="none">&gt; <br clear="none">&gt; <br clear="none">&gt; <br clear="none">&gt; <br clear="none">&gt; <br clear="none">&gt; <br clear="none">&gt; _______________________________________________<br clear="none">&gt; opus mailing list<br clear="none">&gt; <a shape="rect" ymailto="mailto:opus@xiph.org" href="mailto:opus@xiph.org">opus@xiph.org</a><br clear="none">&gt; <a shape="rect" href="http://lists.xiph.org/mailman/listinfo/opus" target="_blank">http://lists.xiph.org/mailman/listinfo/opus</a><div class="yqt8237513175" id="yqtfd96665"><br clear="none">&gt; <br clear="none"></div><br><br></div> </div> </div>  </div></body></html>