Help - Search - Members - Calendar
Full Version: ADTS file format
Hydrogenaudio Forums > Lossy Audio Compression > AAC > AAC - Tech
will bolam
hi all,

i'm new to this forum, but have been reading quite a lot of interesting posts on here and it seems like a well informed set of people posting on here smile.gif

i've recently been looking at implementing an AAC decoder, and i now have this working (based on the ISO reference code), i'm currently adding ADTS support as it looks like this is what our customers will want. i've got it working and decoding the test streams from mpeg.

(you can get them here: ftp://mpaudconf:adif2mp4@ftp.iis.fhg.de/g...io-conformance/ - the adts streams are in the mpeg2 aac folder)

however i am unable to decode any of the various test streams we have from customers. the test streams i have look like ADTS - they have the ADTS sync word (12 1's) every so often in the file (including at the start), but the rest of the ADTS header doesn't seem right - the layer field seems always to be 2, when all specs i've seen say this must always be 0.

example header that doesn't work is:

1111 1111 1111 - syncword

1 - mpeg 2/4 flag

10 - layer

0 - protection absent

11 - profile obj type

0001 - sampling frequency index

0 - private bit

000 - channel config (Q. - is 0 valid for ADTS channel config? how else would it be calculated?)

0000 - 4 copyright flags

0010 1000 1111 1 - frame length

1000 1010 101 - buffer fullness

01 - num raw data blocks

does anyone know whether that is or isn't a valid ADTS header? are there any other audio file formats that use 12 1's as a sync word?

any help much appreciated!

regards,

will


Robredo
To me this header does look like a ADTS header but,

1111 1111 1111 - syncword: unique for ADTS

1 - mpeg 2/4 flag: mpeg 2 AAC

10 - layer: should be 0

0 - protection absent: protection present, which is NOT normal

11 - profile obj type: reserved, meaning NO profile at all

000 - channel config: 0 is NOT a valid choice

From above it looks like the header is wrong.
will bolam
sorted this, in case anyone is interested the file wasn't aac under adts at all, it was mpeg1 part 3 (audio) layer 2. mpeg1 audio and mpeg2 bc audio have similar headers to adts, with the 12 1's syncword but many of the other data fields are different...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.