initial commit from tarball
This commit is contained in:
1210
patches/0001-move_headers_at_one_place.patch
Normal file
1210
patches/0001-move_headers_at_one_place.patch
Normal file
File diff suppressed because it is too large
Load Diff
459
patches/0002-cfftn-add-fftw3f.patch
Normal file
459
patches/0002-cfftn-add-fftw3f.patch
Normal file
@@ -0,0 +1,459 @@
|
||||
diff -Nupr src.p1/cfftn.c src.p2/cfftn.c
|
||||
--- src.p1/cfftn.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/cfftn.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -1,10 +1,19 @@
|
||||
/*
|
||||
Complex FFT core for transforms
|
||||
*/
|
||||
+#include "cfftn.h"
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+#include "config.h"
|
||||
+#endif
|
||||
+
|
||||
+#ifdef _FFTW3
|
||||
+#include <fftw3.h>
|
||||
+#else
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
-#include "cfftn.h"
|
||||
|
||||
/* the 3GPP instrumenting tool */
|
||||
|
||||
@@ -17,8 +26,29 @@
|
||||
#define SIN60 0.86602540378443865
|
||||
#define COS72 0.30901699437494742
|
||||
#define SIN72 0.95105651629515357
|
||||
+#endif
|
||||
+
|
||||
+#ifdef _FFTW3
|
||||
+void init_plans(FFTWFContext_t *ctx)
|
||||
+{
|
||||
+ fftwf_complex fft_data;
|
||||
|
||||
+ ctx->plan4 = fftwf_plan_dft_1d(4, &fft_data, &fft_data, FFTW_BACKWARD, FFTW_ESTIMATE);
|
||||
+ ctx->plan8 = fftwf_plan_dft_1d(8, &fft_data, &fft_data, FFTW_BACKWARD, FFTW_ESTIMATE);
|
||||
+ ctx->plan64 = fftwf_plan_dft_1d(64, &fft_data, &fft_data, FFTW_FORWARD, FFTW_ESTIMATE);
|
||||
+ ctx->plan512 = fftwf_plan_dft_1d(512, &fft_data, &fft_data, FFTW_FORWARD, FFTW_ESTIMATE);
|
||||
+}
|
||||
|
||||
+void destroy_plans(FFTWFContext_t *ctx)
|
||||
+{
|
||||
+ fftwf_destroy_plan(ctx->plan512);
|
||||
+ fftwf_destroy_plan(ctx->plan64);
|
||||
+ fftwf_destroy_plan(ctx->plan8);
|
||||
+ fftwf_destroy_plan(ctx->plan4);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+#ifndef _FFTW3
|
||||
int cfftn(float Re[],
|
||||
float Im[],
|
||||
int nTotal,
|
||||
@@ -1336,40 +1366,36 @@ Permute_Single_Label:
|
||||
|
||||
return 1;
|
||||
}
|
||||
+#endif
|
||||
|
||||
/*
|
||||
computes complex fourier transform of length len
|
||||
|
||||
returns status
|
||||
*/
|
||||
-int CFFTN(float *afftData,int len, int isign)
|
||||
+int CFFTN(FFTWFContext_t *ctx, float *afftData,int len, int isign)
|
||||
{
|
||||
- return(cfftn(afftData,afftData+1,len,len,len,2*isign));
|
||||
-}
|
||||
-
|
||||
-/*
|
||||
- computes complex fourier transform of length len
|
||||
-
|
||||
- returns status
|
||||
-*/
|
||||
-int CFFTNRI(float *afftDataReal,float *afftDataImag,int len, int isign)
|
||||
-{
|
||||
- return(cfftn(afftDataReal,afftDataImag,len,len,len,isign));
|
||||
-}
|
||||
+#ifdef _FFTW3
|
||||
+ switch(len) {
|
||||
+ case 4:
|
||||
+ fftwf_execute_dft(ctx->plan4, (fftwf_complex*)afftData, (fftwf_complex*)afftData);
|
||||
+ break;
|
||||
+ case 8:
|
||||
+ fftwf_execute_dft(ctx->plan8, (fftwf_complex*)afftData, (fftwf_complex*)afftData);
|
||||
+ break;
|
||||
+ case 64:
|
||||
+ fftwf_execute_dft(ctx->plan64, (fftwf_complex*)afftData, (fftwf_complex*)afftData);
|
||||
+ break;
|
||||
+ case 512:
|
||||
+ fftwf_execute_dft(ctx->plan512, (fftwf_complex*)afftData, (fftwf_complex*)afftData);
|
||||
+ break;
|
||||
+ default:
|
||||
+ printf("non standard len for FFT: %d\nWill now die", len);
|
||||
+ exit(1);
|
||||
+ }
|
||||
|
||||
-/*
|
||||
- computes complex fourier transform of length len
|
||||
-
|
||||
- returns status
|
||||
-**/
|
||||
-int CFFTN_NI(float *InRealData,
|
||||
- float *InImagData,
|
||||
- float *OutRealData,
|
||||
- float *OutImagData,
|
||||
- int len, int isign)
|
||||
-{
|
||||
- memcpy ( OutRealData, InRealData, len*sizeof(float) ) ;
|
||||
- memcpy ( OutImagData, InImagData, len*sizeof(float) ) ;
|
||||
-
|
||||
- return cfftn(OutRealData,OutImagData,len,len,len,isign);
|
||||
+ return 1;
|
||||
+#else
|
||||
+ return(cfftn(afftData,afftData+1,len,len,len,2*isign));
|
||||
+#endif
|
||||
}
|
||||
diff -Nupr src.p1/cfftn.h src.p2/cfftn.h
|
||||
--- src.p1/cfftn.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/cfftn.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -5,30 +5,24 @@
|
||||
#ifndef __cfftn_h
|
||||
#define __cfftn_h
|
||||
|
||||
-void forwardFFT( float *data, int length );
|
||||
-
|
||||
-int cfftn(float Re[],
|
||||
- float Im[],
|
||||
- int nTotal,
|
||||
- int nPass,
|
||||
- int nSpan,
|
||||
- int iSign);
|
||||
-
|
||||
-int CFFTN(float *afftData,int len, int isign);
|
||||
-int CFFTNRI(float *afftDataReal,float *afftDataImag,int len, int isign);
|
||||
-
|
||||
-int CFFTN_NI(float *InRealData,
|
||||
- float *InImagData,
|
||||
- float *OutRealData,
|
||||
- float *OurImagData,
|
||||
- int len, int isign);
|
||||
-
|
||||
-#ifndef min
|
||||
-#define min(a, b) ((a) < (b) ? (a) : (b))
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+#include "config.h"
|
||||
#endif
|
||||
-#ifndef max
|
||||
-#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
+
|
||||
+#ifdef _FFTW3
|
||||
+#include <fftw3.h>
|
||||
+typedef struct {
|
||||
+ fftwf_plan plan4, plan8, plan64, plan512;
|
||||
+} FFTWFContext_t;
|
||||
+void init_plans(FFTWFContext_t *ctx);
|
||||
+void destroy_plans(FFTWFContext_t *ctx);
|
||||
+#else
|
||||
+#define init_plans(c);
|
||||
+#define destroy_plans(c);
|
||||
+typedef int FFTWFContext_t;
|
||||
#endif
|
||||
|
||||
|
||||
+int CFFTN(FFTWFContext_t *ctx, float *afftData,int len, int isign);
|
||||
+
|
||||
#endif
|
||||
diff -Nupr src.p1/env_est.c src.p2/env_est.c
|
||||
--- src.p1/env_est.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/env_est.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -582,7 +582,8 @@ calculateSbrEnvelope (float **YBufferLef
|
||||
|
||||
****************************************************************************/
|
||||
void
|
||||
-extractSbrEnvelope (float *timeInPtr,
|
||||
+extractSbrEnvelope (FFTWFContext_t *fftctx,
|
||||
+ float *timeInPtr,
|
||||
float *pCoreBuffer,
|
||||
unsigned int timeInStride,
|
||||
HANDLE_SBR_CONFIG_DATA h_con,
|
||||
@@ -670,7 +671,7 @@ extractSbrEnvelope (float *timeInPtr,
|
||||
if (hPsEnc && hSynthesisQmfBank) {
|
||||
|
||||
|
||||
- EncodePsFrame(hPsEnc,
|
||||
+ EncodePsFrame(fftctx, hPsEnc,
|
||||
h_envChan[0]->sbrExtractEnvelope.iBuffer,
|
||||
h_envChan[0]->sbrExtractEnvelope.rBuffer,
|
||||
h_envChan[1]->sbrExtractEnvelope.iBuffer,
|
||||
diff -Nupr src.p1/env_est.h src.p2/env_est.h
|
||||
--- src.p1/env_est.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/env_est.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -51,7 +51,8 @@ struct PS_ENC;
|
||||
|
||||
|
||||
void
|
||||
-extractSbrEnvelope(float *timeInPtr,
|
||||
+extractSbrEnvelope(FFTWFContext_t *fftctx,
|
||||
+ float *timeInPtr,
|
||||
float *pCoreBuffer,
|
||||
unsigned int timeInStride,
|
||||
struct SBR_CONFIG_DATA *h_con,
|
||||
diff -Nupr src.p1/hybrid.c src.p2/hybrid.c
|
||||
--- src.p1/hybrid.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/hybrid.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -10,7 +10,8 @@
|
||||
|
||||
/* the 3GPP instrumenting tool */
|
||||
|
||||
-static void fourChannelFiltering( const float *pQmfReal,
|
||||
+static void fourChannelFiltering( FFTWFContext_t *fftctx,
|
||||
+ const float *pQmfReal,
|
||||
const float *pQmfImag,
|
||||
float **mHybridReal,
|
||||
float **mHybridImag,
|
||||
@@ -77,7 +78,7 @@ static void fourChannelFiltering( const
|
||||
cum[3] = (real + imag ) * 0.70710678118655f;
|
||||
|
||||
|
||||
- CFFTN(cum, 4, 1);
|
||||
+ CFFTN(fftctx, cum, 4, 1);
|
||||
|
||||
|
||||
for(n = 0; n < 4; n++) {
|
||||
@@ -90,7 +91,8 @@ static void fourChannelFiltering( const
|
||||
|
||||
}
|
||||
|
||||
-static void eightChannelFiltering( const float *pQmfReal,
|
||||
+static void eightChannelFiltering( FFTWFContext_t *fftctx,
|
||||
+ const float *pQmfReal,
|
||||
const float *pQmfImag,
|
||||
float **mHybridReal,
|
||||
float **mHybridImag)
|
||||
@@ -196,7 +198,7 @@ static void eightChannelFiltering( const
|
||||
cum[3] = real * 0.38268343236509f + imag * 0.92387953251129f;
|
||||
|
||||
|
||||
- CFFTN(cum, 8, 1);
|
||||
+ CFFTN(fftctx, cum, 8, 1);
|
||||
|
||||
|
||||
for(n = 0; n < 8; n++) {
|
||||
@@ -219,7 +221,8 @@ static void eightChannelFiltering( const
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void
|
||||
-HybridAnalysis ( const float **mQmfReal,
|
||||
+HybridAnalysis ( FFTWFContext_t *fftctx,
|
||||
+ const float **mQmfReal,
|
||||
const float **mQmfImag,
|
||||
float **mHybridReal,
|
||||
float **mHybridImag,
|
||||
@@ -270,7 +273,8 @@ HybridAnalysis ( const float **mQmfReal,
|
||||
|
||||
/* filtering. */
|
||||
|
||||
- fourChannelFiltering( hHybrid->pWorkReal,
|
||||
+ fourChannelFiltering( fftctx,
|
||||
+ hHybrid->pWorkReal,
|
||||
hHybrid->pWorkImag,
|
||||
mHybridReal,
|
||||
mHybridImag,
|
||||
@@ -282,7 +286,8 @@ HybridAnalysis ( const float **mQmfReal,
|
||||
|
||||
/* filtering. */
|
||||
|
||||
- eightChannelFiltering( hHybrid->pWorkReal,
|
||||
+ eightChannelFiltering( fftctx,
|
||||
+ hHybrid->pWorkReal,
|
||||
hHybrid->pWorkImag,
|
||||
mHybridReal,
|
||||
mHybridImag);
|
||||
diff -Nupr src.p1/hybrid.h src.p2/hybrid.h
|
||||
--- src.p1/hybrid.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/hybrid.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -31,7 +31,8 @@ typedef struct
|
||||
typedef HYBRID *HANDLE_HYBRID;
|
||||
|
||||
void
|
||||
-HybridAnalysis ( const float **mQmfReal,
|
||||
+HybridAnalysis ( FFTWFContext_t *fftctx,
|
||||
+ const float **mQmfReal,
|
||||
const float **mQmfImag,
|
||||
float **mHybridReal,
|
||||
float **mHybridImag,
|
||||
diff -Nupr src.p1/ps_enc.c src.p2/ps_enc.c
|
||||
--- src.p1/ps_enc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/ps_enc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -303,7 +303,8 @@ DeletePsEnc(HANDLE_PS_ENC *h_ps_e)
|
||||
|
||||
****************************************************************************/
|
||||
void
|
||||
-EncodePsFrame(HANDLE_PS_ENC pms,
|
||||
+EncodePsFrame(FFTWFContext_t *fftctx,
|
||||
+ HANDLE_PS_ENC pms,
|
||||
float **iBufferLeft,
|
||||
float **rBufferLeft,
|
||||
float **iBufferRight,
|
||||
@@ -322,14 +323,16 @@ EncodePsFrame(HANDLE_PS_ENC pms,
|
||||
|
||||
|
||||
|
||||
- HybridAnalysis ( (const float**) rBufferLeft,
|
||||
+ HybridAnalysis ( fftctx,
|
||||
+ (const float**) rBufferLeft,
|
||||
(const float**) iBufferLeft,
|
||||
pms->mHybridRealLeft,
|
||||
pms->mHybridImagLeft,
|
||||
pms->hHybridLeft);
|
||||
|
||||
|
||||
- HybridAnalysis ( (const float**) rBufferRight,
|
||||
+ HybridAnalysis ( fftctx,
|
||||
+ (const float**) rBufferRight,
|
||||
(const float**) iBufferRight,
|
||||
pms->mHybridRealRight,
|
||||
pms->mHybridImagRight,
|
||||
diff -Nupr src.p1/ps_enc.h src.p2/ps_enc.h
|
||||
--- src.p1/ps_enc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/ps_enc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -93,7 +93,8 @@ DeletePsEnc(HANDLE_PS_ENC *h_ps_e);
|
||||
|
||||
|
||||
void
|
||||
-EncodePsFrame(HANDLE_PS_ENC h_ps_e,
|
||||
+EncodePsFrame(FFTWFContext_t *fftctx,
|
||||
+ HANDLE_PS_ENC h_ps_e,
|
||||
float **iBufferLeft,
|
||||
float **rBufferLeft,
|
||||
float **iBufferRight,
|
||||
diff -Nupr src.p1/psy_main.c src.p2/psy_main.c
|
||||
--- src.p1/psy_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/psy_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -230,7 +230,8 @@ int psyMainInit(PSY_KERNEL *hPsy,
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
-int psyMain(int timeInStride,
|
||||
+int psyMain(FFTWFContext_t *fftctx,
|
||||
+ int timeInStride,
|
||||
ELEMENT_INFO *elemInfo,
|
||||
float *timeSignal,
|
||||
PSY_DATA psyData[MAX_CHANNELS],
|
||||
@@ -285,7 +286,8 @@ int psyMain(int timeInStride,
|
||||
if(psyData[ch].blockSwitchingControl.windowSequence != SHORT_WINDOW){
|
||||
|
||||
|
||||
- Transform_Real( psyData[ch].mdctDelayBuffer,
|
||||
+ Transform_Real( fftctx,
|
||||
+ psyData[ch].mdctDelayBuffer,
|
||||
timeSignal+elemInfo->ChannelIndex[ch],
|
||||
timeInStride,
|
||||
psyData[ch].mdctSpectrum,
|
||||
@@ -294,7 +296,8 @@ int psyMain(int timeInStride,
|
||||
else {
|
||||
|
||||
|
||||
- Transform_Real( psyData[ch].mdctDelayBuffer,
|
||||
+ Transform_Real( fftctx,
|
||||
+ psyData[ch].mdctDelayBuffer,
|
||||
timeSignal+elemInfo->ChannelIndex[ch],
|
||||
timeInStride,
|
||||
psyData[ch].mdctSpectrum,
|
||||
diff -Nupr src.p1/psy_main.h src.p2/psy_main.h
|
||||
--- src.p1/psy_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/psy_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -30,7 +30,8 @@ int psyMainInit( PSY_KERNEL *hPsy,
|
||||
int bandwidth);
|
||||
|
||||
|
||||
-int psyMain(int nChannels, /*! total number of channels */
|
||||
+int psyMain(FFTWFContext_t *fftctx,
|
||||
+ int nChannels, /*! total number of channels */
|
||||
ELEMENT_INFO *elemInfo,
|
||||
float *timeSignal, /*! interleaved time signal */
|
||||
PSY_DATA psyData[MAX_CHANNELS],
|
||||
diff -Nupr src.p1/transform.c src.p2/transform.c
|
||||
--- src.p1/transform.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/transform.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -111,7 +111,8 @@ static void postModulationDCT(float *x,i
|
||||
}
|
||||
|
||||
|
||||
-static void mdct(float *dctdata,
|
||||
+static void mdct(FFTWFContext_t *fftctx,
|
||||
+ float *dctdata,
|
||||
const float *trigData,
|
||||
const float *sineWindow,
|
||||
int n,
|
||||
@@ -124,7 +125,7 @@ static void mdct(float *dctdata,
|
||||
preModulationDCT(dctdata,n,sineWindow);
|
||||
|
||||
|
||||
- CFFTN(dctdata,n/2,-1);
|
||||
+ CFFTN(fftctx, dctdata,n/2,-1);
|
||||
|
||||
assert (LD_FFT_TWIDDLE_TABLE_SIZE >= ld_n-1);
|
||||
|
||||
@@ -172,7 +173,7 @@ static void shiftMdctDelayBuffer(
|
||||
|
||||
}
|
||||
|
||||
-int Transform_Real(float *mdctDelayBuffer,float *timeSignal,int chIncrement,float *realOut,int blockType)
|
||||
+int Transform_Real(FFTWFContext_t *fftctx, float *mdctDelayBuffer,float *timeSignal,int chIncrement,float *realOut,int blockType)
|
||||
{
|
||||
int i,w;
|
||||
float timeSignalSample;
|
||||
@@ -245,7 +246,7 @@ int Transform_Real(float *mdctDelayBuffe
|
||||
}
|
||||
|
||||
|
||||
- mdct(dctIn, fftTwiddleTab, LongWindowSine, FRAME_LEN_LONG, 10);
|
||||
+ mdct(fftctx, dctIn, fftTwiddleTab, LongWindowSine, FRAME_LEN_LONG, 10);
|
||||
|
||||
break;
|
||||
|
||||
@@ -323,7 +324,7 @@ int Transform_Real(float *mdctDelayBuffe
|
||||
}
|
||||
|
||||
|
||||
- mdct(dctIn, fftTwiddleTab, LongWindowSine, FRAME_LEN_LONG, 10);
|
||||
+ mdct(fftctx, dctIn, fftTwiddleTab, LongWindowSine, FRAME_LEN_LONG, 10);
|
||||
|
||||
break;
|
||||
|
||||
@@ -402,7 +403,7 @@ int Transform_Real(float *mdctDelayBuffe
|
||||
}
|
||||
|
||||
|
||||
- mdct(dctIn, fftTwiddleTab, LongWindowSine, FRAME_LEN_LONG, 10);
|
||||
+ mdct(fftctx, dctIn, fftTwiddleTab, LongWindowSine, FRAME_LEN_LONG, 10);
|
||||
|
||||
break;
|
||||
|
||||
@@ -458,7 +459,7 @@ int Transform_Real(float *mdctDelayBuffe
|
||||
}
|
||||
|
||||
|
||||
- mdct(dctIn, fftTwiddleTab, ShortWindowSine, FRAME_LEN_SHORT, 7);
|
||||
+ mdct(fftctx, dctIn, fftTwiddleTab, ShortWindowSine, FRAME_LEN_SHORT, 7);
|
||||
}
|
||||
|
||||
|
||||
diff -Nupr src.p1/transform.h src.p2/transform.h
|
||||
--- src.p1/transform.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p2/transform.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -4,7 +4,8 @@
|
||||
#ifndef __TRANSFORM_H__
|
||||
#define __TRANSFORM_H__
|
||||
|
||||
-int Transform_Real(float *mdctDelayBuffer,
|
||||
+int Transform_Real(FFTWFContext_t *fftctx,
|
||||
+ float *mdctDelayBuffer,
|
||||
float *timeSignal,
|
||||
int chIncrement,
|
||||
float *realOut,
|
||||
94
patches/0003-faac_compatible.patch
Normal file
94
patches/0003-faac_compatible.patch
Normal file
@@ -0,0 +1,94 @@
|
||||
diff -Nupr src.p2/aacenc.c src.p3/aacenc.c
|
||||
--- src.p2/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p3/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -402,7 +402,7 @@ int AacEncEncode(struct AAC_ENCODER *aac
|
||||
&aacEnc->qcOut);
|
||||
|
||||
|
||||
- WriteBitstream( aacEnc->hBitStream,
|
||||
+ WriteBitstreamData( aacEnc->hBitStream,
|
||||
*elInfo,
|
||||
&aacEnc->qcOut,
|
||||
&aacEnc->psyOut,
|
||||
diff -Nupr src.p2/bitenc.c src.p3/bitenc.c
|
||||
--- src.p2/bitenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p3/bitenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -812,14 +812,14 @@ static void writeFillElement( const unsi
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
- functionname: WriteBitStream
|
||||
+ functionname: WriteBitStreamData
|
||||
description: main function of write process
|
||||
returns:
|
||||
input:
|
||||
output:
|
||||
|
||||
*****************************************************************************/
|
||||
-int WriteBitstream (HANDLE_BIT_BUF hBitStream,
|
||||
+int WriteBitstreamData (HANDLE_BIT_BUF hBitStream,
|
||||
ELEMENT_INFO elInfo,
|
||||
QC_OUT *qcOut,
|
||||
PSY_OUT* psyOut,
|
||||
diff -Nupr src.p2/bitenc.h src.p3/bitenc.h
|
||||
--- src.p2/bitenc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p3/bitenc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -16,7 +16,7 @@ struct BITSTREAMENCODER_INIT
|
||||
|
||||
|
||||
|
||||
-int WriteBitstream (HANDLE_BIT_BUF hBitstream,
|
||||
+int WriteBitstreamData (HANDLE_BIT_BUF hBitstream,
|
||||
ELEMENT_INFO elInfo,
|
||||
QC_OUT* qcOut,
|
||||
PSY_OUT* psyOut,
|
||||
diff -Nupr src.p2/psy_main.c src.p3/psy_main.c
|
||||
--- src.p2/psy_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p3/psy_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -597,7 +597,7 @@ static int advancePsychLong(PSY_DATA* ps
|
||||
}
|
||||
|
||||
|
||||
- TnsEncode( &psyOutChannel->tnsInfo,
|
||||
+ TnsEncodeData( &psyOutChannel->tnsInfo,
|
||||
tnsData,
|
||||
psyConfLong->sfbCnt,
|
||||
psyConfLong->tnsConf,
|
||||
@@ -826,7 +826,7 @@ static int advancePsychShort(PSY_DATA* p
|
||||
}
|
||||
|
||||
|
||||
- TnsEncode( &psyOutChannel->tnsInfo,
|
||||
+ TnsEncodeData( &psyOutChannel->tnsInfo,
|
||||
tnsData,
|
||||
psyConfShort->sfbCnt,
|
||||
psyConfShort->tnsConf,
|
||||
diff -Nupr src.p2/tns.c src.p3/tns.c
|
||||
--- src.p2/tns.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p3/tns.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -463,11 +463,11 @@ void TnsSync(TNS_DATA *tnsDataDest,
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
- functionname: TnsEncode
|
||||
+ functionname: TnsEncodeData
|
||||
description:
|
||||
|
||||
*****************************************************************************/
|
||||
-int TnsEncode(TNS_INFO* tnsInfo,
|
||||
+int TnsEncodeData(TNS_INFO* tnsInfo,
|
||||
TNS_DATA* tnsData,
|
||||
int numOfSfb,
|
||||
TNS_CONFIG tC,
|
||||
diff -Nupr src.p2/tns_func.h src.p3/tns_func.h
|
||||
--- src.p2/tns_func.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p3/tns_func.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -33,7 +33,7 @@ void TnsSync(TNS_DATA *tnsDataDest,
|
||||
const int subBlockNumber,
|
||||
const int blockType);
|
||||
|
||||
-int TnsEncode(TNS_INFO* tnsInfo,
|
||||
+int TnsEncodeData(TNS_INFO* tnsInfo,
|
||||
TNS_DATA* tnsData,
|
||||
int numOfSfb,
|
||||
TNS_CONFIG tC,
|
||||
85
patches/0004-const_where_possible.patch
Normal file
85
patches/0004-const_where_possible.patch
Normal file
@@ -0,0 +1,85 @@
|
||||
diff -Nupr src.p3/invf_est.c src.p4/invf_est.c
|
||||
--- src.p3/invf_est.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p4/invf_est.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -29,11 +29,11 @@
|
||||
|
||||
|
||||
|
||||
-static float quantStepsSbr[4] = {1, 10, 14, 19};
|
||||
-static float quantStepsOrig[4] = {0, 3, 7, 10};
|
||||
-static float nrgBorders[4] = {25.0f, 30.0f, 35.0f, 40.0f};
|
||||
+static const float quantStepsSbr[4] = {1, 10, 14, 19};
|
||||
+static const float quantStepsOrig[4] = {0, 3, 7, 10};
|
||||
+static const float nrgBorders[4] = {25.0f, 30.0f, 35.0f, 40.0f};
|
||||
|
||||
-static DETECTOR_PARAMETERS detectorParamsAAC = {
|
||||
+static const DETECTOR_PARAMETERS detectorParamsAAC = {
|
||||
quantStepsSbr,
|
||||
quantStepsOrig,
|
||||
nrgBorders,
|
||||
@@ -60,7 +60,7 @@ static DETECTOR_PARAMETERS detectorParam
|
||||
static const float hysteresis = 1.0f;
|
||||
|
||||
|
||||
-static DETECTOR_PARAMETERS detectorParamsAACSpeech = {
|
||||
+static const DETECTOR_PARAMETERS detectorParamsAACSpeech = {
|
||||
quantStepsSbr,
|
||||
quantStepsOrig,
|
||||
nrgBorders,
|
||||
@@ -87,13 +87,13 @@ static DETECTOR_PARAMETERS detectorParam
|
||||
|
||||
typedef const float FIR_FILTER[5];
|
||||
|
||||
-static FIR_FILTER fir_0 = { 1.0f };
|
||||
-static FIR_FILTER fir_1 = { 0.3333333f, 0.6666666f };
|
||||
-static FIR_FILTER fir_2 = { 0.125f, 0.375f, 0.5f };
|
||||
-static FIR_FILTER fir_3 = { 0.0585786f, 0.2f, 0.3414214f, 0.4f };
|
||||
-static FIR_FILTER fir_4 = { 0.0318305f, 0.1151638f, 0.2181695f, 0.3015028f, 0.3333333f };
|
||||
+static const FIR_FILTER fir_0 = { 1.0f };
|
||||
+static const FIR_FILTER fir_1 = { 0.3333333f, 0.6666666f };
|
||||
+static const FIR_FILTER fir_2 = { 0.125f, 0.375f, 0.5f };
|
||||
+static const FIR_FILTER fir_3 = { 0.0585786f, 0.2f, 0.3414214f, 0.4f };
|
||||
+static const FIR_FILTER fir_4 = { 0.0318305f, 0.1151638f, 0.2181695f, 0.3015028f, 0.3333333f };
|
||||
|
||||
-static FIR_FILTER *fir_table[5] = {
|
||||
+static const FIR_FILTER *fir_table[5] = {
|
||||
&fir_0,
|
||||
&fir_1,
|
||||
&fir_2,
|
||||
diff -Nupr src.p3/invf_est.h src.p4/invf_est.h
|
||||
--- src.p3/invf_est.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p4/invf_est.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
typedef struct
|
||||
{
|
||||
- float *quantStepsSbr;
|
||||
- float *quantStepsOrig;
|
||||
- float *nrgBorders;
|
||||
+ const float *quantStepsSbr;
|
||||
+ const float *quantStepsOrig;
|
||||
+ const float *nrgBorders;
|
||||
int numRegionsSbr;
|
||||
int numRegionsOrig;
|
||||
int numRegionsNrg;
|
||||
@@ -46,7 +46,7 @@ typedef struct
|
||||
int noDetectorBands;
|
||||
int noDetectorBandsMax;
|
||||
|
||||
- DETECTOR_PARAMETERS *detectorParams;
|
||||
+ const DETECTOR_PARAMETERS *detectorParams;
|
||||
INVF_MODE prevInvfMode[MAX_NUM_NOISE_VALUES];
|
||||
DETECTOR_VALUES detectorValues[MAX_NUM_NOISE_VALUES];
|
||||
|
||||
diff -Nupr src.p3/psy_configuration.c src.p4/psy_configuration.c
|
||||
--- src.p3/psy_configuration.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p4/psy_configuration.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -23,7 +23,7 @@ static const float BARC_THR_QUIET[] = {1
|
||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 3.0f, 5.0f, 10.0f, 20.0f, 30.0f};
|
||||
|
||||
|
||||
-static SFB_INFO_TAB sfbInfoTab[] ={
|
||||
+static const SFB_INFO_TAB sfbInfoTab[] ={
|
||||
{11025, sfb_11025_long_1024, sfb_11025_short_128},
|
||||
{12000, sfb_12000_long_1024, sfb_12000_short_128},
|
||||
{16000, sfb_16000_long_1024, sfb_16000_short_128},
|
||||
30
patches/0005-fix_bitbuff_64bit.patch
Normal file
30
patches/0005-fix_bitbuff_64bit.patch
Normal file
@@ -0,0 +1,30 @@
|
||||
diff -Nupr src.p4/bitbuffer.c src.p5/bitbuffer.c
|
||||
--- src.p4/bitbuffer.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p5/bitbuffer.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -191,7 +191,7 @@ unsigned long ReadBits(HANDLE_BIT_BUF hB
|
||||
|
||||
|
||||
|
||||
- /* return value is of type unsigned int, it can hold up to 32 bits
|
||||
+ /* return value is of type unsigned int, it can hold up to 32 bits OETELAAR TODO wat is dit een 64 platform is??
|
||||
this optimized code can read upto 25 Bits a time*/
|
||||
|
||||
if (noBitsToRead >= 25) {
|
||||
@@ -235,7 +235,7 @@ unsigned long ReadBits(HANDLE_BIT_BUF hB
|
||||
}
|
||||
|
||||
|
||||
- returnValue = returnValue << (31 - noBitsToRead - hBitBuf->rBitPos) >> (32 - noBitsToRead);
|
||||
+ returnValue = returnValue << ((LongSize-1) - noBitsToRead - hBitBuf->rBitPos) >> (LongSize - noBitsToRead);
|
||||
|
||||
|
||||
return (returnValue);
|
||||
@@ -281,7 +281,7 @@ unsigned char WriteBits(HANDLE_BIT_BUF h
|
||||
bitsToWrite = min(hBitBuf->wBitPos + 1, noBitsToWrite);
|
||||
|
||||
|
||||
- tmp = (unsigned char) ( writeValue << (32 - noBitsToWrite) >> (32 - bitsToWrite) << (hBitBuf->wBitPos + 1 - bitsToWrite) );
|
||||
+ tmp = (unsigned char) ( writeValue << (LongSize - noBitsToWrite) >> (LongSize - bitsToWrite) << (hBitBuf->wBitPos + 1 - bitsToWrite) );
|
||||
|
||||
/* (hBitBuf->wBitPos + 1 - bitsToWrite) --> already calculated */
|
||||
msk = ~(((1 << bitsToWrite) - 1) << (hBitBuf->wBitPos + 1 - bitsToWrite));
|
||||
21
patches/0006-add_bitrates.patch
Normal file
21
patches/0006-add_bitrates.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
diff -Nupr src.p5/sbr_main.c src.p6/sbr_main.c
|
||||
--- src.p5/sbr_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p6/sbr_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -57,11 +57,17 @@ static const struct
|
||||
{ 28000, 36000, 22050, 2, 7, 8, 2, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 32 kbit/s */
|
||||
{ 36000, 44000, 22050, 2, 10, 9, 2, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 40 kbit/s */
|
||||
{ 44000, 52000, 22050, 2, 12, 9, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 48 kbit/s */
|
||||
+ { 52000, 60000, 22050, 2, 12, 9, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 56 kbit/s */
|
||||
+ { 60000, 68000, 22050, 2, 14, 10, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 64 kbit/s */
|
||||
+ { 68000, 72001, 22050, 2, 14, 10, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 72 kbit/s */
|
||||
|
||||
{ 24000, 28000, 24000, 2, 5, 6, 1, 0, -3, SBR_SWITCH_LRC, 3 }, /* nominal: 24 kbit/s */
|
||||
{ 28000, 36000, 24000, 2, 7, 8, 2, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 32 kbit/s */
|
||||
{ 36000, 44000, 24000, 2, 10, 9, 2, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 40 kbit/s */
|
||||
{ 44000, 52000, 24000, 2, 12, 9, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 48 kbit/s */
|
||||
+ { 52000, 60000, 24000, 2, 12, 9, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 56 kbit/s */
|
||||
+ { 60000, 68000, 24000, 2, 14, 10, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 64 kbit/s */
|
||||
+ { 68000, 72001, 24000, 2, 14, 10, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 72 kbit/s */
|
||||
|
||||
};
|
||||
|
||||
60
patches/0007-fix_si_bits_dup.patch
Normal file
60
patches/0007-fix_si_bits_dup.patch
Normal file
@@ -0,0 +1,60 @@
|
||||
diff -Nupr src.p6/env_bit.h src.p7/env_bit.h
|
||||
--- src.p6/env_bit.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p7/env_bit.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -22,12 +22,24 @@
|
||||
|
||||
|
||||
|
||||
-#define SI_ID_BITS_AAC 3
|
||||
-#define SI_FILL_COUNT_BITS 4
|
||||
-#define SI_FILL_ESC_COUNT_BITS 8
|
||||
-#define SI_FILL_EXTENTION_BITS 4
|
||||
-#define ID_FIL 6
|
||||
-
|
||||
+//#define SI_ID_BITS_AAC 3
|
||||
+//#define SI_FILL_COUNT_BITS 4
|
||||
+//#define SI_FILL_ESC_COUNT_BITS 8
|
||||
+//#define SI_FILL_EXTENTION_BITS 4
|
||||
+//#define ID_FIL 6
|
||||
+typedef enum{
|
||||
+ SI_ID_BITS =(3),
|
||||
+ SI_FILL_COUNT_BITS =(4),
|
||||
+ SI_FILL_ESC_COUNT_BITS =(8),
|
||||
+ SI_FILL_EXTENTION_BITS =(4),
|
||||
+ SI_FILL_NIBBLE_BITS =(4),
|
||||
+ SI_SCE_BITS =(4),
|
||||
+ SI_CPE_BITS =(5),
|
||||
+ SI_CPE_MS_MASK_BITS =(2) ,
|
||||
+ SI_ICS_INFO_BITS_LONG =(1+2+1+6+1),
|
||||
+ SI_ICS_INFO_BITS_SHORT =(1+2+1+4+7),
|
||||
+ SI_ICS_BITS =(8+1+1+1),
|
||||
+}SI_BITS;
|
||||
|
||||
|
||||
|
||||
diff -Nupr src.p6/stat_bits.c src.p7/stat_bits.c
|
||||
--- src.p6/stat_bits.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p7/stat_bits.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -5,22 +5,6 @@
|
||||
|
||||
/* the 3GPP instrumenting tool */
|
||||
|
||||
-typedef enum{
|
||||
- SI_ID_BITS =(3),
|
||||
- SI_FILL_COUNT_BITS =(4),
|
||||
- SI_FILL_ESC_COUNT_BITS =(8),
|
||||
- SI_FILL_EXTENTION_BITS =(4),
|
||||
- SI_FILL_NIBBLE_BITS =(4),
|
||||
- SI_SCE_BITS =(4),
|
||||
- SI_CPE_BITS =(5),
|
||||
- SI_CPE_MS_MASK_BITS =(2) ,
|
||||
- SI_ICS_INFO_BITS_LONG =(1+2+1+6+1),
|
||||
- SI_ICS_INFO_BITS_SHORT =(1+2+1+4+7),
|
||||
- SI_ICS_BITS =(8+1+1+1),
|
||||
-}SI_BITS;
|
||||
-
|
||||
-
|
||||
-
|
||||
static int countMsMaskBits(int sfbCnt,
|
||||
int sfbPerGroup,
|
||||
int maxSfbPerGroup,
|
||||
255
patches/0008-enchance_config.patch
Normal file
255
patches/0008-enchance_config.patch
Normal file
@@ -0,0 +1,255 @@
|
||||
diff -Nupr src.p7/aacenc.c src.p8/aacenc.c
|
||||
--- src.p7/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p8/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -52,22 +52,28 @@ static struct AAC_ENCODER aacEncoder;
|
||||
returns: ---
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
-void AacInitDefaultConfig(AACENC_CONFIG *config)
|
||||
+void AacInitDefaultConfig(aacplusEncConfiguration *config)
|
||||
{
|
||||
|
||||
|
||||
/* make the pre initialization of the structs flexible */
|
||||
|
||||
- memset(config, 0, sizeof(AACENC_CONFIG));
|
||||
+ memset(config, 0, sizeof(aacplusEncConfiguration));
|
||||
|
||||
/* default configurations */
|
||||
|
||||
config->bitRate = 48000;
|
||||
config->bandWidth = 0;
|
||||
+ config->nSamplesPerFrame = AACENC_BLOCKSIZE;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+
|
||||
+
|
||||
+
|
||||
+
|
||||
+
|
||||
/*---------------------------------------------------------------------------
|
||||
|
||||
functionname: AacEncOpen
|
||||
@@ -77,38 +83,26 @@ void AacInitDefaultConfig(AACENC_CONFIG
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
-AacEncOpen ( struct AAC_ENCODER** phAacEnc, /* pointer to an encoder handle, initialized on return */
|
||||
- const AACENC_CONFIG config /* pre-initialized config struct */
|
||||
+AacEncOpen ( struct AAC_ENCODER *hAacEnc, /* pointer to an encoder handle, initialized on return */
|
||||
+ aacplusEncConfiguration *config /* pre-initialized config struct */
|
||||
)
|
||||
{
|
||||
int error = 0;
|
||||
int profile = 1;
|
||||
ELEMENT_INFO* elInfo = NULL;
|
||||
- struct AAC_ENCODER *hAacEnc ;
|
||||
-
|
||||
-
|
||||
|
||||
/* counting previous operations */
|
||||
|
||||
|
||||
- hAacEnc = &aacEncoder;
|
||||
-
|
||||
-
|
||||
- if (phAacEnc==0) {
|
||||
-
|
||||
- error=1;
|
||||
- }
|
||||
-
|
||||
-
|
||||
if (!error) {
|
||||
/* sanity checks on config structure */
|
||||
|
||||
- error = (&config == 0 || phAacEnc == 0 ||
|
||||
- config.nChannelsIn < 1 || config.nChannelsIn > MAX_CHANNELS ||
|
||||
- config.nChannelsOut < 1 || config.nChannelsOut > MAX_CHANNELS ||
|
||||
- config.nChannelsIn < config.nChannelsOut ||
|
||||
- (config.bitRate!=0 && (config.bitRate / config.nChannelsOut < 8000 ||
|
||||
- config.bitRate / config.nChannelsOut > 160000)));
|
||||
+ error = (&config == 0 || hAacEnc == 0 ||
|
||||
+ config->nChannelsIn < 1 || config->nChannelsIn > MAX_CHANNELS ||
|
||||
+ config->nChannelsOut < 1 || config->nChannelsOut > MAX_CHANNELS ||
|
||||
+ config->nChannelsIn < config->nChannelsOut ||
|
||||
+ (config->bitRate!=0 && (config->bitRate / config->nChannelsOut < 8000 ||
|
||||
+ config->bitRate / config->nChannelsOut > 160000)));
|
||||
}
|
||||
|
||||
/* check sample rate */
|
||||
@@ -116,7 +110,7 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
if (!error) {
|
||||
|
||||
|
||||
- switch (config.sampleRate) {
|
||||
+ switch (config->sampleRate) {
|
||||
case 8000: case 11025: case 12000:
|
||||
case 16000: case 22050: case 24000:
|
||||
case 32000: case 44100: case 48000:
|
||||
@@ -134,8 +128,8 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
if (!error) {
|
||||
|
||||
|
||||
- if (config.bitRate > ((float)(MAX_CHANNEL_BITS-744)/FRAME_LEN_LONG*
|
||||
- config.sampleRate*config.nChannelsOut))
|
||||
+ if (config->bitRate > ((float)(MAX_CHANNEL_BITS-744)/FRAME_LEN_LONG*
|
||||
+ config->sampleRate*config->nChannelsOut))
|
||||
{
|
||||
|
||||
error=1;
|
||||
@@ -153,7 +147,7 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
|
||||
if (!error) {
|
||||
|
||||
- error = InitElementInfo (config.nChannelsOut,
|
||||
+ error = InitElementInfo (config->nChannelsOut,
|
||||
&hAacEnc->elInfo);
|
||||
}
|
||||
|
||||
@@ -179,12 +173,12 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
/* counting previous operation */
|
||||
|
||||
|
||||
- hAacEnc->bandwidth90dB = (int)hAacEnc->config.bandWidth;
|
||||
+ hAacEnc->bandwidth90dB = (int)hAacEnc->config->bandWidth;
|
||||
|
||||
|
||||
error = psyMainInit(&hAacEnc->psyKernel,
|
||||
- config.sampleRate,
|
||||
- config.bitRate,
|
||||
+ config->sampleRate,
|
||||
+ config->bitRate,
|
||||
elInfo->nChannelsInEl,
|
||||
tnsMask,
|
||||
hAacEnc->bandwidth90dB);
|
||||
@@ -220,20 +214,20 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
qcInit.bitRes = qcInit.maxBits;
|
||||
|
||||
|
||||
- qcInit.averageBits = (config.bitRate * FRAME_LEN_LONG) / config.sampleRate;
|
||||
+ qcInit.averageBits = (config->bitRate * FRAME_LEN_LONG) / config->sampleRate;
|
||||
|
||||
|
||||
- qcInit.padding.paddingRest = config.sampleRate;
|
||||
+ qcInit.padding.paddingRest = config->sampleRate;
|
||||
|
||||
|
||||
- qcInit.meanPe = 10.0f * FRAME_LEN_LONG * hAacEnc->bandwidth90dB/(config.sampleRate/2.0f);
|
||||
+ qcInit.meanPe = 10.0f * FRAME_LEN_LONG * hAacEnc->bandwidth90dB/(config->sampleRate/2.0f);
|
||||
|
||||
|
||||
qcInit.maxBitFac = (float)((MAX_CHANNEL_BITS-744)*elInfo->nChannelsInEl) /
|
||||
(float)(qcInit.averageBits?qcInit.averageBits:1);
|
||||
|
||||
|
||||
- qcInit.bitrate = config.bitRate;
|
||||
+ qcInit.bitrate = config->bitRate;
|
||||
|
||||
|
||||
error = QCInit(&hAacEnc->qcKernel, &qcInit);
|
||||
@@ -245,8 +239,8 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
|
||||
|
||||
hAacEnc->bseInit.nChannels = elInfo->nChannelsInEl;
|
||||
- hAacEnc->bseInit.bitrate = config.bitRate;
|
||||
- hAacEnc->bseInit.sampleRate = config.sampleRate;
|
||||
+ hAacEnc->bseInit.bitrate = config->bitRate;
|
||||
+ hAacEnc->bseInit.sampleRate = config->sampleRate;
|
||||
hAacEnc->bseInit.profile = profile;
|
||||
}
|
||||
|
||||
@@ -256,10 +250,10 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
if (!error) {
|
||||
|
||||
|
||||
- hAacEnc->downmix = (config.nChannelsIn==2 && config.nChannelsOut==1);
|
||||
+ hAacEnc->downmix = (config->nChannelsIn==2 && config->nChannelsOut==1);
|
||||
|
||||
|
||||
- hAacEnc->downmixFac = (hAacEnc->downmix) ? config.nChannelsIn : 1;
|
||||
+ hAacEnc->downmixFac = (hAacEnc->downmix) ? config->nChannelsIn : 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -273,7 +267,7 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
|
||||
|
||||
if ( elInfo->elType == ID_CPE &&
|
||||
- (config.sampleRate <= 24000 && (config.bitRate/elInfo->nChannelsInEl*2) < 60000) ) {
|
||||
+ (config->sampleRate <= 24000 && (config->bitRate/elInfo->nChannelsInEl*2) < 60000) ) {
|
||||
|
||||
float scfUsedRatio = (float) hAacEnc->psyKernel.psyConfLong.sfbActive / hAacEnc->psyKernel.psyConfLong.sfbCnt ;
|
||||
|
||||
@@ -282,8 +276,8 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
|
||||
error = InitStereoPreProcessing(&(hAacEnc->stereoPrePro),
|
||||
elInfo->nChannelsInEl,
|
||||
- config.bitRate,
|
||||
- config.sampleRate,
|
||||
+ config->bitRate,
|
||||
+ config->sampleRate,
|
||||
scfUsedRatio);
|
||||
}
|
||||
}
|
||||
@@ -295,11 +289,9 @@ AacEncOpen ( struct AAC_ENCODER** ph
|
||||
AacEncClose(hAacEnc);
|
||||
|
||||
|
||||
- hAacEnc=0;
|
||||
}
|
||||
|
||||
|
||||
- *phAacEnc = hAacEnc;
|
||||
|
||||
|
||||
|
||||
@@ -361,8 +353,8 @@ int AacEncEncode(struct AAC_ENCODER *aac
|
||||
|
||||
|
||||
AdjustBitrate(&aacEnc->qcKernel,
|
||||
- aacEnc->config.bitRate,
|
||||
- aacEnc->config.sampleRate);
|
||||
+ aacEnc->config->bitRate,
|
||||
+ aacEnc->config->sampleRate);
|
||||
|
||||
/*
|
||||
aacEnc->qcKernel.elementBits
|
||||
@@ -456,11 +448,10 @@ void AacEncClose (struct AAC_ENCODER* hA
|
||||
|
||||
error = PsyOutDelete(&hAacEnc->psyOut);
|
||||
|
||||
-
|
||||
- DeleteBitBuffer(&hAacEnc->hBitStream);
|
||||
+ if(hAacEnc->hBitStream)
|
||||
+ DeleteBitBuffer(&hAacEnc->hBitStream);
|
||||
|
||||
|
||||
- hAacEnc=0;
|
||||
}
|
||||
|
||||
|
||||
diff -Nupr src.p7/aacenc.h src.p8/aacenc.h
|
||||
--- src.p7/aacenc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p8/aacenc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -46,7 +46,7 @@ struct AAC_ENCODER;
|
||||
returns: ---
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
-void AacInitDefaultConfig(AACENC_CONFIG *config);
|
||||
+void AacInitDefaultConfig(aacplusEncConfiguration *config);
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
|
||||
@@ -57,8 +57,8 @@ void AacInitDefaultConfig(AACENC_CONFIG
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
int AacEncOpen
|
||||
-( struct AAC_ENCODER** phAacEnc, /* pointer to an encoder handle, initialized on return */
|
||||
- const AACENC_CONFIG config /* pre-initialized config struct */
|
||||
+( struct AAC_ENCODER* hAacEnc, /* pointer to an encoder handle, initialized on return */
|
||||
+ aacplusEncConfiguration *config /* pre-initialized config struct */
|
||||
);
|
||||
|
||||
int AacEncEncode(struct AAC_ENCODER *hAacEnc,
|
||||
190
patches/0009-move_aac_sbr_enc_2_hdr.patch
Normal file
190
patches/0009-move_aac_sbr_enc_2_hdr.patch
Normal file
@@ -0,0 +1,190 @@
|
||||
diff -Nupr src.p8/aacenc.c src.p9/aacenc.c
|
||||
--- src.p8/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p9/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -10,39 +10,7 @@
|
||||
|
||||
/* the 3GPP instrumenting tool */
|
||||
|
||||
-struct AAC_ENCODER {
|
||||
|
||||
- AACENC_CONFIG config;
|
||||
-
|
||||
- ELEMENT_INFO elInfo;
|
||||
-
|
||||
- QC_STATE qcKernel;
|
||||
- QC_OUT qcOut;
|
||||
-
|
||||
- PSY_OUT psyOut;
|
||||
- PSY_KERNEL psyKernel;
|
||||
-
|
||||
- struct BITSTREAMENCODER_INIT bseInit;
|
||||
-
|
||||
- struct STEREO_PREPRO stereoPrePro;
|
||||
-
|
||||
- struct BIT_BUF bitStream;
|
||||
- HANDLE_BIT_BUF hBitStream;
|
||||
-
|
||||
- /* lifetime vars */
|
||||
- int downmix;
|
||||
- int downmixFac;
|
||||
- int dualMono;
|
||||
- int bandwidth90dB;
|
||||
-};
|
||||
-
|
||||
-
|
||||
-/*
|
||||
- static AAC encoder instance for one encoder
|
||||
- all other major static and dynamic memory areas are located
|
||||
- in module aac_ram.c and aac_rom.c
|
||||
-*/
|
||||
-static struct AAC_ENCODER aacEncoder;
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
diff -Nupr src.p8/aacenc.h src.p9/aacenc.h
|
||||
--- src.p8/aacenc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p9/aacenc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -5,38 +5,36 @@
|
||||
#ifndef _aacenc_h_
|
||||
#define _aacenc_h_
|
||||
|
||||
-/* here we distinguish between stereo and the mono only encoder */
|
||||
-#ifdef MONO_ONLY
|
||||
-#define MAX_CHANNELS 1
|
||||
-#else
|
||||
-#define MAX_CHANNELS 2
|
||||
-#endif
|
||||
-
|
||||
-#define AACENC_BLOCKSIZE 1024 /*! encoder only takes BLOCKSIZE samples at a time */
|
||||
-#define AACENC_TRANS_FAC 8 /*! encoder short long ratio */
|
||||
-#define AACENC_PCM_LEVEL 1.0 /*! encoder pcm 0db refernence */
|
||||
-
|
||||
-
|
||||
-/*-------------------------- defines --------------------------------------*/
|
||||
-
|
||||
-#define BUFFERSIZE 1024 /* anc data */
|
||||
-
|
||||
-/*-------------------- structure definitions ------------------------------*/
|
||||
-
|
||||
-typedef struct {
|
||||
- int sampleRate; /* audio file sample rate */
|
||||
- int bitRate; /* encoder bit rate in bits/sec */
|
||||
- int nChannelsIn; /* number of channels on input (1,2) */
|
||||
- int nChannelsOut; /* number of channels on output (1,2) */
|
||||
- int bandWidth; /* core coder audio bandwidth in Hz */
|
||||
-} AACENC_CONFIG;
|
||||
-
|
||||
-struct AAC_ENCODER;
|
||||
-
|
||||
-/*
|
||||
- * p u b l i c a n c i l l a r y
|
||||
- *
|
||||
- */
|
||||
+struct AAC_ENCODER {
|
||||
+//#ifdef _FFTW3
|
||||
+ FFTWFContext_t *fftctx;
|
||||
+//#endif
|
||||
+
|
||||
+ aacplusEncConfiguration *config;
|
||||
+ AACRam_t *aac_ram;
|
||||
+ SBRRam_t *sbr_ram;
|
||||
+
|
||||
+ ELEMENT_INFO elInfo;
|
||||
+
|
||||
+ QC_STATE qcKernel;
|
||||
+ QC_OUT qcOut;
|
||||
+
|
||||
+ PSY_OUT psyOut;
|
||||
+ PSY_KERNEL psyKernel;
|
||||
+
|
||||
+ struct BITSTREAMENCODER_INIT bseInit;
|
||||
+
|
||||
+ struct STEREO_PREPRO stereoPrePro;
|
||||
+
|
||||
+ struct BIT_BUF bitStream;
|
||||
+ HANDLE_BIT_BUF hBitStream;
|
||||
+
|
||||
+ /* lifetime vars */
|
||||
+ int downmix;
|
||||
+ int downmixFac;
|
||||
+ int dualMono;
|
||||
+ int bandwidth90dB;
|
||||
+};
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
diff -Nupr src.p8/sbr_main.c src.p9/sbr_main.c
|
||||
--- src.p8/sbr_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p9/sbr_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -72,28 +72,6 @@ static const struct
|
||||
};
|
||||
|
||||
|
||||
-struct SBR_ENCODER
|
||||
-{
|
||||
-
|
||||
- struct SBR_CONFIG_DATA sbrConfigData;
|
||||
- struct SBR_HEADER_DATA sbrHeaderData;
|
||||
- struct SBR_BITSTREAM_DATA sbrBitstreamData;
|
||||
- struct ENV_CHANNEL* hEnvChannel[MAX_CHANNELS];
|
||||
- struct COMMON_DATA CmonData;
|
||||
- struct PS_ENC *hPsEnc;
|
||||
- SBR_QMF_FILTER_BANK *hSynthesisQmfBank;
|
||||
- unsigned int sbrPayloadPrevious[MAX_PAYLOAD_SIZE/(sizeof(int))];
|
||||
- unsigned int sbrPayload[MAX_PAYLOAD_SIZE/(sizeof(int))];
|
||||
- int sbrPayloadSize;
|
||||
-} ;
|
||||
-
|
||||
-
|
||||
-static struct ENV_CHANNEL EnvChannel[MAX_CHANNELS];
|
||||
-static struct SBR_ENCODER sbrEncoder;
|
||||
-static SBR_QMF_FILTER_BANK SynthesisQmfBank;
|
||||
-static struct PS_ENC psEncoder;
|
||||
-
|
||||
-
|
||||
/***************************************************************************/
|
||||
/*!
|
||||
|
||||
@@ -804,21 +782,18 @@ createEnvChannel (int chan,
|
||||
|
||||
*****************************************************************************/
|
||||
int
|
||||
-EnvOpen (HANDLE_SBR_ENCODER * hEnvEncoder,
|
||||
+EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
float *pCoreBuffer,
|
||||
sbrConfigurationPtr params,
|
||||
int *coreBandWith)
|
||||
{
|
||||
- HANDLE_SBR_ENCODER hEnvEnc ;
|
||||
int ch;
|
||||
|
||||
|
||||
|
||||
|
||||
- *hEnvEncoder=0;
|
||||
|
||||
|
||||
- hEnvEnc = &sbrEncoder;
|
||||
|
||||
/* hEnvEnc->hEnvChannel[]
|
||||
EnvChannel[]
|
||||
@@ -1085,7 +1060,6 @@ EnvOpen (HANDLE_SBR_ENCODER * hEnvEncode
|
||||
hEnvEnc->sbrPayloadSize = 0;
|
||||
|
||||
|
||||
- *hEnvEncoder = hEnvEnc;
|
||||
*coreBandWith = hEnvEnc->sbrConfigData.xOverFreq;
|
||||
|
||||
|
||||
diff -Nupr src.p8/sbr_main.h src.p9/sbr_main.h
|
||||
--- src.p8/sbr_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p9/sbr_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -102,7 +102,7 @@ typedef struct SBR_ENCODER *HANDLE_SBR_E
|
||||
|
||||
|
||||
int
|
||||
-EnvOpen (HANDLE_SBR_ENCODER* hEnvEncoder,
|
||||
+EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
float *pCoreBuffer,
|
||||
sbrConfigurationPtr params,
|
||||
int *coreBandWith
|
||||
894
patches/0010-use_dynamic_alloc.patch
Normal file
894
patches/0010-use_dynamic_alloc.patch
Normal file
@@ -0,0 +1,894 @@
|
||||
diff -Nupr src.p9/aacenc.c src.p10/aacenc.c
|
||||
--- src.p9/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/aacenc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -130,7 +130,7 @@ AacEncOpen ( struct AAC_ENCODER *hA
|
||||
if (!error) {
|
||||
|
||||
|
||||
- error = (PsyNew(&hAacEnc->psyKernel, elInfo->nChannelsInEl) ||
|
||||
+ error = (PsyNew(hAacEnc->aac_ram, hAacEnc->sbr_ram, &hAacEnc->psyKernel, elInfo->nChannelsInEl) ||
|
||||
PsyOutNew(&hAacEnc->psyOut));
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ AacEncOpen ( struct AAC_ENCODER *hA
|
||||
|
||||
if (!error) {
|
||||
|
||||
- error = QCOutNew(&hAacEnc->qcOut,
|
||||
+ error = QCOutNew(hAacEnc->aac_ram, &hAacEnc->qcOut,
|
||||
elInfo->nChannelsInEl);
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ AacEncOpen ( struct AAC_ENCODER *hA
|
||||
qcInit.bitrate = config->bitRate;
|
||||
|
||||
|
||||
- error = QCInit(&hAacEnc->qcKernel, &qcInit);
|
||||
+ error = QCInit(hAacEnc->aac_ram, &hAacEnc->qcKernel, &qcInit);
|
||||
}
|
||||
|
||||
/* init bitstream encoder */
|
||||
@@ -307,7 +307,8 @@ int AacEncEncode(struct AAC_ENCODER *aac
|
||||
}
|
||||
|
||||
|
||||
- psyMain(timeInStride,
|
||||
+ psyMain(aacEnc->fftctx,
|
||||
+ timeInStride,
|
||||
elInfo,
|
||||
timeSignal,
|
||||
&aacEnc->psyKernel.psyData[elInfo->ChannelIndex[0]],
|
||||
@@ -332,7 +333,8 @@ int AacEncEncode(struct AAC_ENCODER *aac
|
||||
*/
|
||||
|
||||
/* min() */
|
||||
- QCMain( &aacEnc->qcKernel,
|
||||
+ QCMain( aacEnc->aac_ram,
|
||||
+ &aacEnc->qcKernel,
|
||||
elInfo->nChannelsInEl,
|
||||
&aacEnc->qcKernel.elementBits,
|
||||
&aacEnc->qcKernel.adjThr.adjThrStateElem,
|
||||
diff -Nupr src.p9/dyn_bits.c src.p10/dyn_bits.c
|
||||
--- src.p9/dyn_bits.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/dyn_bits.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -417,7 +417,7 @@ gmStage2(SECTION_INFO * section,
|
||||
count bits used by the noiseless coder
|
||||
*/
|
||||
static void
|
||||
-noiselessCounter(SECTION_DATA * sectionData,
|
||||
+noiselessCounter(AACRam_t *aacram, SECTION_DATA * sectionData,
|
||||
int mergeGainLookUp[MAX_SFB_LONG],
|
||||
int bitLookUp[MAX_SFB_LONG][CODE_BOOK_ESC_NDX + 1],
|
||||
const short *quantSpectrum,
|
||||
@@ -441,12 +441,12 @@ noiselessCounter(SECTION_DATA * sectionD
|
||||
case STOP_WINDOW:
|
||||
|
||||
|
||||
- sideInfoTab = sideInfoTabLong;
|
||||
+ sideInfoTab = aacram->sideInfoTabLong;
|
||||
break;
|
||||
case SHORT_WINDOW:
|
||||
|
||||
|
||||
- sideInfoTab = sideInfoTabShort;
|
||||
+ sideInfoTab = aacram->sideInfoTabShort;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -715,7 +715,8 @@ static void scfCount(const short *scalef
|
||||
typedef int (*lookUpTable)[CODE_BOOK_ESC_NDX + 1];
|
||||
|
||||
int
|
||||
-dynBitCount(const short *quantSpectrum,
|
||||
+dynBitCount(AACRam_t *aacram,
|
||||
+ const short *quantSpectrum,
|
||||
const unsigned short *maxValueInSfb,
|
||||
const signed short *scalefac,
|
||||
const int blockType,
|
||||
@@ -742,7 +743,7 @@ dynBitCount(const short *quantS
|
||||
sectionData->maxSfbPerGroup = maxSfbPerGroup;
|
||||
|
||||
|
||||
- noiselessCounter(sectionData,
|
||||
+ noiselessCounter(aacram, sectionData,
|
||||
mergeGainLookUp,
|
||||
(lookUpTable)bitLookUp,
|
||||
quantSpectrum,
|
||||
@@ -766,7 +767,7 @@ dynBitCount(const short *quantS
|
||||
|
||||
|
||||
int
|
||||
-BCInit(void)
|
||||
+BCInit(AACRam_t *aacram)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -777,14 +778,14 @@ BCInit(void)
|
||||
for (i = 0; i <= MAX_SFB_LONG; i++)
|
||||
{
|
||||
|
||||
- sideInfoTabLong[i] = calcSideInfoBits(i, LONG_WINDOW);
|
||||
+ aacram->sideInfoTabLong[i] = calcSideInfoBits(i, LONG_WINDOW);
|
||||
}
|
||||
|
||||
/* sideInfoTabShort[] */
|
||||
for (i = 0; i <= MAX_SFB_SHORT; i++)
|
||||
{
|
||||
|
||||
- sideInfoTabShort[i] = calcSideInfoBits(i, SHORT_WINDOW);
|
||||
+ aacram->sideInfoTabShort[i] = calcSideInfoBits(i, SHORT_WINDOW);
|
||||
}
|
||||
|
||||
|
||||
diff -Nupr src.p9/dyn_bits.h src.p10/dyn_bits.h
|
||||
--- src.p9/dyn_bits.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/dyn_bits.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -36,10 +36,10 @@ typedef struct
|
||||
}
|
||||
SECTION_DATA;
|
||||
|
||||
+int BCInit(AACRam_t *aacram);
|
||||
|
||||
-int BCInit(void);
|
||||
-
|
||||
-int dynBitCount(const short *quantSpectrum,
|
||||
+int dynBitCount(AACRam_t *aacram,
|
||||
+ const short *quantSpectrum,
|
||||
const unsigned short *maxValueInSfb,
|
||||
const signed short *scalefac,
|
||||
const int blockType,
|
||||
diff -Nupr src.p9/env_est.c src.p10/env_est.c
|
||||
--- src.p9/env_est.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/env_est.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -1675,7 +1675,7 @@ extractSbrEnvelope (FFTWFContext_t *fftc
|
||||
|
||||
****************************************************************************/
|
||||
int
|
||||
-CreateExtractSbrEnvelope (int chan,
|
||||
+CreateExtractSbrEnvelope (SBRRam_t *sbrram, int chan,
|
||||
HANDLE_SBR_EXTRACT_ENVELOPE hSbrCut,
|
||||
int start_index)
|
||||
{
|
||||
@@ -1723,7 +1723,7 @@ CreateExtractSbrEnvelope (int chan,
|
||||
|
||||
for (i = 0; i < YBufferLength; i++) {
|
||||
|
||||
- hSbrCut->YBuffer[i] = &sbr_envYBuffer[chan*YBufferLength*64 + i*QMF_CHANNELS];
|
||||
+ hSbrCut->YBuffer[i] = &sbrram->sbr_envYBuffer[chan*YBufferLength*64 + i*QMF_CHANNELS];
|
||||
}
|
||||
|
||||
/* hSbrCut->rBuffer[]
|
||||
@@ -1732,10 +1732,10 @@ CreateExtractSbrEnvelope (int chan,
|
||||
|
||||
for (i = 0; i < rBufferLength; i++) {
|
||||
|
||||
- hSbrCut->rBuffer[i] = &sbr_envRBuffer[chan*QMF_TIME_SLOTS*QMF_CHANNELS + i*QMF_CHANNELS];
|
||||
+ hSbrCut->rBuffer[i] = &sbrram->sbr_envRBuffer[chan*QMF_TIME_SLOTS*QMF_CHANNELS + i*QMF_CHANNELS];
|
||||
|
||||
|
||||
- hSbrCut->iBuffer[i] = &sbr_envIBuffer[chan*QMF_TIME_SLOTS*QMF_CHANNELS + i*QMF_CHANNELS];
|
||||
+ hSbrCut->iBuffer[i] = &sbrram->sbr_envIBuffer[chan*QMF_TIME_SLOTS*QMF_CHANNELS + i*QMF_CHANNELS];
|
||||
}
|
||||
|
||||
|
||||
diff -Nupr src.p9/env_est.h src.p10/env_est.h
|
||||
--- src.p9/env_est.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/env_est.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -29,7 +29,7 @@ typedef SBR_EXTRACT_ENVELOPE *HANDLE_SBR
|
||||
/************ Function Declarations ***************/
|
||||
|
||||
int
|
||||
-CreateExtractSbrEnvelope (int chan,
|
||||
+CreateExtractSbrEnvelope (SBRRam_t *sbrram, int chan,
|
||||
HANDLE_SBR_EXTRACT_ENVELOPE hSbr,
|
||||
|
||||
|
||||
diff -Nupr src.p9/mh_det.c src.p10/mh_det.c
|
||||
--- src.p9/mh_det.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/mh_det.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -1264,7 +1264,8 @@ SbrMissingHarmonicsDetectorQmf(HANDLE_SB
|
||||
*/
|
||||
/**************************************************************************/
|
||||
int
|
||||
-CreateSbrMissingHarmonicsDetector (int chan,
|
||||
+CreateSbrMissingHarmonicsDetector (SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_MISSING_HARMONICS_DETECTOR hSbrMHDet,
|
||||
int sampleFreq,
|
||||
unsigned char* freqBandTable,
|
||||
@@ -1305,7 +1306,7 @@ CreateSbrMissingHarmonicsDetector (int c
|
||||
hs->noEstPerFrame = noEstPerFrame;
|
||||
|
||||
|
||||
- ptr = &sbr_toncorrBuff[chan*5*NO_OF_ESTIMATES*MAX_FREQ_COEFFS];
|
||||
+ ptr = &sbrram->sbr_toncorrBuff[chan*5*NO_OF_ESTIMATES*MAX_FREQ_COEFFS];
|
||||
|
||||
/* hs->tonalityDiff[i]
|
||||
hs->sfmOrig[i]
|
||||
@@ -1347,13 +1348,13 @@ CreateSbrMissingHarmonicsDetector (int c
|
||||
memset(hs->guideVectors[i].guideVectorOrig,0,sizeof(float)*MAX_FREQ_COEFFS);
|
||||
|
||||
|
||||
- hs->detectionVectors[i] = &(sbr_detectionVectors[chan*NO_OF_ESTIMATES*MAX_FREQ_COEFFS + i*MAX_FREQ_COEFFS]);
|
||||
+ hs->detectionVectors[i] = &(sbrram->sbr_detectionVectors[chan*NO_OF_ESTIMATES*MAX_FREQ_COEFFS + i*MAX_FREQ_COEFFS]);
|
||||
|
||||
|
||||
memset(hs->detectionVectors[i],0,sizeof(unsigned char)*MAX_FREQ_COEFFS);
|
||||
|
||||
|
||||
- hs->guideVectors[i].guideVectorDetected = &(sbr_guideVectorDetected[chan*NO_OF_ESTIMATES*MAX_FREQ_COEFFS + i*MAX_FREQ_COEFFS]);
|
||||
+ hs->guideVectors[i].guideVectorDetected = &(sbrram->sbr_guideVectorDetected[chan*NO_OF_ESTIMATES*MAX_FREQ_COEFFS + i*MAX_FREQ_COEFFS]);
|
||||
|
||||
|
||||
memset(hs->guideVectors[i].guideVectorDetected,0,sizeof(unsigned char)*MAX_FREQ_COEFFS);
|
||||
@@ -1361,13 +1362,13 @@ CreateSbrMissingHarmonicsDetector (int c
|
||||
}
|
||||
|
||||
|
||||
- hs->prevEnvelopeCompensation = &(sbr_prevEnvelopeCompensation[chan*MAX_FREQ_COEFFS]);
|
||||
+ hs->prevEnvelopeCompensation = &(sbrram->sbr_prevEnvelopeCompensation[chan*MAX_FREQ_COEFFS]);
|
||||
|
||||
|
||||
memset( hs->prevEnvelopeCompensation,0, sizeof(char)*MAX_FREQ_COEFFS);
|
||||
|
||||
|
||||
- hs->guideScfb = &(sbr_guideScfb[chan*MAX_FREQ_COEFFS]);
|
||||
+ hs->guideScfb = &(sbrram->sbr_guideScfb[chan*MAX_FREQ_COEFFS]);
|
||||
|
||||
|
||||
memset( hs->guideScfb,0, sizeof(unsigned char)*MAX_FREQ_COEFFS);
|
||||
@@ -1377,7 +1378,7 @@ CreateSbrMissingHarmonicsDetector (int c
|
||||
hs->previousTransientFrame = 0;
|
||||
hs->previousTransientPos = 0;
|
||||
|
||||
- assert (ptr-&sbr_toncorrBuff[0] <= 5*MAX_CHANNELS*NO_OF_ESTIMATES*MAX_FREQ_COEFFS);
|
||||
+ assert (ptr-&sbrram->sbr_toncorrBuff[0] <= 5*MAX_CHANNELS*NO_OF_ESTIMATES*MAX_FREQ_COEFFS);
|
||||
|
||||
|
||||
|
||||
diff -Nupr src.p9/mh_det.h src.p10/mh_det.h
|
||||
--- src.p9/mh_det.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/mh_det.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -61,7 +61,8 @@ SbrMissingHarmonicsDetectorQmf(HANDLE_SB
|
||||
|
||||
|
||||
int
|
||||
-CreateSbrMissingHarmonicsDetector(int chan,
|
||||
+CreateSbrMissingHarmonicsDetector(SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_MISSING_HARMONICS_DETECTOR h_sbrMissingHarmonicsDetector,
|
||||
int sampleFreq,
|
||||
unsigned char* freqBandTable,
|
||||
diff -Nupr src.p9/ps_enc.c src.p10/ps_enc.c
|
||||
--- src.p9/ps_enc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/ps_enc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -56,7 +56,8 @@ int GetPsMode(int bitRate)
|
||||
}
|
||||
|
||||
int
|
||||
-CreatePsEnc(HANDLE_PS_ENC h_ps_e,
|
||||
+CreatePsEnc(SBRRam_t *sbrram,
|
||||
+ HANDLE_PS_ENC h_ps_e,
|
||||
int psMode)
|
||||
{
|
||||
int i;
|
||||
@@ -67,10 +68,10 @@ CreatePsEnc(HANDLE_PS_ENC h_ps_e,
|
||||
|
||||
|
||||
|
||||
- ptr1 = &sbr_envYBuffer[QMF_TIME_SLOTS * QMF_CHANNELS];
|
||||
- ptr2 = &PsBuf2[0];
|
||||
- ptr3 = &PsBuf3[0];
|
||||
- ptr4 = &PsBuf4[0];
|
||||
+ ptr1 = &sbrram->sbr_envYBuffer[QMF_TIME_SLOTS * QMF_CHANNELS];
|
||||
+ ptr2 = &sbrram->PsBuf2[0];
|
||||
+ ptr3 = &sbrram->PsBuf3[0];
|
||||
+ ptr4 = &sbrram->PsBuf4[0];
|
||||
|
||||
|
||||
if (h_ps_e == NULL)
|
||||
diff -Nupr src.p9/ps_enc.h src.p10/ps_enc.h
|
||||
--- src.p9/ps_enc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/ps_enc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -85,7 +85,8 @@ typedef struct PS_ENC *HANDLE_PS_ENC;
|
||||
int GetPsMode(int bitRate);
|
||||
|
||||
int
|
||||
-CreatePsEnc(HANDLE_PS_ENC h_ps_enc,
|
||||
+CreatePsEnc(SBRRam_t *sbrram,
|
||||
+ HANDLE_PS_ENC h_ps_enc,
|
||||
int psMode);
|
||||
|
||||
void
|
||||
diff -Nupr src.p9/psy_main.c src.p10/psy_main.c
|
||||
--- src.p9/psy_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/psy_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -44,7 +44,7 @@ static int advancePsychShortMS (PSY_DATA
|
||||
input: pointer to a psych handle
|
||||
|
||||
*****************************************************************************/
|
||||
-int PsyNew(PSY_KERNEL *hPsy, int nChan)
|
||||
+int PsyNew(AACRam_t *aacram, SBRRam_t *sbrram, PSY_KERNEL *hPsy, int nChan)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -60,7 +60,7 @@ int PsyNew(PSY_KERNEL *hPsy, int nChan)
|
||||
reserve memory for mdct delay buffer
|
||||
*/
|
||||
|
||||
- hPsy->psyData[i].mdctDelayBuffer = &mdctDelayBuffer[i*BLOCK_SWITCHING_OFFSET];
|
||||
+ hPsy->psyData[i].mdctDelayBuffer = &aacram->mdctDelayBuffer[i*BLOCK_SWITCHING_OFFSET];
|
||||
|
||||
|
||||
/*
|
||||
@@ -68,12 +68,12 @@ int PsyNew(PSY_KERNEL *hPsy, int nChan)
|
||||
*/
|
||||
|
||||
|
||||
- hPsy->psyData[i].mdctSpectrum = &sbr_envRBuffer[i*FRAME_LEN_LONG];
|
||||
+ hPsy->psyData[i].mdctSpectrum = &sbrram->sbr_envRBuffer[i*FRAME_LEN_LONG];
|
||||
|
||||
}
|
||||
|
||||
|
||||
- hPsy->pScratchTns = sbr_envIBuffer;
|
||||
+ hPsy->pScratchTns = sbrram->sbr_envIBuffer;
|
||||
|
||||
|
||||
|
||||
diff -Nupr src.p9/psy_main.h src.p10/psy_main.h
|
||||
--- src.p9/psy_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/psy_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -16,7 +16,7 @@ typedef struct {
|
||||
}PSY_KERNEL;
|
||||
|
||||
|
||||
-int PsyNew( PSY_KERNEL *hPsy, int nChan);
|
||||
+int PsyNew( AACRam_t *aacram, SBRRam_t *sbrram, PSY_KERNEL *hPsy, int nChan);
|
||||
int PsyDelete( PSY_KERNEL *hPsy);
|
||||
|
||||
int PsyOutNew( PSY_OUT *hPsyOut);
|
||||
diff -Nupr src.p9/qc_main.c src.p10/qc_main.c
|
||||
--- src.p9/qc_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/qc_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -118,7 +118,7 @@ static int framePadding(int bitRate,
|
||||
|
||||
**********************************************************************************/
|
||||
|
||||
-int QCOutNew(QC_OUT *hQC, int nChannels)
|
||||
+int QCOutNew(AACRam_t *aacram, QC_OUT *hQC, int nChannels)
|
||||
{
|
||||
int error=0;
|
||||
int i;
|
||||
@@ -135,13 +135,13 @@ int QCOutNew(QC_OUT *hQC, int nChannels)
|
||||
|
||||
for (i=0; i<nChannels; i++) {
|
||||
|
||||
- hQC->qcChannel[i].quantSpec = &quantSpec[i*FRAME_LEN_LONG];
|
||||
+ hQC->qcChannel[i].quantSpec = &aacram->quantSpec[i*FRAME_LEN_LONG];
|
||||
|
||||
|
||||
- hQC->qcChannel[i].maxValueInSfb = &maxValueInSfb[i*MAX_GROUPED_SFB];
|
||||
+ hQC->qcChannel[i].maxValueInSfb = &aacram->maxValueInSfb[i*MAX_GROUPED_SFB];
|
||||
|
||||
|
||||
- hQC->qcChannel[i].scf = &scf[i*MAX_GROUPED_SFB];
|
||||
+ hQC->qcChannel[i].scf = &aacram->scf[i*MAX_GROUPED_SFB];
|
||||
}
|
||||
|
||||
|
||||
@@ -231,7 +231,7 @@ void QCDelete(QC_STATE *hQC)
|
||||
return:
|
||||
|
||||
**********************************************************************************/
|
||||
-int QCInit(QC_STATE *hQC,
|
||||
+int QCInit(AACRam_t *aacram, QC_STATE *hQC,
|
||||
struct QC_INIT *init)
|
||||
{
|
||||
|
||||
@@ -264,7 +264,7 @@ int QCInit(QC_STATE *hQC,
|
||||
hQC->elementBits.chBitrate);
|
||||
|
||||
|
||||
- BCInit();
|
||||
+ BCInit(aacram);
|
||||
|
||||
|
||||
|
||||
@@ -279,7 +279,8 @@ int QCInit(QC_STATE *hQC,
|
||||
return:
|
||||
|
||||
**********************************************************************************/
|
||||
-int QCMain(QC_STATE* hQC,
|
||||
+int QCMain(AACRam_t *aacram,
|
||||
+ QC_STATE* hQC,
|
||||
int nChannels,
|
||||
ELEMENT_BITS* elBits,
|
||||
ATS_ELEMENT* adjThrStateElement,
|
||||
@@ -350,7 +351,8 @@ int QCMain(QC_STATE* hQC,
|
||||
qcOutElement->staticBitsUsed+qcOutElement->ancBitsUsed);
|
||||
|
||||
|
||||
- EstimateScaleFactors(psyOutChannel,
|
||||
+ EstimateScaleFactors(aacram,
|
||||
+ psyOutChannel,
|
||||
qcOutChannel,
|
||||
sfbFormFactor,
|
||||
sfbNRelevantLines,
|
||||
@@ -427,7 +429,8 @@ int QCMain(QC_STATE* hQC,
|
||||
|
||||
|
||||
chDynBits =
|
||||
- dynBitCount(qcOutChannel[ch].quantSpec,
|
||||
+ dynBitCount(aacram,
|
||||
+ qcOutChannel[ch].quantSpec,
|
||||
qcOutChannel[ch].maxValueInSfb,
|
||||
qcOutChannel[ch].scf,
|
||||
psyOutChannel[ch].windowSequence,
|
||||
diff -Nupr src.p9/qc_main.h src.p10/qc_main.h
|
||||
--- src.p9/qc_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/qc_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -4,19 +4,18 @@
|
||||
#ifndef _QC_MAIN_H
|
||||
#define _QC_MAIN_H
|
||||
|
||||
-
|
||||
-
|
||||
-int QCOutNew(QC_OUT *hQC, int nChannels);
|
||||
+int QCOutNew(AACRam_t *aacram, QC_OUT *hQC, int nChannels);
|
||||
|
||||
void QCOutDelete(QC_OUT *hQC);
|
||||
|
||||
int QCNew(QC_STATE *hQC);
|
||||
|
||||
-int QCInit(QC_STATE *hQC, struct QC_INIT *init);
|
||||
+int QCInit(AACRam_t *aacram, QC_STATE *hQC, struct QC_INIT *init);
|
||||
void QCDelete(QC_STATE *hQC);
|
||||
|
||||
|
||||
-int QCMain(QC_STATE *hQC,
|
||||
+int QCMain(AACRam_t *aacram,
|
||||
+ QC_STATE *hQC,
|
||||
int nChannels,
|
||||
ELEMENT_BITS* elBits,
|
||||
ATS_ELEMENT* adjThrStateElement,
|
||||
diff -Nupr src.p9/qmf_enc.c src.p10/qmf_enc.c
|
||||
--- src.p9/qmf_enc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/qmf_enc.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -1094,7 +1094,8 @@ getEnergyFromCplxQmfData(float **energyV
|
||||
*/
|
||||
|
||||
int
|
||||
-createQmfBank (int chan,
|
||||
+createQmfBank (SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_QMF_FILTER_BANK h_sbrQmf
|
||||
|
||||
|
||||
@@ -1112,7 +1113,7 @@ createQmfBank (int chan,
|
||||
h_sbrQmf->p_filter = sbr_qmf_64_640;
|
||||
|
||||
|
||||
- h_sbrQmf->qmf_states_buffer = sbr_QmfStatesAnalysis + chan * 640;
|
||||
+ h_sbrQmf->qmf_states_buffer = sbrram->sbr_QmfStatesAnalysis + chan * 640;
|
||||
|
||||
|
||||
|
||||
@@ -1228,14 +1229,14 @@ SynthesisQmfFiltering (float **sbrReal,
|
||||
|
||||
*******************************************************************************/
|
||||
int
|
||||
-CreateSynthesisQmfBank (HANDLE_SBR_QMF_FILTER_BANK hs)
|
||||
+CreateSynthesisQmfBank (SBRRam_t *sbrram,HANDLE_SBR_QMF_FILTER_BANK hs)
|
||||
{
|
||||
float *ptr;
|
||||
|
||||
|
||||
|
||||
|
||||
- ptr = &PsBuf5[0];
|
||||
+ ptr = &sbrram->PsBuf5[0];
|
||||
|
||||
|
||||
memset (hs, 0, sizeof (SBR_QMF_FILTER_BANK));
|
||||
diff -Nupr src.p9/qmf_enc.h src.p10/qmf_enc.h
|
||||
--- src.p9/qmf_enc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/qmf_enc.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -31,7 +31,7 @@ void sbrAnalysisFiltering (const float *
|
||||
HANDLE_SBR_QMF_FILTER_BANK qmfBank);
|
||||
|
||||
|
||||
-int createQmfBank (int chan,HANDLE_SBR_QMF_FILTER_BANK h_sbrQmf);
|
||||
+int createQmfBank (SBRRam_t *sbrram,int chan,HANDLE_SBR_QMF_FILTER_BANK h_sbrQmf);
|
||||
|
||||
|
||||
void deleteQmfBank (HANDLE_SBR_QMF_FILTER_BANK h_sbrQmf);
|
||||
@@ -52,7 +52,7 @@ SynthesisQmfFiltering (float **sbrReal,
|
||||
|
||||
|
||||
int
|
||||
-CreateSynthesisQmfBank (HANDLE_SBR_QMF_FILTER_BANK h_sbrQmf);
|
||||
+CreateSynthesisQmfBank (SBRRam_t *sbrram,HANDLE_SBR_QMF_FILTER_BANK h_sbrQmf);
|
||||
|
||||
|
||||
|
||||
diff -Nupr src.p9/sbr_main.c src.p10/sbr_main.c
|
||||
--- src.p9/sbr_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/sbr_main.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -377,7 +377,7 @@ EnvClose (HANDLE_SBR_ENCODER hEnvEnc)
|
||||
|
||||
|
||||
deleteEnvChannel (hEnvEnc->hEnvChannel[i]);
|
||||
-
|
||||
+ free(hEnvEnc->hEnvChannel[i]);
|
||||
|
||||
hEnvEnc->hEnvChannel[i] = NULL;
|
||||
}
|
||||
@@ -390,6 +390,7 @@ EnvClose (HANDLE_SBR_ENCODER hEnvEnc)
|
||||
{
|
||||
|
||||
DeleteSynthesisQmfBank ((HANDLE_SBR_QMF_FILTER_BANK*)&hEnvEnc->hSynthesisQmfBank);
|
||||
+ free(hEnvEnc->hSynthesisQmfBank);
|
||||
}
|
||||
|
||||
|
||||
@@ -397,6 +398,7 @@ EnvClose (HANDLE_SBR_ENCODER hEnvEnc)
|
||||
{
|
||||
|
||||
DeletePsEnc(&hEnvEnc->hPsEnc);
|
||||
+ free(hEnvEnc->hPsEnc);
|
||||
}
|
||||
#endif /* #ifndef MONO_ONLY */
|
||||
|
||||
@@ -535,7 +537,8 @@ EnvEncodeFrame (HANDLE_SBR_ENCODER hEnvE
|
||||
|
||||
|
||||
|
||||
- extractSbrEnvelope(samples,
|
||||
+ extractSbrEnvelope(hEnvEncoder->fftctx,
|
||||
+ samples,
|
||||
pCoreBuffer,
|
||||
timeInStride,
|
||||
&hEnvEncoder->sbrConfigData,
|
||||
@@ -587,7 +590,8 @@ EnvEncodeFrame (HANDLE_SBR_ENCODER hEnvE
|
||||
*****************************************************************************/
|
||||
|
||||
static int
|
||||
-createEnvChannel (int chan,
|
||||
+createEnvChannel (SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_CONFIG_DATA sbrConfigData,
|
||||
HANDLE_SBR_HEADER_DATA sbrHeaderData,
|
||||
HANDLE_ENV_CHANNEL hEnv,
|
||||
@@ -616,7 +620,7 @@ createEnvChannel (int chan,
|
||||
|
||||
|
||||
|
||||
- if(createQmfBank (chan, &hEnv->sbrQmf)){
|
||||
+ if(createQmfBank (sbrram, chan, &hEnv->sbrQmf)){
|
||||
|
||||
|
||||
return (1); /* initialisation failed */
|
||||
@@ -627,7 +631,8 @@ createEnvChannel (int chan,
|
||||
|
||||
|
||||
|
||||
- if(CreateTonCorrParamExtr (chan,
|
||||
+ if(CreateTonCorrParamExtr (sbrram,
|
||||
+ chan,
|
||||
&hEnv->TonCorr,
|
||||
|
||||
|
||||
@@ -691,7 +696,8 @@ createEnvChannel (int chan,
|
||||
|
||||
|
||||
|
||||
- if(CreateExtractSbrEnvelope (chan,
|
||||
+ if(CreateExtractSbrEnvelope (sbrram,
|
||||
+ chan,
|
||||
&hEnv->sbrExtractEnvelope,
|
||||
|
||||
startIndex
|
||||
@@ -742,7 +748,8 @@ createEnvChannel (int chan,
|
||||
hEnv->encEnvData.freq_res_fixfix);
|
||||
|
||||
|
||||
- if(CreateSbrTransientDetector (chan,
|
||||
+ if(CreateSbrTransientDetector (sbrram,
|
||||
+ chan,
|
||||
&hEnv->sbrTransientDetector,
|
||||
|
||||
sbrConfigData->sampleFreq,
|
||||
@@ -782,7 +789,8 @@ createEnvChannel (int chan,
|
||||
|
||||
*****************************************************************************/
|
||||
int
|
||||
-EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
+EnvOpen (SBRRam_t *sbrram,
|
||||
+ HANDLE_SBR_ENCODER hEnvEnc,
|
||||
float *pCoreBuffer,
|
||||
sbrConfigurationPtr params,
|
||||
int *coreBandWith)
|
||||
@@ -802,7 +810,7 @@ EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
for (ch=0; ch<MAX_CHANNELS; ch++)
|
||||
{
|
||||
|
||||
- hEnvEnc->hEnvChannel[ch] = &EnvChannel[ch];
|
||||
+ hEnvEnc->hEnvChannel[ch] = calloc(1, sizeof(struct ENV_CHANNEL));
|
||||
}
|
||||
|
||||
|
||||
@@ -817,19 +825,19 @@ EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
|
||||
|
||||
|
||||
- hEnvEnc->sbrConfigData.freqBandTable[LO] = sbr_freqBandTableLO;
|
||||
+ hEnvEnc->sbrConfigData.freqBandTable[LO] = sbrram->sbr_freqBandTableLO;
|
||||
|
||||
|
||||
memset(hEnvEnc->sbrConfigData.freqBandTable[LO],0,sizeof(unsigned char)*MAX_FREQ_COEFFS/2+1);
|
||||
|
||||
|
||||
- hEnvEnc->sbrConfigData.freqBandTable[HI] = sbr_freqBandTableHI;
|
||||
+ hEnvEnc->sbrConfigData.freqBandTable[HI] = sbrram->sbr_freqBandTableHI;
|
||||
|
||||
|
||||
memset(hEnvEnc->sbrConfigData.freqBandTable[HI],0,sizeof(unsigned char)*MAX_FREQ_COEFFS+1);
|
||||
|
||||
|
||||
- hEnvEnc->sbrConfigData.v_k_master = sbr_v_k_master;
|
||||
+ hEnvEnc->sbrConfigData.v_k_master = sbrram->sbr_v_k_master;
|
||||
|
||||
|
||||
memset(hEnvEnc->sbrConfigData.v_k_master,0,sizeof(unsigned char)*MAX_FREQ_COEFFS+1);
|
||||
@@ -986,7 +994,8 @@ EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
for ( ch = 0; ch < hEnvEnc->sbrConfigData.nChannels; ch++ ) {
|
||||
|
||||
|
||||
- if(createEnvChannel(ch,
|
||||
+ if(createEnvChannel(sbrram,
|
||||
+ ch,
|
||||
&hEnvEnc->sbrConfigData,
|
||||
&hEnvEnc->sbrHeaderData,
|
||||
hEnvEnc->hEnvChannel[ch],
|
||||
@@ -1011,12 +1020,13 @@ EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
if (params->usePs)
|
||||
{
|
||||
|
||||
- if(createQmfBank (1, &hEnvEnc->hEnvChannel[1]->sbrQmf)){
|
||||
+ if(createQmfBank (sbrram, 1, &hEnvEnc->hEnvChannel[1]->sbrQmf)){
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
- if(CreateExtractSbrEnvelope (1,
|
||||
+ if(CreateExtractSbrEnvelope (sbrram,
|
||||
+ 1,
|
||||
&hEnvEnc->hEnvChannel[1]->sbrExtractEnvelope,
|
||||
576
|
||||
)) {
|
||||
@@ -1025,10 +1035,10 @@ EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
}
|
||||
|
||||
|
||||
- hEnvEnc->hSynthesisQmfBank = &SynthesisQmfBank;
|
||||
+ hEnvEnc->hSynthesisQmfBank = calloc(1, sizeof(SBR_QMF_FILTER_BANK));
|
||||
|
||||
|
||||
- if(CreateSynthesisQmfBank (hEnvEnc->hSynthesisQmfBank)){
|
||||
+ if(CreateSynthesisQmfBank (sbrram, hEnvEnc->hSynthesisQmfBank)){
|
||||
|
||||
|
||||
DeleteSynthesisQmfBank ((HANDLE_SBR_QMF_FILTER_BANK*)&hEnvEnc->hSynthesisQmfBank);
|
||||
@@ -1038,10 +1048,11 @@ EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
}
|
||||
|
||||
|
||||
- hEnvEnc->hPsEnc = &psEncoder;
|
||||
+ hEnvEnc->hPsEnc = calloc(1, sizeof(struct PS_ENC));
|
||||
|
||||
|
||||
- if(CreatePsEnc (hEnvEnc->hPsEnc,
|
||||
+ if(CreatePsEnc (sbrram,
|
||||
+ hEnvEnc->hPsEnc,
|
||||
params->psMode)){
|
||||
|
||||
|
||||
diff -Nupr src.p9/sbr_main.h src.p10/sbr_main.h
|
||||
--- src.p9/sbr_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/sbr_main.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -102,7 +102,8 @@ typedef struct SBR_ENCODER *HANDLE_SBR_E
|
||||
|
||||
|
||||
int
|
||||
-EnvOpen (HANDLE_SBR_ENCODER hEnvEnc,
|
||||
+EnvOpen (SBRRam_t *sbrram,
|
||||
+ HANDLE_SBR_ENCODER hEnvEnc,
|
||||
float *pCoreBuffer,
|
||||
sbrConfigurationPtr params,
|
||||
int *coreBandWith
|
||||
diff -Nupr src.p9/sf_estim.c src.p10/sf_estim.c
|
||||
--- src.p9/sf_estim.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/sf_estim.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -1035,7 +1035,8 @@ static void assimilateMultipleScf(PSY_OU
|
||||
|
||||
|
||||
static void
|
||||
-estimateScaleFactorsChannel(PSY_OUT_CHANNEL *psyOutChan,
|
||||
+estimateScaleFactorsChannel(AACRam_t *aacram,
|
||||
+ PSY_OUT_CHANNEL *psyOutChan,
|
||||
short *scf,
|
||||
int *globalGain,
|
||||
float *sfbFormFactor,
|
||||
@@ -1062,7 +1063,7 @@ estimateScaleFactorsChannel(PSY_OUT_CHAN
|
||||
for (i=0; i<FRAME_LEN_LONG; i++) {
|
||||
|
||||
|
||||
- expSpec[i] = 0.0f;
|
||||
+ aacram->expSpec[i] = 0.0f;
|
||||
quantSpec[i] = 0;
|
||||
}
|
||||
|
||||
@@ -1124,15 +1125,15 @@ estimateScaleFactorsChannel(PSY_OUT_CHAN
|
||||
|
||||
/* find better scalefactor with analysis by synthesis */
|
||||
|
||||
- calcExpSpec(expSpec+psyOutChan->sfbOffsets[i],
|
||||
+ calcExpSpec(aacram->expSpec+psyOutChan->sfbOffsets[i],
|
||||
psyOutChan->mdctSpectrum+psyOutChan->sfbOffsets[i],
|
||||
psyOutChan->sfbOffsets[i+1]-psyOutChan->sfbOffsets[i]);
|
||||
|
||||
|
||||
scfInt = improveScf(psyOutChan->mdctSpectrum+psyOutChan->sfbOffsets[i],
|
||||
- expSpec+psyOutChan->sfbOffsets[i],
|
||||
+ aacram->expSpec+psyOutChan->sfbOffsets[i],
|
||||
quantSpec+psyOutChan->sfbOffsets[i],
|
||||
- quantSpecTmp+psyOutChan->sfbOffsets[i],
|
||||
+ aacram->quantSpecTmp+psyOutChan->sfbOffsets[i],
|
||||
psyOutChan->sfbOffsets[i+1]-psyOutChan->sfbOffsets[i],
|
||||
thresh, scfInt, minSfMaxQuant[i],
|
||||
&sfbDist[i], &minScfCalculated[i]);
|
||||
@@ -1155,12 +1156,12 @@ estimateScaleFactorsChannel(PSY_OUT_CHAN
|
||||
}
|
||||
|
||||
|
||||
- assimilateSingleScf(psyOutChan, expSpec, quantSpec, quantSpecTmp, scf,
|
||||
+ assimilateSingleScf(psyOutChan, aacram->expSpec, quantSpec, aacram->quantSpecTmp, scf,
|
||||
minSfMaxQuant, sfbDist, sfbConstPePart,
|
||||
sfbFormFactor, sfbNRelevantLines, minScfCalculated, 1);
|
||||
|
||||
|
||||
- assimilateMultipleScf(psyOutChan, expSpec, quantSpec, quantSpecTmp, scf,
|
||||
+ assimilateMultipleScf(psyOutChan, aacram->expSpec, quantSpec, aacram->quantSpecTmp, scf,
|
||||
minSfMaxQuant, sfbDist, sfbConstPePart,
|
||||
sfbFormFactor, sfbNRelevantLines);
|
||||
}
|
||||
@@ -1204,7 +1205,7 @@ estimateScaleFactorsChannel(PSY_OUT_CHAN
|
||||
/* ??? */
|
||||
sfbDist[i] =
|
||||
calcSfbDist(psyOutChan->mdctSpectrum+psyOutChan->sfbOffsets[i],
|
||||
- expSpec+psyOutChan->sfbOffsets[i],
|
||||
+ aacram->expSpec+psyOutChan->sfbOffsets[i],
|
||||
quantSpec+psyOutChan->sfbOffsets[i],
|
||||
psyOutChan->sfbOffsets[i+1]-psyOutChan->sfbOffsets[i],
|
||||
scf[i]);
|
||||
@@ -1301,7 +1302,8 @@ CalcFormFactor(float sfbFormFactor[MAX_C
|
||||
|
||||
|
||||
void
|
||||
-EstimateScaleFactors(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
|
||||
+EstimateScaleFactors(AACRam_t *aacram,
|
||||
+ PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
|
||||
QC_OUT_CHANNEL qcOutChannel[MAX_CHANNELS],
|
||||
float sfbFormFactor[MAX_CHANNELS][MAX_GROUPED_SFB],
|
||||
float sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],
|
||||
@@ -1315,7 +1317,8 @@ EstimateScaleFactors(PSY_OUT_CHANNEL psy
|
||||
for (j=0; j<nChannels; j++) {
|
||||
|
||||
|
||||
- estimateScaleFactorsChannel(&psyOutChannel[j],
|
||||
+ estimateScaleFactorsChannel(aacram,
|
||||
+ &psyOutChannel[j],
|
||||
qcOutChannel[j].scf,
|
||||
&(qcOutChannel[j].globalGain),
|
||||
sfbFormFactor[j],
|
||||
diff -Nupr src.p9/sf_estim.h src.p10/sf_estim.h
|
||||
--- src.p9/sf_estim.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/sf_estim.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -13,7 +13,8 @@ CalcFormFactor(float sfbFormFactor[MAX_C
|
||||
const int nChannels);
|
||||
|
||||
void
|
||||
-EstimateScaleFactors(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
|
||||
+EstimateScaleFactors(AACRam_t *aacram,
|
||||
+ PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
|
||||
QC_OUT_CHANNEL qcOutChannel[MAX_CHANNELS],
|
||||
float sfbFormFactor[MAX_CHANNELS][MAX_GROUPED_SFB],
|
||||
float sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],
|
||||
diff -Nupr src.p9/ton_corr.c src.p10/ton_corr.c
|
||||
--- src.p9/ton_corr.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/ton_corr.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -712,7 +712,8 @@ resetPatch(HANDLE_SBR_TON_CORR_EST hTonC
|
||||
*/
|
||||
/**************************************************************************/
|
||||
int
|
||||
-CreateTonCorrParamExtr (int chan,
|
||||
+CreateTonCorrParamExtr (SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_TON_CORR_EST hTonCorr,
|
||||
int fs,
|
||||
int usb,
|
||||
@@ -762,7 +763,7 @@ CreateTonCorrParamExtr (int chan,
|
||||
|
||||
for(i=0;i<hTonCorr->numberOfEstimates;i++) {
|
||||
|
||||
- hTonCorr->quotaMatrix[i] = &(sbr_quotaMatrix[chan* NO_OF_ESTIMATES*QMF_CHANNELS + i*noQmfChannels]);
|
||||
+ hTonCorr->quotaMatrix[i] = &(sbrram->sbr_quotaMatrix[chan* NO_OF_ESTIMATES*QMF_CHANNELS + i*noQmfChannels]);
|
||||
|
||||
|
||||
memset(hTonCorr->quotaMatrix[i] ,0, sizeof(float)*QMF_CHANNELS);
|
||||
@@ -815,7 +816,8 @@ CreateTonCorrParamExtr (int chan,
|
||||
|
||||
|
||||
|
||||
- if(CreateSbrMissingHarmonicsDetector (chan,
|
||||
+ if(CreateSbrMissingHarmonicsDetector (sbrram,
|
||||
+ chan,
|
||||
&hTonCorr->sbrMissingHarmonicsDetector,
|
||||
fs,
|
||||
freqBandTable[HI],
|
||||
diff -Nupr src.p9/ton_corr.h src.p10/ton_corr.h
|
||||
--- src.p9/ton_corr.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/ton_corr.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -72,7 +72,8 @@ TonCorrParamExtr(HANDLE_SBR_TON_CORR_EST
|
||||
|
||||
|
||||
int
|
||||
-CreateTonCorrParamExtr (int chan,
|
||||
+CreateTonCorrParamExtr (SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_TON_CORR_EST hTonCorr,
|
||||
int fs,
|
||||
int usb,
|
||||
diff -Nupr src.p9/tran_det.c src.p10/tran_det.c
|
||||
--- src.p9/tran_det.c 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/tran_det.c 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -489,7 +489,8 @@ transientDetect (float **Energies,
|
||||
|
||||
|
||||
int
|
||||
-CreateSbrTransientDetector (int chan,
|
||||
+CreateSbrTransientDetector (SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_TRANSIENT_DETECTOR h_sbrTransientDetector,
|
||||
|
||||
int sampleFreq,
|
||||
@@ -555,13 +556,13 @@ CreateSbrTransientDetector (int chan,
|
||||
h_sbrTransientDetector->prevLowBandEnergy = 0;
|
||||
|
||||
|
||||
- h_sbrTransientDetector->thresholds = &sbr_thresholds[chan*QMF_CHANNELS];
|
||||
+ h_sbrTransientDetector->thresholds = &sbrram->sbr_thresholds[chan*QMF_CHANNELS];
|
||||
|
||||
|
||||
memset(h_sbrTransientDetector->thresholds,0,sizeof(float)*QMF_CHANNELS);
|
||||
|
||||
|
||||
- h_sbrTransientDetector->transients = &sbr_transients[chan*h_sbrTransientDetector->buffer_length];
|
||||
+ h_sbrTransientDetector->transients = &sbrram->sbr_transients[chan*h_sbrTransientDetector->buffer_length];
|
||||
|
||||
|
||||
memset(h_sbrTransientDetector->transients,0,sizeof(float)*h_sbrTransientDetector->buffer_length);
|
||||
diff -Nupr src.p9/tran_det.h src.p10/tran_det.h
|
||||
--- src.p9/tran_det.h 2010-10-21 13:06:37.000000000 +0300
|
||||
+++ src.p10/tran_det.h 2010-10-21 13:06:37.000000000 +0300
|
||||
@@ -36,7 +36,8 @@ void transientDetect (float **Energies,
|
||||
);
|
||||
|
||||
int
|
||||
-CreateSbrTransientDetector (int chan,
|
||||
+CreateSbrTransientDetector (SBRRam_t *sbrram,
|
||||
+ int chan,
|
||||
HANDLE_SBR_TRANSIENT_DETECTOR h_sbrTransientDetector,
|
||||
|
||||
int sampleFreq,
|
||||
11
patches/Makefile.am
Normal file
11
patches/Makefile.am
Normal file
@@ -0,0 +1,11 @@
|
||||
EXTRA_DIST = \
|
||||
0001-move_headers_at_one_place.patch \
|
||||
0002-cfftn-add-fftw3f.patch \
|
||||
0003-faac_compatible.patch \
|
||||
0004-const_where_possible.patch \
|
||||
0005-fix_bitbuff_64bit.patch \
|
||||
0006-add_bitrates.patch \
|
||||
0007-fix_si_bits_dup.patch \
|
||||
0008-enchance_config.patch \
|
||||
0009-move_aac_sbr_enc_2_hdr.patch \
|
||||
0010-use_dynamic_alloc.patch
|
||||
Reference in New Issue
Block a user