summaryrefslogtreecommitdiffstats
path: root/libfaad2/sbr_dec.h
diff options
context:
space:
mode:
authordiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-24 17:31:36 +0000
committerdiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-24 17:31:36 +0000
commite1ece5e2eb68c81b1645c9ff989c833c4d67dfd8 (patch)
tree8553b3a4ef8164d14ff1b4a3f67e57cfa1d8908a /libfaad2/sbr_dec.h
parent2887bacbdb6bd320e4840fd230e92a59cc74b9ae (diff)
downloadmpv-e1ece5e2eb68c81b1645c9ff989c833c4d67dfd8.tar.bz2
mpv-e1ece5e2eb68c81b1645c9ff989c833c4d67dfd8.tar.xz
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
patch by adland <adland123 at yahoo dot com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13454 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libfaad2/sbr_dec.h')
-rw-r--r--libfaad2/sbr_dec.h68
1 files changed, 39 insertions, 29 deletions
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