public long create_compact_sample_size_atom(MP4DataStream stream) throws IOException {
  create_full_atom(stream);
  stream.skipBytes(3);
  sampleSize=0;
  fieldSize=(int)stream.readBytes(1);
  sampleCount=(int)stream.readBytes(4);
  readed+=8;
  for (int i=0; i < sampleCount; i++) {
    int size=0;
switch (fieldSize) {
case 4:
      size=(int)stream.readBytes(1);
    samples.addElement(Integer.valueOf(size & 0x0f));
  size=(size >> 4) & 0x0f;
i++;
readed+=1;
break;
case 8:
size=(int)stream.readBytes(1);
readed+=1;
break;
case 16:
size=(int)stream.readBytes(2);
readed+=2;
break;
}
if (i < sampleCount) {
samples.addElement(Integer.valueOf(size));
}
}
return readed;
}

public long create_compact_sample_size_atom ( MP4DataStream stream ) throws IOException { create_full_atom ( stream ) ; stream . skipBytes ( 3 ) ; sampleSize = 0 ; fieldSize = ( int ) stream . readBytes ( 1 ) ; sampleCount = ( int ) stream . readBytes ( 4 ) ; readed += 8 ; for ( int i = 0 ; i < sampleCount ; i ++ ) { int size = 0 ; switch ( fieldSize ) { case 4 : size = ( int ) stream . readBytes ( 1 ) ; samples . addElement ( Integer . valueOf ( size & 0x0f ) ) ; size = ( size > > 4 ) & 0x0f ; i ++ ; readed += 1 ; break ; case 8 : size = ( int ) stream . readBytes ( 1 ) ; readed += 1 ; break ; case 16 : size = ( int ) stream . readBytes ( 2 ) ; readed += 2 ; break ; } if ( i < sampleCount ) { samples . addElement ( Integer . valueOf ( size ) ) ; } } return readed ; }
loads compactsamplesize atom from the input stream .
