X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Faacps.h;h=3efa38ad889a31c94086efc84927f9461bb306da;hb=d7e0d428faaa04e2fd850eca82f314ca2ad3dfe5;hp=61edce35496435720215d2e09c98e1d870ebd81f;hpb=3eea8edf618079e44719fe059ddd953b21ef1ba9;p=ffmpeg diff --git a/libavcodec/aacps.h b/libavcodec/aacps.h index 61edce35496..3efa38ad889 100644 --- a/libavcodec/aacps.h +++ b/libavcodec/aacps.h @@ -24,6 +24,8 @@ #include +#include "libavutil/mem_internal.h" + #include "aacpsdsp.h" #include "avcodec.h" #include "get_bits.h" @@ -37,8 +39,13 @@ #define PS_MAX_DELAY 14 #define PS_AP_LINKS 3 #define PS_MAX_AP_DELAY 5 +#define PS_BASELINE 0 ///< Operate in Baseline PS mode + ///< Baseline implies 10 or 20 stereo bands, + ///< mixing mode A, and no ipd/opd -typedef struct PSContext { +#define numQMFSlots 32 //numTimeSlots * RATE + +typedef struct PSCommonContext { int start; int enable_iid; int iid_quant; @@ -60,6 +67,10 @@ typedef struct PSContext { int8_t opd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]; ///< Overall Phase Difference Parameters int is34bands; int is34bands_old; +} PSCommonContext; + +typedef struct PSContext { + PSCommonContext common; DECLARE_ALIGNED(16, INTFLOAT, in_buf)[5][44][2]; DECLARE_ALIGNED(16, INTFLOAT, delay)[PS_MAX_SSB][PS_QMF_TIME_SLOTS + PS_MAX_DELAY][2]; @@ -78,9 +89,14 @@ typedef struct PSContext { PSDSPContext dsp; } PSContext; +extern const int8_t ff_k_to_i_20[]; +extern const int8_t ff_k_to_i_34[]; + +void ff_ps_init_common(void); void AAC_RENAME(ff_ps_init)(void); void AAC_RENAME(ff_ps_ctx_init)(PSContext *ps); -int AAC_RENAME(ff_ps_read_data)(AVCodecContext *avctx, GetBitContext *gb, PSContext *ps, int bits_left); +int ff_ps_read_data(AVCodecContext *avctx, GetBitContext *gb, + PSCommonContext *ps, int bits_left); int AAC_RENAME(ff_ps_apply)(AVCodecContext *avctx, PSContext *ps, INTFLOAT L[2][38][64], INTFLOAT R[2][38][64], int top); #endif /* AVCODEC_AACPS_H */