shithub: opus

Download patch

ref: 03105f5b70f7597f36f4644f36a921317b859082
parent: 9881484dbde25707b93d988cff6316d2f375727a
author: Gregory Maxwell <[email protected]>
date: Tue Jul 10 22:33:55 EDT 2012

Make OPUS_SET_GAIN survive decode reset.

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.

--- a/include/opus_defines.h
+++ b/include/opus_defines.h
@@ -450,7 +450,8 @@
 /** 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))
   *
--- a/src/opus_decoder.c
+++ b/src/opus_decoder.c
@@ -53,6 +53,7 @@
    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 @@
    int          prev_mode;
    int          frame_size;
    int          prev_redundancy;
-   int          decode_gain;
 
    opus_uint32  rangeFinal;
 };