30 #define MAX_MATRIX_CHANNEL_MLP 5 31 #define MAX_MATRIX_CHANNEL_TRUEHD 7 36 #define MAX_CHANNELS 8 41 #define MAX_MATRICES_MLP 6 42 #define MAX_MATRICES_TRUEHD 8 43 #define MAX_MATRICES 8 48 #define MAX_SUBSTREAMS 3 51 #define MAX_RATEFACTOR 4 53 #define MAX_SAMPLERATE (MAX_RATEFACTOR * 48000) 56 #define MAX_BLOCKSIZE (40 * MAX_RATEFACTOR) 58 #define MAX_BLOCKSIZE_POW2 (64 * MAX_RATEFACTOR) 64 #define MAX_FIR_ORDER 8 65 #define MAX_IIR_ORDER 4 68 #define END_OF_STREAM 0xd234d234 122 value ^= value >> 16;
uint8_t shift
Right shift to apply to output of filter.
struct ChannelParams ChannelParams
sample data coding information
uint16_t ff_mlp_checksum16(const uint8_t *buf, unsigned int buf_size)
static uint8_t xor_32_to_8(uint32_t value)
XOR four bytes into one.
#define MAX_FIR_ORDER
The maximum number of taps in IIR and FIR filters.
const uint8_t ff_mlp_huffman_tables[3][18][2]
Tables defining the Huffman codes.
uint8_t ff_mlp_calculate_parity(const uint8_t *buf, unsigned int buf_size)
XOR together all the bytes of a buffer.
int16_t huff_offset
Offset to apply to residual values.
#define NUM_FILTERS
number of allowed filters
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)
uint8_t codebook
Which VLC codebook to use to read residuals.
int32_t state[MAX_FIR_ORDER]
uint8_t order
number of taps in filter
static const double coeff[2][5]
uint8_t huff_lsbs
Size of residual suffix not encoded using VLC.
sample data coding information
struct FilterParams FilterParams
filter data
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...
int32_t sign_huff_offset
sign/rounding-corrected version of huff_offset