Таблица 4 - Синтаксис adts_sequence ()
Синтаксис | Количество битов | Мнемоника |
adts_seguence() | ||
{ | ||
while (nextbits() == syncword) { | ||
adts_frame(); | ||
} | ||
} |
Таблица 5 - Синтаксис adts_frame ()
Синтаксис | Количество битов | Мнемоника |
adts_frame() | ||
{ | ||
adts_fixed_header(); | ||
adts_variable_header(); | ||
if (number_of_raw_data_blocks_in_frame == 0) { | ||
adts_error_check(); | ||
raw_data_block(); | ||
} | ||
else{ | ||
adts_header_error_check(); | ||
for (i = 0; i <= number_of_raw_data_blocks_in_frame; | ||
i++) { | ||
raw_data_block(); | ||
adts_raw_data_block_error_check(); | ||
} | ||
} | ||
} |
Таблица 6 - Синтаксис adts_header_error_check ()
Синтаксис | Количество битов | Мнемоника |
adts header error check () | ||
{ | ||
if (protection_absent == '0') { | ||
for (i = 1; i <= number of raw data blocks in frame; i++) { | ||
raw data block position[i]; | 16 | Uimsfb |
} | ||
crc check; | 16 | rpchof |
} | ||
} |
Таблица 7 - Синтаксис of adts_raw_data_block_error_check()
Синтаксис | Количество битов | Мнемоника |
adts raw data block error check() | ||
{ | ||
if (protection absent == '0') | ||
crc check; | 16 | rpchof |
} |
4.2.1 Фиксированный заголовок ADTS
Таблица 8 - Синтаксис adts_fixed_header()
Синтаксис | Количество битов | Мнемоника |
adts_fixed_header() | ||
{ | ||
syncword; | 12 | bs/bf |
ID; | 1 | bs/bf |
layer; | 2 | uimsbf |
protection_absent; | 1 | bslbf |
profile; | 2 | uimsbf |
sampling_frequency_index; | 4 | uimsbf |
private_bit; | 1 | bslbf |
channel_configuration; | 3 | uimsbf |
original_copy; | 1 | bslbf |
home; | 1 | bslbf |
} |
4.2.2 Переменный заголовок ADTS
Таблица 9 - Синтаксис adts_variable_header ()
Синтаксис | Количество битов | Мнемоника |
adts_variable_header() | ||
{ | ||
copyright_identification_bit; | 1 | bslbf |
copyright_identification_start; | 1 | bslbf |
aac_frame_length; | 13 | bslbf |
adts_buffer_fullness; | 11 | bslbf |
number_of_raw_data_blocks_in_frame; | 2 | uimsfb |
} |
4.2.3 Обнаружение ошибок
Таблица 10 - Синтаксис adts_error_check ()