summaryrefslogtreecommitdiffstats
path: root/libAACdec/src/aacdec_drc_types.h
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2013-08-27 16:20:46 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2013-08-27 16:20:46 -0700
commitb9774f90651be61065ae40171fc321f6ced60e49 (patch)
tree77fe672840459d261fd7abeb08c001c85a9d4ddf /libAACdec/src/aacdec_drc_types.h
parent2ddc922da87bb675b8ab8c305566436e806df0d9 (diff)
downloadODR-AudioEnc-b9774f90651be61065ae40171fc321f6ced60e49.tar.gz
ODR-AudioEnc-b9774f90651be61065ae40171fc321f6ced60e49.tar.bz2
ODR-AudioEnc-b9774f90651be61065ae40171fc321f6ced60e49.zip
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
Diffstat (limited to 'libAACdec/src/aacdec_drc_types.h')
-rw-r--r--libAACdec/src/aacdec_drc_types.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/libAACdec/src/aacdec_drc_types.h b/libAACdec/src/aacdec_drc_types.h
index e7c6f1a..1b5cd76 100644
--- a/libAACdec/src/aacdec_drc_types.h
+++ b/libAACdec/src/aacdec_drc_types.h
@@ -132,8 +132,10 @@ typedef struct
typedef struct
{
- FIXP_DBL cut;
- FIXP_DBL boost;
+ FIXP_DBL cut; /* The attenuation scale factor currently used. */
+ FIXP_DBL usrCut; /* The latest attenuation scale factor set by user. */
+ FIXP_DBL boost; /* The boost scale factor currently used. */
+ FIXP_DBL usrBoost; /* The latest boost scale factor set by user. */
UINT expiryFrame;
SCHAR targetRefLevel;
@@ -154,6 +156,8 @@ typedef struct
USHORT numThreads; /* The number of DRC data threads extracted from the found payload elements */
SCHAR progRefLevel; /* Program reference level for all channels */
+ UINT prlExpiryCount; /* Counter that can be used to monitor the life time of the program reference level. */
+
UCHAR dvbAncDataAvailable; /* Flag that indicates whether DVB ancillary data is present or not */
UINT dvbAncDataPosition; /* Used to store the DVB ancillary data payload position in the bitstream (only one per frame) */
UINT drcPayloadPosition[MAX_DRC_THREADS]; /* Used to store the DRC payload positions in the bitstream */