Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: ADTS header element (Read 7898 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

ADTS header element

I have a question on the channel_configuration element of the ADTS header.. I couldn't find the table that describe it !

Can anyone help ?

ADTS header element

Reply #1
ADTS
Unlike the ADIF header, ADTS (Audio Data Transport Stream) headers are present before each AAC raw_data_block or block of 2 to 4 raw_data_blocks. Until the MPEG revision from Dec 2002 for MPEG-4 AAC ADTS headers, this was basically the same as a MP3 header, except that the emphasis field was not present for MPEG-2 AAC, only for MPEG-4 AAC.
Now the emphasis field (2 bits) has been abandoned completely, and thus MPEG-4 and MPEG-2 AAC ADTS headers are exactly the same except for the Object Type ID flag (MPEG-2 or MPEG-4). See also the Wiki page about MP4, because this is important when extracting MPEG-2 AAC files from a MP4 container with mp4creator or creating MP4 files from PsyTEL AAC encodings with this tool.

The ADTS header has the following fields:
Field name   Field size in bits   Comment
ADTS Fixed header: these don't change from frame to frame
syncword   12   always: '111111111111'
ID   1   0: MPEG-4, 1: MPEG-2
layer   2   always: '00'
protection_absent   1   
profile   2   
sampling_frequency_index   4   
private_bit   1   
channel_configuration   3   
original/copy   1   
home   1   
ADTS Variable header: these can change from frame to frame
copyright_identification_bit   1   
copyright_identification_start   1   
aac_frame_length   13   length of the frame including header (in bytes)
adts_buffer_fullness   11   0x7FF indicates VBR
no_raw_data_blocks_in_frame   2   
ADTS Error check
crc_check   16   only if protection_absent == 0
After that come (no_raw_data_blocks_in_frame+1) raw_data_blocks.
Some elaborations:
profile
bits   ID == 1 (MPEG-2 profile)   ID == 0 (MPEG-4 Object type)
00 (0)   Main profile   AAC MAIN
01 (1)   Low Complexity profile (LC)   AAC LC
10 (2)   Scalable Sample Rate profile (SSR)   AAC SSR
11 (3)   (reserved)   AAC LTP

ADTS header element

Reply #2
Yeah, but the same question remain unanswer. What is the channel_configuration element which takes up 3 bits? Number of Channels ???

ADTS header element

Reply #3
It was number of channels in all files i've seen so far

ADTS header element

Reply #4
What is this copy right ID of the ADTS / ADIF header? It is 72 bits long.. but in embedding the ID into the headers I needed to know what the ID number actually looked like? I wonder if someone can provide me with the details..