org.jaudiotagger.tag.id3
Class ID3SyncSafeInteger

java.lang.Object
  extended by org.jaudiotagger.tag.id3.ID3SyncSafeInteger

public class ID3SyncSafeInteger
extends java.lang.Object

Peforms encoding/decoding of an syncsafe integer

Syncsafe integers are used for the size in the tag header of v23 and v24 tags, and in the frame size in the frame header of v24 frames.

In some parts of the tag it is inconvenient to use the unsychronisation scheme because the size of unsynchronised data is not known in advance, which is particularly problematic with size descriptors. The solution in ID3v2 is to use synchsafe integers, in which there can never be any false synchs. Synchsafe integers are integers that keep its highest bit (bit 7) zeroed, making seven bits out of eight available. Thus a 32 bit synchsafe integer can store 28 bits of information. Example: 255 (%11111111) encoded as a 16 bit synchsafe integer is 383 (%00000001 01111111).


Field Summary
static int INTEGRAL_SIZE
           
static int MAX_SAFE_SIZE
          Sizes equal or smaller than this are the same whether held as sync safe integer or normal integer so it doesnt matter.
 
Constructor Summary
ID3SyncSafeInteger()
           
 
Method Summary
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INTEGRAL_SIZE

public static final int INTEGRAL_SIZE
See Also:
Constant Field Values

MAX_SAFE_SIZE

public static final int MAX_SAFE_SIZE
Sizes equal or smaller than this are the same whether held as sync safe integer or normal integer so it doesnt matter.

See Also:
Constant Field Values
Constructor Detail

ID3SyncSafeInteger

public ID3SyncSafeInteger()