org.jaudiotagger.tag.id3.framebody
Class FrameBodyMLLT

java.lang.Object
  extended by org.jaudiotagger.tag.id3.AbstractTagItem
      extended by org.jaudiotagger.tag.id3.AbstractTagFrameBody
          extended by org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
              extended by org.jaudiotagger.tag.id3.framebody.FrameBodyMLLT
All Implemented Interfaces:
ID3v23FrameBody, ID3v24FrameBody

public class FrameBodyMLLT
extends AbstractID3v2FrameBody
implements ID3v24FrameBody, ID3v23FrameBody

MPEG location lookup table frame.

To increase performance and accuracy of jumps within a MPEG audio file, frames with timecodes in different locations in the file might be useful. The ID3v2 frame includes references that the software can use to calculate positions in the file. After the frame header is a descriptor of how much the 'frame counter' should increase for every reference. If this value is two then the first reference points out the second frame, the 2nd reference the 4th frame, the 3rd reference the 6th frame etc. In a similar way the 'bytes between reference' and 'milliseconds between reference' points out bytes and milliseconds respectively.

Each reference consists of two parts; a certain number of bits, as defined in 'bits for bytes deviation', that describes the difference between what is said in 'bytes between reference' and the reality and a certain number of bits, as defined in 'bits for milliseconds deviation', that describes the difference between what is said in 'milliseconds between reference' and the reality. The number of bits in every reference, i.e. 'bits for bytes deviation'+'bits for milliseconds deviation', must be a multiple of four. There may only be one "MLLT" frame in each tag.

<Header for 'Location lookup table', ID: "MLLT">
MPEG frames between reference$xx xx
Bytes between reference$xx xx xx
Milliseconds between reference$xx xx xx
Bits for bytes deviation$xx
Bits for milliseconds dev.$xx

Then for every reference the following data is included;

Deviation in bytes%xxx....
Deviation in milliseconds%xxx....

For more details, please refer to the ID3 specifications:

Version:
$Id: FrameBodyMLLT.java,v 1.10 2008/01/01 15:14:17 paultaylor Exp $
Author:
: Paul Taylor, : Eric Farng

Field Summary
 
Fields inherited from class org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
TYPE_BODY
 
Fields inherited from class org.jaudiotagger.tag.id3.AbstractTagFrameBody
objectList
 
Fields inherited from class org.jaudiotagger.tag.id3.AbstractTagItem
logger
 
Constructor Summary
FrameBodyMLLT()
          Creates a new FrameBodyMLLT datatype.
FrameBodyMLLT(FrameBodyMLLT body)
           
 
Method Summary
 java.lang.String getIdentifier()
          The ID3v2 frame identifier
protected  void setupObjectList()
          TODO:proper mapping
 
Methods inherited from class org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
createStructure, equals, getSize, read, setSize, setSize, write
 
Methods inherited from class org.jaudiotagger.tag.id3.AbstractTagFrameBody
getBriefDescription, getHeader, getLongDescription, getObject, getObjectValue, getTextEncoding, isSubsetOf, iterator, setHeader, setObjectValue, setTextEncoding, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FrameBodyMLLT

public FrameBodyMLLT()
Creates a new FrameBodyMLLT datatype.


FrameBodyMLLT

public FrameBodyMLLT(FrameBodyMLLT body)
Method Detail

getIdentifier

public java.lang.String getIdentifier()
The ID3v2 frame identifier

Specified by:
getIdentifier in class AbstractID3v2FrameBody
Returns:
the ID3v2 frame identifier for this frame type

setupObjectList

protected void setupObjectList()
TODO:proper mapping

Specified by:
setupObjectList in class AbstractTagFrameBody