summaryrefslogtreecommitdiffstats
path: root/libSBRenc/src/sbr.h
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2013-08-29 12:24:04 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2013-08-29 12:24:04 -0700
commit3aec97e388e29a1d03f0197b27b893bc6aaf8ac3 (patch)
tree0cbc01e83d71aec25704fd9a6dd80b339d06c27a /libSBRenc/src/sbr.h
parent7ad97579f8ccb843afdb5b184c4b209253839fe3 (diff)
downloadfdk-aac-3aec97e388e29a1d03f0197b27b893bc6aaf8ac3.tar.gz
fdk-aac-3aec97e388e29a1d03f0197b27b893bc6aaf8ac3.tar.bz2
fdk-aac-3aec97e388e29a1d03f0197b27b893bc6aaf8ac3.zip
Encoder downsampled SBR
* AAC-Encoder - Introduce optional AACENC_SBR_RATIO encoder API parameter to configure dualrate or downsampled SBR explicitely. ELD makes use of downsampled SBR in default configuration. Modified file(s): documentation\aacEncoder.pdf libAACenc\include\aacenc_lib.h libAACenc\src\aacenc.h libAACenc\src\aacenc_lib.cpp * SBR-Encoder - Implement downsampled SBR feature. - Revise sbr tuning parameter selection. Modified file(s): libSBRenc\include\sbr_encoder.h libSBRenc\src\bit_sbr.h libSBRenc\src\env_est.cpp libSBRenc\src\mh_det.cpp libSBRenc\src\nf_est.cpp libSBRenc\src\ps_main.cpp libSBRenc\src\sbr.h libSBRenc\src\sbr_def.h libSBRenc\src\sbr_encoder.cpp libSBRenc\src\sbr_rom.cpp libSBRenc\src\sbr_rom.h libSBRenc\src\sbrenc_freq_sca.cpp libSBRenc\src\sbrenc_freq_sca.h libSBRenc\src\ton_corr.cpp Bug 9428126 Change-Id: I731720a10829272acaaf70b84525df00a09ff3d2
Diffstat (limited to 'libSBRenc/src/sbr.h')
-rw-r--r--libSBRenc/src/sbr.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/libSBRenc/src/sbr.h b/libSBRenc/src/sbr.h
index eed847f..cfc595e 100644
--- a/libSBRenc/src/sbr.h
+++ b/libSBRenc/src/sbr.h
@@ -105,7 +105,8 @@ amm-info@iis.fraunhofer.de
/* SBR bitstream delay */
#define DELAY_FRAMES 2
-typedef struct {
+
+typedef struct SBR_CHANNEL {
struct ENV_CHANNEL hEnvChannel;
//INT_PCM *pDSOutBuffer; /**< Pointer to downsampled audio output of SBR encoder */
DOWNSAMPLER downSampler;
@@ -113,7 +114,7 @@ typedef struct {
} SBR_CHANNEL;
typedef SBR_CHANNEL* HANDLE_SBR_CHANNEL;
-typedef struct {
+typedef struct SBR_ELEMENT {
HANDLE_SBR_CHANNEL sbrChannel[2];
QMF_FILTER_BANK *hQmfAnalysis[2];
SBR_CONFIG_DATA sbrConfigData;
@@ -126,10 +127,9 @@ typedef struct {
UCHAR payloadDelayLine[1+DELAY_FRAMES][MAX_PAYLOAD_SIZE];
UINT payloadDelayLineSize[1+DELAY_FRAMES]; /* Sizes in bits */
-} SBR_ELEMENT;
-typedef SBR_ELEMENT* HANDLE_SBR_ELEMENT;
+} SBR_ELEMENT, *HANDLE_SBR_ELEMENT;
-struct SBR_ENCODER
+typedef struct SBR_ENCODER
{
HANDLE_SBR_ELEMENT sbrElement[(6)];
HANDLE_SBR_CHANNEL pSbrChannel[(6)];
@@ -142,6 +142,7 @@ struct SBR_ENCODER
int bufferOffset; /* Offset for SBR parameter extraction in time domain input buffer. */
int downsampledOffset; /* Offset of downsampled/mixed output for core encoder. */
int downmixSize; /* Size in samples of downsampled/mixed output for core encoder. */
+ INT downSampleFactor; /* Sampling rate relation between the SBR and the core encoder. */
int fTimeDomainDownsampling; /* Flag signalling time domain downsampling instead of QMF downsampling. */
int nBitstrDelay; /* Amount of SBR frames to be delayed in bitstream domain. */
INT estimateBitrate; /* estimate bitrate of SBR encoder */
@@ -158,7 +159,8 @@ struct SBR_ENCODER
INT maxChannels;
INT supportPS;
-} ;
+
+} SBR_ENCODER;
#endif /* __SBR_H */