From e1ece5e2eb68c81b1645c9ff989c833c4d67dfd8 Mon Sep 17 00:00:00 2001 From: diego Date: Fri, 24 Sep 2004 17:31:36 +0000 Subject: Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12. patch by adland git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13454 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libfaad2/sbr_dec.h | 68 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 29 deletions(-) (limited to 'libfaad2/sbr_dec.h') diff --git a/libfaad2/sbr_dec.h b/libfaad2/sbr_dec.h index e674320a77..5dc7f1279e 100644 --- a/libfaad2/sbr_dec.h +++ b/libfaad2/sbr_dec.h @@ -23,7 +23,7 @@ ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. ** ** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30 -** $Id: sbr_dec.h,v 1.3 2004/06/02 22:59:03 diego Exp $ +** $Id: sbr_dec.h,v 1.4 2004/06/23 13:50:51 diego Exp $ ** detailed CVS changelog at http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/ **/ @@ -45,24 +45,27 @@ extern "C" { #define MAX_NTSRHFG 40 #define MAX_NTSR 32 /* max number_time_slots * rate, ok for DRM and not DRM mode */ +/* MAX_M: maximum value for M */ +#define MAX_M 49 +/* MAX_L_E: maximum value for L_E */ +#define MAX_L_E 5 typedef struct { real_t *x; + int16_t x_index; uint8_t channels; } qmfa_info; typedef struct { - real_t *v[2]; - uint8_t v_index; + real_t *v; + int16_t v_index; uint8_t channels; -#ifdef USE_SSE - void (*qmf_func)(void *a, void *b, void *c, void *d); -#endif } qmfs_info; typedef struct { uint32_t sample_rate; + uint32_t maxAACLine; uint8_t rate; uint8_t just_seeked; @@ -100,27 +103,33 @@ typedef struct uint8_t L_E_prev[2]; uint8_t L_Q[2]; - uint8_t t_E[2][6]; + uint8_t t_E[2][MAX_L_E+1]; uint8_t t_Q[2][3]; - uint8_t f[2][6]; + uint8_t f[2][MAX_L_E+1]; uint8_t f_prev[2]; real_t *G_temp_prev[2][5]; real_t *Q_temp_prev[2][5]; + int8_t GQ_ringbuf_index[2]; - int16_t E[2][64][5]; + int16_t E[2][64][MAX_L_E]; int16_t E_prev[2][64]; - real_t E_orig[2][64][5]; - real_t E_curr[2][64][5]; +#ifndef FIXED_POINT + real_t E_orig[2][64][MAX_L_E]; +#endif + real_t E_curr[2][64][MAX_L_E]; int32_t Q[2][64][2]; +#ifndef FIXED_POINT + real_t Q_div[2][64][2]; + real_t Q_div2[2][64][2]; +#endif int32_t Q_prev[2][64]; - real_t Q_orig[2][64][2]; int8_t l_A[2]; int8_t l_A_prev[2]; - uint8_t bs_invf_mode[2][5]; - uint8_t bs_invf_mode_prev[2][5]; + uint8_t bs_invf_mode[2][MAX_L_E]; + uint8_t bs_invf_mode_prev[2][MAX_L_E]; real_t bwArray[2][64]; real_t bwArray_prev[2][64]; @@ -144,6 +153,10 @@ typedef struct int8_t prevEnvIsShort[2]; int8_t kx_prev; + uint8_t bsco; + uint8_t bsco_prev; + uint8_t M_prev; + uint16_t frame_len; uint8_t Reset; uint32_t frame; @@ -154,24 +167,21 @@ typedef struct qmfs_info *qmfs[2]; qmf_t Xsbr[2][MAX_NTSRHFG][64]; - qmf_t Xcodec[2][MAX_NTSRHFG][32]; #ifdef DRM - int8_t lcstereo_flag; - uint8_t bs_dataextra; uint8_t Is_DRM_SBR; #ifdef DRM_PS - drm_ps_info drm_ps; + drm_ps_info *drm_ps; #endif #endif - uint8_t numTimeSlotsRate; - uint8_t numTimeSlots; - uint8_t tHFGen; - uint8_t tHFAdj; + uint8_t numTimeSlotsRate; + uint8_t numTimeSlots; + uint8_t tHFGen; + uint8_t tHFAdj; #ifdef PS_DEC - ps_info ps; + ps_info *ps; #endif #if (defined(PS_DEC) || defined(DRM_PS)) uint8_t ps_used; @@ -217,20 +227,20 @@ typedef struct } sbr_info; sbr_info *sbrDecodeInit(uint16_t framelength, uint8_t id_aac, - uint32_t sample_rate + uint32_t sample_rate, uint8_t downSampledSBR #ifdef DRM - , uint8_t IsDRM + , uint8_t IsDRM #endif - ); + ); void sbrDecodeEnd(sbr_info *sbr); uint8_t sbrDecodeCoupleFrame(sbr_info *sbr, real_t *left_chan, real_t *right_chan, - const uint8_t just_seeked, const uint8_t upsample_only); + const uint8_t just_seeked, const uint8_t downSampledSBR); uint8_t sbrDecodeSingleFrame(sbr_info *sbr, real_t *channel, - const uint8_t just_seeked, const uint8_t upsample_only); + const uint8_t just_seeked, const uint8_t downSampledSBR); #if (defined(PS_DEC) || defined(DRM_PS)) uint8_t sbrDecodeSingleFramePS(sbr_info *sbr, real_t *left_channel, real_t *right_channel, - const uint8_t just_seeked, const uint8_t upsample_only); + const uint8_t just_seeked, const uint8_t downSampledSBR); #endif -- cgit v1.2.3