summaryrefslogtreecommitdiff
path: root/silk/control.h
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2011-10-21 23:21:34 -0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2011-10-21 23:21:34 -0400
commit3b2aee062d08fc72f12a4379ce2d6e2b444d5021 (patch)
tree5e470d24cb1f00a2e764823fd404220f55b0ff80 /silk/control.h
parente53ebd696a34e2a74b1ccb5132a946b7c965f448 (diff)
downloadopus-3b2aee062d08fc72f12a4379ce2d6e2b444d5021.tar.gz
Implements glitchless switching between SILK bandwidths
Only encoder changes were necessary because this uses the same "redundant frames" mechanism as SILK<->CELT switching. This also fixes a regression introduced in 78291b27 that was causing the encoder to go back and forth between bandwidths when SILK wasn't ready to change.
Diffstat (limited to 'silk/control.h')
-rw-r--r--silk/control.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/silk/control.h b/silk/control.h
index c2f906b8..47afecf6 100644
--- a/silk/control.h
+++ b/silk/control.h
@@ -89,6 +89,9 @@ typedef struct {
/* I: Causes a smooth downmix to mono */
opus_int toMono;
+ /* I: Opus encoder is allowing us to switch bandwidth */
+ opus_int opusCanSwitch;
+
/* O: Internal sampling rate used, in Hertz; 8000/12000/16000 */
opus_int32 internalSampleRate;
@@ -100,6 +103,10 @@ typedef struct {
/* O: Stereo width */
opus_int stereoWidth_Q14;
+
+ /* O: Tells the Opus encoder we're ready to switch */
+ opus_int switchReady;
+
} silk_EncControlStruct;
/**************************************************************************/