34 10, 20, 34, 10, 20, 34,
63#define READ_PAR_DATA(PAR, MASK, ERR_CONDITION, NB_BITS, MAX_DEPTH) \
76static int read_ ## PAR ## _data(void *logctx, GetBitContext *gb, PSCommonContext *ps, \
77 int8_t (*PAR)[PS_MAX_NR_IIDICC], int table_idx, int e, int dt) \
79 int b, num = ps->nr_ ## PAR ## _par; \
80 const VLCElem *vlc_table = vlc_ps[table_idx]; \
82 int e_prev = e ? e - 1 : ps->num_env_old - 1; \
83 e_prev = FFMAX(e_prev, 0); \
84 for (b = 0; b < num; b++) { \
85 int val = PAR[e_prev][b] + get_vlc2(gb, vlc_table, NB_BITS, MAX_DEPTH); \
86 if (MASK) val &= MASK; \
93 for (b = 0; b < num; b++) { \
94 val += get_vlc2(gb, vlc_table, NB_BITS, MAX_DEPTH); \
95 if (MASK) val &= MASK; \
103 av_log(logctx, AV_LOG_ERROR, "illegal "#PAR"\n"); \
104 return AVERROR_INVALIDDATA; \
121 if (ps->enable_ipdopd) {
122 for (e = 0; e < ps->num_env; e++) {
175 for (e = 1; e <= ps->
num_env; e++) {
183 for (e = 1; e <= ps->
num_env; e++)
187 for (e = 0; e < ps->
num_env; e++) {
196 for (e = 0; e < ps->
num_env; e++) {
211 int ps_extension_id =
get_bits(gb, 2);
228 if (source >= 0 && source != ps->
num_env) {
278 return bits_consumed;
293 static VLCElem vlc_buf[(1544 + 832 + 1024 + 1036) +
294 (544 + 544) + (32 + 32 + 32 + 32)];
#define PS_BASELINE
Operate in Baseline PS mode Baseline implies 10 or 20 stereo bands, mixing mode A,...
static const int huff_iid[]
static int read_iid_data(void *logctx, GetBitContext *gb, PSCommonContext *ps, int8_t(*iid)[PS_MAX_NR_IIDICC], int table_idx, int e, int dt)
#define READ_PAR_DATA(PAR, MASK, ERR_CONDITION, NB_BITS, MAX_DEPTH)
static int read_ipdopd_data(void *logctx, GetBitContext *gb, PSCommonContext *ps, int8_t(*ipdopd)[PS_MAX_NR_IIDICC], int table_idx, int e, int dt)
static const int8_t num_env_tab[2][4]
static const int8_t nr_iidicc_par_tab[]
av_cold void ff_ps_init_common(void)
static int ps_read_extension_data(GetBitContext *gb, PSCommonContext *ps, int ps_extension_id)
int ff_ps_read_data(void *logctx, GetBitContext *gb_host, PSCommonContext *ps, int bits_left)
static const VLCElem * vlc_ps[10]
static const int8_t nr_iidopd_par_tab[]
static int read_icc_data(void *logctx, GetBitContext *gb, PSCommonContext *ps, int8_t(*icc)[PS_MAX_NR_IIDICC], int table_idx, int e, int dt)
static const uint8_t huff_sizes[]
static const uint8_t aacps_huff_tabs[][2]
static const int8_t huff_offset[]
#define i(width, name, range_min, range_max)
common internal and external API header
#define FFABS(a)
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable ...
static struct @346255127015250356166251341105367306144006377143 state
bitstream reader API header.
static void skip_bits_long(GetBitContext *s, int n)
Skips the specified number of bits.
static unsigned int get_bits1(GetBitContext *s)
static void skip_bits(GetBitContext *s, int n)
static int get_bits_count(const GetBitContext *s)
static void skip_bits1(GetBitContext *s)
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
const uint8_t ff_log2_tab[256]
static const uint8_t header[24]
#define FF_ARRAY_ELEMS(a)
int8_t opd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Overall Phase Difference Parameters.
int8_t ipd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Inter-channel Phase Difference Parameters.
int8_t iid_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Inter-channel Intensity Difference Parameters.
int border_position[PS_MAX_NUM_ENV+1]
int8_t icc_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Inter-Channel Coherence Parameters.
For static VLCs, the number of bits can often be hardcoded at each get_vlc2() callsite.
static const struct twinvq_data tab
av_cold const VLCElem * ff_vlc_init_tables_from_lengths(VLCInitState *state, int nb_bits, int nb_codes, const int8_t *lens, int lens_wrap, const void *symbols, int symbols_wrap, int symbols_size, int offset, int flags)
#define VLC_INIT_STATE(_table)