<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">Hi Kelvin,</div><div dir="ltr"><br></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25293"><br></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25292">The audio bandpass setting is only configurable when the encoder is instantiated (eg: start of a Voip call ) , but you can change the bitrate anytime.</div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25291">For example if you can read incoming RTCP packets , you can check if there's reported packet loss , and then lower the bitrate accordingly.</div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25264">Yes, the app has to be aware of the packetloss &nbsp;percentage.</div><div id="yui_3_16_0_1_1425459539874_25290"><br></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25295">Cheers,</div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25296">Dragos</div><div id="yui_3_16_0_1_1425459539874_25188"><br></div>  <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1425459539874_25056"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1425459539874_25055"> <div dir="ltr" id="yui_3_16_0_1_1425459539874_25054"> <hr size="1">  <font size="2" face="Arial" id="yui_3_16_0_1_1425459539874_25053"> <b><span style="font-weight:bold;">From:</span></b> Kelvin Chua &lt;kelchy@gmail.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> Dragos Oancea &lt;droancea@yahoo.com&gt; <br><b><span style="font-weight: bold;">Cc:</span></b> Benjamin Schwartz &lt;benjamin.m.schwartz@gmail.com&gt;; "opus@xiph.org" &lt;opus@xiph.org&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Wednesday, March 4, 2015 11:02 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [opus] adaptive bandwidth<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_1_1425459539874_25057"><br><div id="yiv5797170385"><div id="yui_3_16_0_1_1425459539874_25059"><div dir="ltr" id="yui_3_16_0_1_1425459539874_25058">Thanks Dragos,<div id="yui_3_16_0_1_1425459539874_25060"><br clear="none"></div><div id="yui_3_16_0_1_1425459539874_25347">I assume I will be setting those parameters during initialization of encoder right?</div><div id="yui_3_16_0_1_1425459539874_25348">Question is, if connection gets too lossy, how will opus adapt to it? Can it automatically shift bitrate down to minimize impact?</div><div id="yui_3_16_0_1_1425459539874_25349">Mark from IRC suggests that the app has to be aware of the losses and change it on the fly.</div><div id="yui_3_16_0_1_1425459539874_25350">Has anybody on the list tried this?</div><div id="yui_3_16_0_1_1425459539874_25351"><br clear="none"></div></div><div class="yiv5797170385gmail_extra" id="yui_3_16_0_1_1425459539874_25352"><br clear="all"><div id="yui_3_16_0_1_1425459539874_25354"><div class="yiv5797170385gmail_signature" id="yui_3_16_0_1_1425459539874_25353">Kelvin Chua</div></div>
<br clear="none"><div class="qtdSeparateBR"><br><br></div><div class="yiv5797170385yqt8866817606" id="yiv5797170385yqt77453"><div class="yiv5797170385gmail_quote" id="yui_3_16_0_1_1425459539874_25375">On Wed, Mar 4, 2015 at 5:53 PM, Dragos Oancea <span dir="ltr">&lt;<a rel="nofollow" shape="rect" ymailto="mailto:droancea@yahoo.com" target="_blank" href="mailto:droancea@yahoo.com">droancea@yahoo.com</a>&gt;</span> wrote:<br clear="none"><blockquote class="yiv5797170385gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;" id="yui_3_16_0_1_1425459539874_25379"><div id="yui_3_16_0_1_1425459539874_25378"><div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" id="yui_3_16_0_1_1425459539874_25377"><div dir="ltr" id="yui_3_16_0_1_1425459539874_25376"><span>Hi Kelvin,</span></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25380"><span><br clear="none"></span></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25382"><span id="yui_3_16_0_1_1425459539874_25381">You can use something like :</span></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25384"><span id="yui_3_16_0_1_1425459539874_25383">opus_encoder_ctl(enc,OPUS_SET_BITRATE(bitrate));</span></div><div id="yui_3_16_0_1_1425459539874_25385">opus_encoder_ctl(enc,OPUS_SET_MAX_BANDWIDTH(bandpass));<br clear="none"></div><div dir="ltr" id="yui_3_16_0_1_1425459539874_25391">bandpass is the audio bandpass&nbsp;, eg: OPUS_BANDWIDTH_WIDEBAND .</div><div dir="ltr"><br clear="none"></div><div dir="ltr">You will need to calculate the codec bitrate from the available network bitrate (by taking into account the size of the IP+UDP+RTP headers which is 40 bytes ) .<br clear="none"></div><div dir="ltr">By default the audio bandwidth (bandpass) setting is OPUS_BANDWIDTH_FULLBAND , which will utilize more network bandwidth .</div><div dir="ltr"><br clear="none"></div><div><br clear="none"></div><div dir="ltr">Regards,</div><div dir="ltr">Dragos</div><div><br clear="none"></div>  <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div dir="ltr"> <hr size="1">  <font face="Arial"> <b><span style="font-weight:bold;">From:</span></b> Kelvin Chua &lt;<a rel="nofollow" shape="rect" ymailto="mailto:kelchy@gmail.com" target="_blank" href="mailto:kelchy@gmail.com">kelchy@gmail.com</a>&gt;<br clear="none"> <b><span style="font-weight:bold;">To:</span></b> Benjamin Schwartz &lt;<a rel="nofollow" shape="rect" ymailto="mailto:benjamin.m.schwartz@gmail.com" target="_blank" href="mailto:benjamin.m.schwartz@gmail.com">benjamin.m.schwartz@gmail.com</a>&gt; <br clear="none"><b><span style="font-weight:bold;">Cc:</span></b> <a rel="nofollow" shape="rect" ymailto="mailto:opus@xiph.org" target="_blank" href="mailto:opus@xiph.org">opus@xiph.org</a> <br clear="none"> <b><span style="font-weight:bold;">Sent:</span></b> Wednesday, March 4, 2015 2:27 AM<br clear="none"> <b><span style="font-weight:bold;">Subject:</span></b> Re: [opus] adaptive bandwidth<br clear="none"> </font> </div><div><div class="yiv5797170385h5"> <div><br clear="none"><div><div dir="ltr">I am using libopus for my implementation. I wonder if anybody in the list have any experience on how to make libopus dynamically adjust its bitrate?</div>
<div>On Mar 3, 2015 10:42 PM, "Benjamin Schwartz" &lt;<a rel="nofollow" shape="rect" ymailto="mailto:benjamin.m.schwartz@gmail.com" target="_blank" href="mailto:benjamin.m.schwartz@gmail.com">benjamin.m.schwartz@gmail.com</a>&gt; wrote:<br clear="none"><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr">It sounds like your software isn't adjusting the opus bitrate in response to network conditions.&nbsp; For example, many WebRTC implementations do not adjust the opus bitrate, because it is small in comparison to the video bitrate.&nbsp; However, opus itself does support continuously varying the bitrate over a wide range.</div>
<br clear="none"><div>On Tue, Mar 3, 2015, 12:58 AM&nbsp;Kelvin Chua &lt;<a rel="nofollow" shape="rect" ymailto="mailto:kelchy@gmail.com" target="_blank" href="mailto:kelchy@gmail.com">kelchy@gmail.com</a>&gt; wrote:<br clear="none"><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr"><div>Hi guys,</div><div><br clear="none"></div><div>I have been reading a lot about the "adaptiveness" of opus and i quote:</div><div><br clear="none"></div><div>... can still change, e.g. to adapt to changing network conditions. useinbandfec ...<br clear="none"></div><div><br clear="none"></div><div>can somebody please enlighten me on this "adaptiveness"?</div><div>whatever way I do our tests, it sticks to the same sampling rate and the same average bitrate, it would go up, down a bit but that's it.</div><div>When we get some network issues, bandwidth utilization stays the same.</div><div>Am I interpreting it incorrectly?</div><br clear="all"><div><div>Kelvin Chua</div></div>
</div>
______________________________<u></u>_________________<br clear="none">
opus mailing list<br clear="none">
<a rel="nofollow" shape="rect" ymailto="mailto:opus@xiph.org" target="_blank" href="mailto:opus@xiph.org">opus@xiph.org</a><br clear="none">
<a rel="nofollow" shape="rect" target="_blank" href="http://lists.xiph.org/mailman/listinfo/opus">http://lists.xiph.org/mailman/<u></u>listinfo/opus</a><br clear="none">
</blockquote></div>
</blockquote></div></div><br clear="none">_______________________________________________<br clear="none">opus mailing list<br clear="none"><a rel="nofollow" shape="rect" ymailto="mailto:opus@xiph.org" target="_blank" href="mailto:opus@xiph.org">opus@xiph.org</a><br clear="none"><a rel="nofollow" shape="rect" target="_blank" href="http://lists.xiph.org/mailman/listinfo/opus">http://lists.xiph.org/mailman/listinfo/opus</a><br clear="none"><br clear="none"><br clear="none"></div> </div></div></div> </div>  </div></div></blockquote></div></div><br clear="none"></div></div></div><br><br></div> </div> </div>  </div></body></html>