From b9774f90651be61065ae40171fc321f6ced60e49 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Tue, 27 Aug 2013 16:20:46 -0700 Subject: Decode dynamic range control improvements * AAC-Decoder - Only set the program reference level if it has changed compared to the previous value. This allows setting it on a frame-by-frame basis without limitations. Modified file(s): libAACdec/src/aacdec_drc.cpp libAACdec/src/aacdec_drc.h - Add expiry counter for the program reference level. Modified file(s): libAACdec/src/aacdec_drc.cpp libAACdec/src/aacdec_drc_types.h - Disable scaling of light compression gain values when heavy compression mode is enabled to have the full light compression as fallback if no heavy values are available. Modified file(s): libAACdec/src/aacdec_drc.cpp libAACdec/src/aacdecoder_lib.cpp libAACdec/src/aacdec_drc_types.h - Change initialization and channel disabling to improve start-up behavior in SBR decoder. Modified file(s): libSBRdec/src/sbrdecoder.cpp libSBRdec/src/sbrdec_drc.cpp Bug 9428126 Change-Id: Ie1d3949c53910506da2547d32fe3bf6ee7606eb4 --- libSBRdec/src/sbrdec_drc.cpp | 8 +++----- libSBRdec/src/sbrdecoder.cpp | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) (limited to 'libSBRdec') diff --git a/libSBRdec/src/sbrdec_drc.cpp b/libSBRdec/src/sbrdec_drc.cpp index af71c41..a834c0b 100644 --- a/libSBRdec/src/sbrdec_drc.cpp +++ b/libSBRdec/src/sbrdec_drc.cpp @@ -127,8 +127,8 @@ void sbrDecoder_drcInitChannel ( hDrcData->currFact_exp = 1; hDrcData->nextFact_exp = 1; - hDrcData->numBandsCurr = 0; - hDrcData->numBandsNext = 0; + hDrcData->numBandsCurr = 1; + hDrcData->numBandsNext = 1; hDrcData->winSequenceCurr = 0; hDrcData->winSequenceNext = 0; @@ -490,9 +490,7 @@ void sbrDecoder_drcApply ( if (hDrcData == NULL) { return; } - if ( (hDrcData->enable == 0) - || ((hDrcData->numBandsCurr == 0) && (hDrcData->numBandsNext == 0)) - ) { + if (hDrcData->enable == 0) { return; /* Avoid changing the scaleFactor even though the processing is disabled. */ } diff --git a/libSBRdec/src/sbrdecoder.cpp b/libSBRdec/src/sbrdecoder.cpp index a0668bd..ecddec3 100644 --- a/libSBRdec/src/sbrdecoder.cpp +++ b/libSBRdec/src/sbrdecoder.cpp @@ -137,7 +137,7 @@ amm-info@iis.fraunhofer.de /* Decoder library info */ #define SBRDECODER_LIB_VL0 2 #define SBRDECODER_LIB_VL1 2 -#define SBRDECODER_LIB_VL2 1 +#define SBRDECODER_LIB_VL2 2 #define SBRDECODER_LIB_TITLE "SBR Decoder" #define SBRDECODER_LIB_BUILD_DATE __DATE__ #define SBRDECODER_LIB_BUILD_TIME __TIME__ @@ -878,7 +878,7 @@ void sbrDecoder_drcDisable ( HANDLE_SBRDECODER self, pSbrDrcChannelData = sbrDecoder_drcGetChannel( self, ch ); if ( pSbrDrcChannelData != NULL ) { - pSbrDrcChannelData->enable = 0; + sbrDecoder_drcInitChannel( pSbrDrcChannelData ); } } -- cgit v1.2.3