metaBlockTypeLookup example


    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;
                }
                
Home | Imprint | This part of the site doesn't use cookies.