Package org.jaudiotagger.audio.mp4.atom

Class Summary
AbstractMp4Box Abstract mp4 box, contain a header and then rawdata (which may include child boxes)
Mp4AlacBox AlacBox ( Apple Lossless Codec information description box), Normally occurs twice, the first ALAC contaisn the default values, the second ALAC within contains the real values for this audio.
Mp4BoxHeader Everything in MP4s are held in boxes (formally known as atoms), they are held as a hierachial tree within the MP4.
Mp4DrmsBox DrmsBox Replaces mp4a box on drm files

Need to skip over data in order to find esds atom

Specification not known, so just look for byte by byte 'esds' and then step back four bytes for size

Mp4EsdsBox EsdsBox ( stream specific description box), usually holds the Bitrate/No of Channels

It contains a number of (possibly optional?) sections (section 3 - 6) (containing optional filler) with differeent info in each section.

Mp4FreeBox FreeBox ( padding)

Mp4FtypBox Ftyp (File Type) is the first atom, can be used to help identify the mp4 container type
Mp4HdlrBox HdlrBox ( Handler box),

Describes the type of metadata in the following ilst or minf atom

Mp4MdhdBox MdhdBox ( media (stream) header), holds the Sampling Rate used.
Mp4MetaBox This MP4 MetaBox is the parent of metadata, it usually contains four bytes of data that needs to be processed before we can examine the children.
Mp4Mp4aBox Mp4aBox ( sample (frame encoding) description box)

At first glance appears to hold no of channels but actually always returns 2 even for mono recordings so just need to skip over data in order to get to child atom esds

Mp4MvhdBox MvhdBox (movie (presentation) header box)

Mp4StcoBox StcoBox ( media (stream) header), holds offsets into the Audio data
Mp4StsdBox StsdBox ( sample (frame encoding) description box)

NullPadding Some mp4s contain null padding at the end of the file, possibly do with gapless playback.
 

Enum Summary
Mp4EsdsBox.AudioProfile Audio profile, held in Section 5 this is usually type LOW_COMPLEXITY
Mp4EsdsBox.Kind File type, held in Section 4 , only really expecting type 0x64 (AAC)
Mp4FtypBox.Brand Major brand, helps identify whats contained in the file, used by major and compatible brands but this is not an exhaustive list, so for that reason we dont force the values read from the file to tie in with this enum.
Mp4HdlrBox.MediaDataType