From 03105f5b70f7597f36f4644f36a921317b859082 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Wed, 11 Jul 2012 02:33:55 -0400 Subject: [PATCH] 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. --- include/opus_defines.h | 3 ++- src/opus_decoder.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/include/opus_defines.h b/include/opus_defines.h index de04ec5c..0b828179 100644 --- a/include/opus_defines.h +++ b/include/opus_defines.h @@ -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)) * diff --git a/src/opus_decoder.c b/src/opus_decoder.c index 2ce4c95a..58f44ac7 100644 --- a/src/opus_decoder.c +++ b/src/opus_decoder.c @@ -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; };