28
28
#include "aacps_tablegen.h"
29
29
#include "aacpsdata.c"
31
#define PS_BASELINE 0 //< Operate in Baseline PS mode
32
//< Baseline implies 10 or 20 stereo bands,
33
//< mixing mode A, and no ipd/opd
31
#define PS_BASELINE 0 ///< Operate in Baseline PS mode
32
///< Baseline implies 10 or 20 stereo bands,
33
///< mixing mode A, and no ipd/opd
35
35
#define numQMFSlots 32 //numTimeSlots * RATE
70
70
static VLC vlc_ps[10];
73
* Read Inter-channel Intensity Difference/Inter-Channel Coherence/
74
* Inter-channel Phase Difference/Overall Phase Difference parameters from the
77
* @param avctx contains the current codec context
78
* @param gb pointer to the input bitstream
79
* @param ps pointer to the Parametric Stereo context
80
* @param par pointer to the parameter to be read
81
* @param e envelope to decode
82
* @param dt 1: time delta-coded, 0: frequency delta-coded
84
72
#define READ_PAR_DATA(PAR, OFFSET, MASK, ERR_CONDITION) \
74
* Read Inter-channel Intensity Difference/Inter-Channel Coherence/ \
75
* Inter-channel Phase Difference/Overall Phase Difference parameters from the \
78
* @param avctx contains the current codec context \
79
* @param gb pointer to the input bitstream \
80
* @param ps pointer to the Parametric Stereo context \
81
* @param PAR pointer to the parameter to be read \
82
* @param e envelope to decode \
83
* @param dt 1: time delta-coded, 0: frequency delta-coded \
85
85
static int read_ ## PAR ## _data(AVCodecContext *avctx, GetBitContext *gb, PSContext *ps, \
86
86
int8_t (*PAR)[PS_MAX_NR_IIDICC], int table_idx, int e, int dt) \
223
223
cnt -= 2 + ps_read_extension_data(gb, ps, ps_extension_id);
226
av_log(avctx, AV_LOG_ERROR, "ps extension overflow %d", cnt);
226
av_log(avctx, AV_LOG_ERROR, "ps extension overflow %d\n", cnt);
229
229
skip_bits(gb, cnt);
654
654
const int8_t *k_to_i = is34 ? k_to_i_34 : k_to_i_20;
655
655
const float peak_decay_factor = 0.76592833836465f;
656
656
const float transient_impact = 1.5f;
657
const float a_smooth = 0.25f; //< Smoothing coefficient
657
const float a_smooth = 0.25f; ///< Smoothing coefficient
659
659
int n0 = 0, nL = 32;
660
660
static const int link_delay[] = { 3, 4, 5 };
813
813
const float (*H_LUT)[8][4] = (PS_BASELINE || ps->icc_mode < 3) ? HA : HB;
816
memcpy(H11[0][0], H11[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[0][0][0]));
817
memcpy(H11[1][0], H11[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[1][0][0]));
818
memcpy(H12[0][0], H12[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[0][0][0]));
819
memcpy(H12[1][0], H12[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[1][0][0]));
820
memcpy(H21[0][0], H21[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[0][0][0]));
821
memcpy(H21[1][0], H21[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[1][0][0]));
822
memcpy(H22[0][0], H22[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[0][0][0]));
823
memcpy(H22[1][0], H22[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[1][0][0]));
816
if (ps->num_env_old) {
817
memcpy(H11[0][0], H11[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[0][0][0]));
818
memcpy(H11[1][0], H11[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H11[1][0][0]));
819
memcpy(H12[0][0], H12[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[0][0][0]));
820
memcpy(H12[1][0], H12[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H12[1][0][0]));
821
memcpy(H21[0][0], H21[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[0][0][0]));
822
memcpy(H21[1][0], H21[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H21[1][0][0]));
823
memcpy(H22[0][0], H22[0][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[0][0][0]));
824
memcpy(H22[1][0], H22[1][ps->num_env_old], PS_MAX_NR_IIDICC*sizeof(H22[1][0][0]));
825
828
remap34(&iid_mapped, ps->iid_par, ps->nr_iid_par, ps->num_env, 1);
826
829
remap34(&icc_mapped, ps->icc_par, ps->nr_icc_par, ps->num_env, 1);