public function parseMETAdata() { $info = &
$this->getid3->info;
do { $BlockOffset =
$this->
ftell();
$BlockHeader =
$this->
fread(4
);
$LBFBT = getid3_lib::
BigEndian2Int(substr($BlockHeader, 0, 1
)); // LBFBT = LastBlockFlag + BlockType
$LastBlockFlag =
(bool) ($LBFBT & 0x80
);
$BlockType =
($LBFBT & 0x7F
);
$BlockLength = getid3_lib::
BigEndian2Int(substr($BlockHeader, 1, 3
));
$BlockTypeText = self::
metaBlockTypeLookup($BlockType);
if (($BlockOffset + 4 +
$BlockLength) >
$info['avdataend'
]) { $this->
warning('METADATA_BLOCK_HEADER.BLOCK_TYPE ('.
$BlockTypeText.') at offset '.
$BlockOffset.' extends beyond end of file'
);
break;
} if ($BlockLength < 1
) { if ($BlockTypeText != 'reserved'
) { // probably supposed to be zero-length
$this->
warning('METADATA_BLOCK_HEADER.BLOCK_LENGTH ('.
$BlockTypeText.') at offset '.
$BlockOffset.' is zero bytes'
);
continue;
}