50#ifndef AVCODEC_AC3DEC_H
51#define AVCODEC_AC3DEC_H
65#define AC3_OUTPUT_LFEON 8
67#define SPX_MAX_BANDS 17
70#define AC3_FRAME_BUFFER_SIZE 32768
72typedef struct AC3DecodeContext {
74 AVCodecContext *avctx;
80 AVFixedDSPContext *fdsp;
82 AVFloatDSPContext *fdsp;
87 AVTXContext *tx_128, *tx_256;
93 AVChannelLayout downmix_layout;
102 int preferred_stereo_downmix;
103 float ltrt_center_mix_level;
104 float ltrt_surround_mix_level;
105 float loro_center_mix_level;
106 float loro_surround_mix_level;
109 int heavy_compression;
110 int consistent_noise_generation;
130 int dialog_normalization[2];
131 int compression_exists[2];
133 int preferred_downmix;
134 int center_mix_level;
135 int center_mix_level_ltrt;
136 int surround_mix_level;
137 int surround_mix_level_ltrt;
138 int lfe_mix_level_exists;
141 int eac3_subsbtreamid_found;
142 int eac3_extension_type_a;
143 int dolby_surround_mode;
144 int dolby_surround_ex_mode;
145 int dolby_headphone_mode;
151 int snr_offset_strategy;
152 int block_switch_syntax;
153 int dither_flag_syntax;
154 int bit_allocation_syntax;
155 int fast_gain_syntax;
164 int phase_flags_in_use;
179 int spx_src_start_freq;
180 int spx_dst_end_freq;
181 int spx_dst_start_freq;
184 uint8_t spx_band_struct[SPX_MAX_BANDS];
185 uint8_t spx_band_sizes[SPX_MAX_BANDS];
202 int prev_output_mode;
218 int num_rematrixing_bands;
219 int rematrixing_flags[4];
229 AC3BitAllocParameters bit_alloc_params;
260 int delay_coeff_bits[2];
Common code between the AC-3 encoder and decoder.
#define EAC3_MAX_CHANNELS
maximum number of channels in EAC3
#define AC3_MAX_CHANNELS
maximum number of channels, including coupling channel
#define AC3_CRITICAL_BANDS
#define AC3_MAX_CPL_BANDS
static const uint8_t channel_map[8][8]
Libavcodec external API header.
static void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch)
static int ff_eac3_parse_header(AC3DecodeContext *s, const AC3HeaderInfo *hdr)
static void ff_eac3_apply_spectral_extension(AC3DecodeContext *s)
static SDL_Window * window
static const uint8_t frame_size[4]
bitstream reader API header.
#define AV_INPUT_BUFFER_PADDING_SIZE
Required number of additionally allocated bytes at the end of the input bitstream for decoding.
float ff_ac3_heavy_dynamic_range_tab[256]
static const uint16_t mask[17]
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
void(* av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride)
Function pointer to a function to perform the transform.