Make OPUS_SET_GAIN survive decode reset.
authorGregory Maxwell <greg@xiph.org>
Wed, 11 Jul 2012 06:33:55 +0000 (02:33 -0400)
committerGregory Maxwell <greg@xiph.org>
Wed, 11 Jul 2012 06:33:55 +0000 (02:33 -0400)
This is the less-surprising behavior and will hopefully
result in fewer corner case bugs (e.g. losing gain
after seeking). This commit also updates the documentation.

include/opus_defines.h
src/opus_decoder.c

index de04ec5..0b82817 100644 (file)
@@ -450,7 +450,8 @@ extern "C" {
 /** Configures decoder gain adjustment.
   * Scales the decoded output by a factor specified in Q8 dB units.
   * This has a maximum range of -32768 to 32767 inclusive, and returns
-  * OPUS_BAD_ARG otherwise.
+  * OPUS_BAD_ARG otherwise. The default is zero indicating no adjustment.
+  * This setting survives decoder reset.
   *
   * gain = pow(10, x/(20.0*256))
   *
index 2ce4c95..58f44ac 100644 (file)
@@ -53,6 +53,7 @@ struct OpusDecoder {
    int          channels;
    opus_int32   Fs;          /** Sampling rate (at the API level) */
    silk_DecControlStruct DecControl;
+   int          decode_gain;
 
    /* Everything beyond this point gets cleared on a reset */
 #define OPUS_DECODER_RESET_START stream_channels
@@ -63,7 +64,6 @@ struct OpusDecoder {
    int          prev_mode;
    int          frame_size;
    int          prev_redundancy;
-   int          decode_gain;
 
    opus_uint32  rangeFinal;
 };