30         {0x01, 9}, {0x01, 8}, {0x01, 7}, {0x01, 6}, {0x01, 5}, {0x01, 4}, {0x01, 3},
    31         {0x04, 3}, {0x05, 3}, {0x06, 3}, {0x07, 3},
    32         {0x03, 3}, {0x05, 4}, {0x09, 5}, {0x11, 6}, {0x21, 7}, {0x41, 8}, {0x81, 9},
    34         {0x01, 9}, {0x01, 8}, {0x01, 7}, {0x01, 6}, {0x01, 5}, {0x01, 4}, {0x01, 3},
    36         {0x03, 3}, {0x05, 4}, {0x09, 5}, {0x11, 6}, {0x21, 7}, {0x41, 8}, {0x81, 9},
    38         {0x01, 9}, {0x01, 8}, {0x01, 7}, {0x01, 6}, {0x01, 5}, {0x01, 4}, {0x01, 3},
    40         {0x03, 3}, {0x05, 4}, {0x09, 5}, {0x11, 6}, {0x21, 7}, {0x41, 8}, {0x81, 9},
    45     { 0x01, 0x01, 0x00, 0x1f }, { 0x03, 0x02, 0x00, 0x1b },
    46     { 0x07, 0x02, 0x01, 0x1f }, { 0x0F, 0x02, 0x02, 0x19 },
    47     { 0x07, 0x02, 0x01, 0x03 }, { 0x0F, 0x02, 0x02, 0x1f },
    48     { 0x1F, 0x02, 0x03, 0x01 }, { 0x07, 0x02, 0x01, 0x1a },
    49     { 0x0F, 0x02, 0x02, 0x1f }, { 0x1F, 0x02, 0x03, 0x18 },
    50     { 0x0F, 0x02, 0x02, 0x02 }, { 0x1F, 0x02, 0x03, 0x1f },
    51     { 0x3F, 0x02, 0x04, 0x00 }, { 0x0F, 0x03, 0x01, 0x1f },
    52     { 0x1F, 0x03, 0x02, 0x18 }, { 0x0F, 0x03, 0x01, 0x02 },
    53     { 0x1F, 0x03, 0x02, 0x1f }, { 0x3F, 0x03, 0x03, 0x00 },
    54     { 0x1F, 0x04, 0x01, 0x01 }, { 0x1F, 0x04, 0x01, 0x18 },
    55     { 0x3F, 0x04, 0x02, 0x00 },
    67 #define CRC_TABLE_SIZE 257    69 #define CRC_TABLE_SIZE 1024    90     crc ^= 
AV_RL16(buf + buf_size - 2);
    97     checksum ^= buf[buf_size-1];
   104     int num_bytes = (bit_size + 2) / 8;
   106     int crc = 
crc_1D[buf[0] & 0x3f];
   108     crc ^= buf[num_bytes - 1];
   110     for (i = 0; i < ((bit_size + 2) & 7); i++) {
   114         crc ^= (buf[num_bytes] >> (7 - i)) & 1;
   122     uint32_t scratch = 0;
   123     const uint8_t *buf_end = buf + buf_size;
   125     for (; ((intptr_t) buf & 3) && buf < buf_end; buf++)
   127     for (; buf < buf_end - 3; buf += 4)
   128         scratch ^= *((
const uint32_t*)
buf);
   132     for (; buf < buf_end; buf++)
 #define AV_CH_LAYOUT_4POINT1
#define AV_CH_LAYOUT_SURROUND
uint16_t ff_mlp_checksum16(const uint8_t *buf, unsigned int buf_size)
const uint8_t ff_mlp_huffman_tables[3][18][2]
Tables defining the Huffman codes. 
#define AV_CH_LAYOUT_4POINT0
#define AV_CH_LAYOUT_STEREO
const uint64_t ff_mlp_channel_layouts[12]
static uint8_t xor_32_to_8(uint32_t value)
XOR four bytes into one. 
static AVCRC crc_1D[CRC_TABLE_SIZE]
Public header for CRC hash function implementation. 
int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size)
Initialize a CRC table. 
uint8_t ff_mlp_calculate_parity(const uint8_t *buf, unsigned int buf_size)
XOR together all the bytes of a buffer. 
#define AV_CH_LAYOUT_QUAD
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...
const ChannelInformation ff_mlp_ch_info[21]
Tables defining channel information. 
#define AV_CH_LAYOUT_3POINT1
uint32_t av_crc(const AVCRC *ctx, uint32_t crc, const uint8_t *buffer, size_t length)
Calculate the CRC of a block. 
static volatile int checksum
#define AV_CH_LAYOUT_5POINT1_BACK
#define AV_CH_LAYOUT_5POINT0_BACK
#define AV_CH_LAYOUT_2POINT1
static AVCRC crc_63[CRC_TABLE_SIZE]
av_cold void ff_mlp_init_crc(void)
#define AV_CH_LAYOUT_MONO
static AVCRC crc_2D[CRC_TABLE_SIZE]
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...