dreamlayers - 2014-10-21

The time is being spent in void src/tag_parse.cpp in ID3_TagImpl::ParseReader(ID3_Reader &reader), in the following loop. It reads the file character by character looking for a possible MPEG sync byte. This problem should not occur if the WAV file has some 0xFF bytes early on.

        // loop until first possible sync byte
        if (!wr.atEnd() && wr.peekChar() != 0xFF)
        {
          do
          {
            last = cur;
            cur = wr.getCur() + 1;
            wr.setCur(cur);
          } while (!wr.atEnd() &&  cur > last && wr.peekChar() != 0xFF);
        }