shithub: opus

Download patch

ref: 287cb030ab8a59dcecbb7ab8ea689f6dd5eb38b8
parent: ed7283089cd1b6e8e3913bcfa310647a7797c288
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Thu May 24 09:15:39 EDT 2018

Switch from narrowband to wideband at 9 kb/s, don't use mediumband

--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -123,26 +123,26 @@
    middle (memoriless) threshold. The second column is the hysteresis
    (difference with the middle) */
 static const opus_int32 mono_voice_bandwidth_thresholds[8] = {
-        10000, 1000, /* NB<->MB */
-        11000, 1000, /* MB<->WB */
+         9000,  700, /* NB<->MB */
+         9000,  700, /* MB<->WB */
         13500, 1000, /* WB<->SWB */
         14000, 2000, /* SWB<->FB */
 };
 static const opus_int32 mono_music_bandwidth_thresholds[8] = {
-         9000, 1000, /* NB<->MB */
-        10000, 1000, /* MB<->WB */
+         9000,  700, /* NB<->MB */
+         9000,  700, /* MB<->WB */
         11000, 1000, /* WB<->SWB */
         12000, 2000, /* SWB<->FB */
 };
 static const opus_int32 stereo_voice_bandwidth_thresholds[8] = {
-        10000, 1000, /* NB<->MB */
-        11000, 1000, /* MB<->WB */
+         9000,  700, /* NB<->MB */
+         9000,  700, /* MB<->WB */
         13500, 1000, /* WB<->SWB */
         14000, 2000, /* SWB<->FB */
 };
 static const opus_int32 stereo_music_bandwidth_thresholds[8] = {
-         9000, 1000, /* NB<->MB */
-        10000, 1000, /* MB<->WB */
+         9000,  700, /* NB<->MB */
+         9000,  700, /* MB<->WB */
         11000, 1000, /* WB<->SWB */
         12000, 2000, /* SWB<->FB */
 };
@@ -1487,6 +1487,10 @@
             if (equiv_rate >= threshold)
                 break;
         } while (--bandwidth>OPUS_BANDWIDTH_NARROWBAND);
+        /* We don't use mediumband anymore, except when explicitly requested or during
+           mode transitions. */
+        if (bandwidth == OPUS_BANDWIDTH_MEDIUMBAND)
+           bandwidth = OPUS_BANDWIDTH_WIDEBAND;
         st->bandwidth = st->auto_bandwidth = bandwidth;
         /* Prevents any transition to SWB/FB until the SILK layer has fully
            switched to WB mode and turned the variable LP filter off */