FFmpeg
|
Go to the source code of this file.
Macros | |
#define | CRC_TABLE_SIZE 1024 |
Functions | |
av_cold void | ff_mlp_init_crc (void) |
uint16_t | ff_mlp_checksum16 (const uint8_t *buf, unsigned int buf_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 implementation terms, the table lookup and XOR are reversed). More... | |
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, starting two bits into the first byte of buf. More... | |
uint8_t | ff_mlp_calculate_parity (const uint8_t *buf, unsigned int buf_size) |
XOR together all the bytes of a buffer. More... | |
Variables | |
const uint8_t | ff_mlp_huffman_tables [3][18][2] |
Tables defining the Huffman codes. More... | |
const ChannelInformation | ff_mlp_ch_info [21] |
Tables defining channel information. More... | |
const uint64_t | ff_mlp_channel_layouts [12] |
static int | crc_init = 0 |
static AVCRC | crc_63 [CRC_TABLE_SIZE] |
static AVCRC | crc_1D [CRC_TABLE_SIZE] |
static AVCRC | crc_2D [CRC_TABLE_SIZE] |
av_cold void ff_mlp_init_crc | ( | void | ) |
Definition at line 75 of file mlp.c.
Referenced by init_static(), mlp_encode_init(), and mlp_init().
Definition at line 85 of file mlp.c.
Referenced by ff_mlp_read_major_sync(), truehd_core_filter(), and write_major_sync().
MLP uses checksums that seem to be based on the standard CRC algorithm, but are not (in implementation terms, the table lookup and XOR are reversed).
We can implement this behavior using a standard av_crc on all but the last element, then XOR that with the last element.
Definition at line 94 of file mlp.c.
Referenced by read_access_unit(), and write_substrs().
Calculate an 8-bit checksum over a restart header – a non-multiple-of-8 number of bits, starting two bits into the first byte of buf.
Definition at line 101 of file mlp.c.
Referenced by read_restart_header(), and write_restart_header().
XOR together all the bytes of a buffer.
Does this belong in dspcontext?
Definition at line 120 of file mlp.c.
Referenced by read_access_unit(), and write_substrs().
const uint8_t ff_mlp_huffman_tables[3][18][2] |
Tables defining the Huffman codes.
There are three entropy coding methods used in MLP (four if you count "none" as a method). These use the same sequences for codes starting with 00 or 01, but have different codes starting with 1.
Definition at line 28 of file mlp.c.
Referenced by codebook_bits_offset(), init_static(), and write_block_data().
const ChannelInformation ff_mlp_ch_info[21] |
Tables defining channel information.
Possible channel arrangements are:
(Group 1) C (Group 1) L, R (Group 1) Lf, Rf / (Group 2) S (Group 1) Lf, Rf / (Group 2) Ls, Rs (Group 1) Lf, Rf / (Group 2) LFE (Group 1) Lf, Rf / (Group 2) LFE, S (Group 1) Lf, Rf / (Group 2) LFE, Ls, Rs (Group 1) Lf, Rf / (Group 2) C (Group 1) Lf, Rf / (Group 2) C, S (Group 1) Lf, Rf / (Group 2) C, Ls, Rs (Group 1) Lf, Rf / (Group 2) C, LFE (Group 1) Lf, Rf / (Group 2) C, LFE, S (Group 1) Lf, Rf / (Group 2) C, LFE, Ls, Rs (Group 1) Lf, Rf C / (Group 2) S (Group 1) Lf, Rf C / (Group 2) Ls, Rs (Group 1) Lf, Rf C / (Group 2) LFE (Group 1) Lf, Rf C / (Group 2) LFE, S (Group 1) Lf, Rf C / (Group 2) LFE, Ls, Rs (Group 1) Lf, Rf Ls Rs / (Group 2) LFE (Group 1) Lf, Rf Ls Rs / (Group 2) C (Group 1) Lf, Rf, Ls, Rs / (Group 2) C, LFE
Definition at line 44 of file mlp.c.
Referenced by mlp_encode_init().
const uint64_t ff_mlp_channel_layouts[12] |
|
static |
Definition at line 65 of file mlp.c.
Referenced by ff_mlp_init_crc().
|
static |
Definition at line 71 of file mlp.c.
Referenced by ff_mlp_checksum8(), and ff_mlp_init_crc().
|
static |
Definition at line 72 of file mlp.c.
Referenced by ff_mlp_init_crc(), and ff_mlp_restart_checksum().
|
static |
Definition at line 73 of file mlp.c.
Referenced by ff_mlp_checksum16(), and ff_mlp_init_crc().