30#define SYNC_TRUEHD 0xba
33#define MAX_MATRIX_CHANNEL_MLP 5
34#define MAX_MATRIX_CHANNEL_TRUEHD 7
44#define MAX_MATRICES_MLP 6
45#define MAX_MATRICES_TRUEHD 8
51#define MAX_SUBSTREAMS 4
54#define MAX_RATEFACTOR 4
56#define MAX_SAMPLERATE (MAX_RATEFACTOR * 48000)
59#define MAX_BLOCKSIZE (40 * MAX_RATEFACTOR)
61#define MAX_BLOCKSIZE_POW2 (64 * MAX_RATEFACTOR)
67#define MAX_FIR_ORDER 8
68#define MAX_IIR_ORDER 4
71#define END_OF_STREAM 0xd234d234
73#define PARAM_BLOCKSIZE (1 << 7)
74#define PARAM_MATRIX (1 << 6)
75#define PARAM_OUTSHIFT (1 << 5)
76#define PARAM_QUANTSTEP (1 << 4)
77#define PARAM_FIR (1 << 3)
78#define PARAM_IIR (1 << 2)
79#define PARAM_HUFFOFFSET (1 << 1)
80#define PARAM_PRESENCE (1 << 0)
Public libavutil channel layout APIs header.
const uint8_t ff_mlp_huffman_tables[3][18][2]
Tables defining the Huffman codes.
const AVChannelLayout ff_mlp_ch_layouts[12]
const ChannelInformation ff_mlp_ch_info[21]
Tables defining channel information.
#define NUM_FILTERS
number of allowed filters
uint16_t ff_mlp_checksum16(const uint8_t *buf, unsigned int buf_size)
uint8_t ff_mlp_restart_checksum(const uint8_t *buf, unsigned int bit_size)
Calculate an 8-bit checksum over a restart header – a non-multiple-of-8 number of bits,...
#define MAX_FIR_ORDER
The maximum number of taps in IIR and FIR filters.
@ THD_CH_MODIFIER_SURROUNDEX
@ THD_CH_MODIFIER_NOTSURROUNDEX
@ THD_CH_MODIFIER_NOTINDICATED
@ THD_CH_MODIFIER_LBINRBIN
uint8_t ff_mlp_calculate_parity(const uint8_t *buf, unsigned int buf_size)
XOR together all the bytes of a buffer.
static uint8_t xor_32_to_8(uint32_t value)
XOR four bytes into one.
uint8_t ff_mlp_checksum8(const uint8_t *buf, unsigned int buf_size)
MLP uses checksums that seem to be based on the standard CRC algorithm, but are not (in implementatio...
void ff_mlp_init_crc(void)
An AVChannelLayout holds information about the channel layout of audio data.
sample data coding information
FilterParams filter_params[NUM_FILTERS]
int32_t sign_huff_offset
sign/rounding-corrected version of huff_offset
uint8_t huff_lsbs
Size of residual suffix not encoded using VLC.
int32_t coeff[NUM_FILTERS][MAX_FIR_ORDER]
int16_t huff_offset
Offset to apply to residual values.
uint8_t codebook
Which VLC codebook to use to read residuals.
int32_t state[MAX_FIR_ORDER]
uint8_t shift
Right shift to apply to output of filter.
uint8_t order
number of taps in filter