code: protected void readMetadata() throws IOException
  	{
  		int blockCount = super.read();
  		// System.out.println ("blocks to read: " + blockCount);
  		int byteCount = (blockCount * 16); // 16 bytes per block
  		if (byteCount <= 0) return; // WTF?!
  		byte[] metadataBlock = new byte[byteCount];
  		int index = 0;
  		// build an array of this metadata
  		while (byteCount > 0)
  		{
  			int bytesRead = super.read(metadataBlock, index, byteCount);
  			index += bytesRead;
  			byteCount -= bytesRead;
  		}
  		// now parse it
  		parseInlineIcyTags(metadataBlock);
  	}
docs: Read the next segment of metadata.  The stream <b>must</b>
  be right on the segment, ie, the next byte to read is
  the metadata block count.  The metadata is parsed and
  new tags are added with addTag(), which fires events