private XingFrame(ByteBuffer header){
  this.header=header;
  header.rewind();
  setVbr();
  byte flagBuffer[]=new byte[XING_FLAG_BUFFER_SIZE];
  header.get(flagBuffer);
  if ((flagBuffer[BYTE_4] & (byte)(1)) != 0) {
    setFrameCount();
  }
  if ((flagBuffer[BYTE_4] & (byte)(1 << 1)) != 0) {
    setAudioSize();
  }
  if (header.limit() >= XING_HEADER_BUFFER_SIZE + LameFrame.LAME_HEADER_BUFFER_SIZE) {
    header.position(XING_HEADER_BUFFER_SIZE);
    lameFrame=LameFrame.parseLameFrame(header);
  }
}

private XingFrame ( ByteBuffer header ) { this . header = header ; header . rewind ( ) ; setVbr ( ) ; byte flagBuffer [ ] = new byte [ XING_FLAG_BUFFER_SIZE ] ; header . get ( flagBuffer ) ; if ( ( flagBuffer [ BYTE_4 ] & ( byte ) ( 1 ) ) != 0 ) { setFrameCount ( ) ; } if ( ( flagBuffer [ BYTE_4 ] & ( byte ) ( 1 << 1 ) ) != 0 ) { setAudioSize ( ) ; } if ( header . limit ( ) >= XING_HEADER_BUFFER_SIZE + LameFrame . LAME_HEADER_BUFFER_SIZE ) { header . position ( XING_HEADER_BUFFER_SIZE ) ; lameFrame = LameFrame . parseLameFrame ( header ) ; } }
read the xing properties from the buffer
