Go to the documentation of this file.
34 10, 20, 34, 10, 20, 34,
63 #define READ_PAR_DATA(PAR, MASK, ERR_CONDITION, NB_BITS, MAX_DEPTH) \
76 static 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);
278 return bits_consumed;
293 static VLCElem vlc_buf[(1544 + 832 + 1024 + 1036) +
294 (544 + 544) + (32 + 32 + 32 + 32)];
static void skip_bits_long(GetBitContext *s, int n)
Skips the specified number of bits.
static int read_ipdopd_data(void *logctx, GetBitContext *gb, PSCommonContext *ps, int8_t(*ipdopd)[34], int table_idx, int e, int dt)
static int read_iid_data(void *logctx, GetBitContext *gb, PSCommonContext *ps, int8_t(*iid)[34], int table_idx, int e, int dt)
static int get_bits_count(const GetBitContext *s)
static int ps_read_extension_data(GetBitContext *gb, PSCommonContext *ps, int ps_extension_id)
static const uint8_t huff_sizes[]
av_cold void ff_ps_init_common(void)
int border_position[PS_MAX_NUM_ENV+1]
int8_t opd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Overall Phase Difference Parameters.
static void skip_bits(GetBitContext *s, int n)
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
static const struct twinvq_data tab
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define FF_ARRAY_ELEMS(a)
For static VLCs, the number of bits can often be hardcoded at each get_vlc2() callsite.
#define FFABS(a)
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable ...
static const int8_t huff_offset[]
static unsigned int get_bits1(GetBitContext *s)
const uint8_t ff_log2_tab[256]
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a source
static const int8_t nr_iidopd_par_tab[]
#define READ_PAR_DATA(PAR, MASK, ERR_CONDITION, NB_BITS, MAX_DEPTH)
static const uint8_t header[24]
static const int huff_iid[]
static void skip_bits1(GetBitContext *s)
static const uint8_t aacps_huff_tabs[][2]
int ff_ps_read_data(void *logctx, GetBitContext *gb_host, PSCommonContext *ps, int bits_left)
#define i(width, name, range_min, range_max)
int8_t ipd_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Inter-channel Phase Difference Parameters.
static int read_icc_data(void *logctx, GetBitContext *gb, PSCommonContext *ps, int8_t(*icc)[34], int table_idx, int e, int dt)
int8_t iid_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Inter-channel Intensity Difference Parameters.
const av_cold 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)
static const int8_t num_env_tab[2][4]
#define PS_BASELINE
Operate in Baseline PS mode.
static const VLCElem * vlc_ps[10]
int8_t icc_par[PS_MAX_NUM_ENV][PS_MAX_NR_IIDICC]
Inter-Channel Coherence Parameters.
static const int8_t nr_iidicc_par_tab[]