1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- $OpenBSD: patch-libavcodec_aac_h,v 1.3 2015/12/06 08:51:46 ajacoutot Exp $
- AAC encoder: Extensive improvements
- aacenc: add support for encoding files using Long Term Prediction
- avcodec/aac_tablegen: get rid of hardcoded tables entirely
- --- libavcodec/aac.h.orig Thu Nov 12 02:08:28 2015
- +++ libavcodec/aac.h Sun Nov 29 18:42:06 2015
- @@ -151,6 +151,8 @@ typedef struct PredictorState {
- #define SCALE_MAX_DIFF 60 ///< maximum scalefactor difference allowed by standard
- #define SCALE_DIFF_ZERO 60 ///< codebook index corresponding to zero scalefactor indices difference
-
- +#define POW_SF2_ZERO 200 ///< ff_aac_pow2sf_tab index corresponding to pow(2, 0);
- +
- #define NOISE_PRE 256 ///< preamble for NOISE_BT, put in bitstream with the first noise band
- #define NOISE_PRE_BITS 9 ///< length of preamble
- #define NOISE_OFFSET 90 ///< subtracted from global gain, used as offset for the preamble
- @@ -161,6 +163,7 @@ typedef struct PredictorState {
- typedef struct LongTermPrediction {
- int8_t present;
- int16_t lag;
- + int coef_idx;
- INTFLOAT coef;
- int8_t used[MAX_LTP_LONG_SFB];
- } LongTermPrediction;
- @@ -252,6 +255,7 @@ typedef struct SingleChannelElement {
- INTFLOAT sf[120]; ///< scalefactors
- int sf_idx[128]; ///< scalefactor indices (used by encoder)
- uint8_t zeroes[128]; ///< band is not coded (used by encoder)
- + uint8_t can_pns[128]; ///< band is allowed to PNS (informative)
- float is_ener[128]; ///< Intensity stereo pos (used by encoder)
- float pns_ener[128]; ///< Noise energy values (used by encoder)
- DECLARE_ALIGNED(32, INTFLOAT, pcoeffs)[1024]; ///< coefficients for IMDCT, pristine
- @@ -259,6 +263,7 @@ typedef struct SingleChannelElement {
- DECLARE_ALIGNED(32, INTFLOAT, saved)[1536]; ///< overlap
- DECLARE_ALIGNED(32, INTFLOAT, ret_buf)[2048]; ///< PCM output buffer
- DECLARE_ALIGNED(16, INTFLOAT, ltp_state)[3072]; ///< time signal for LTP
- + DECLARE_ALIGNED(32, AAC_FLOAT, lcoeffs)[1024]; ///< MDCT of LTP coefficients (used by encoder)
- DECLARE_ALIGNED(32, AAC_FLOAT, prcoeffs)[1024]; ///< Main prediction coefs (used by encoder)
- PredictorState predictor_state[MAX_PREDICTORS];
- INTFLOAT *ret; ///< PCM output
|