ov_pcm_total() returns erroneous information
it appears that there is a bug in ov_pcm_total(). it returns the value in vf->pcmlengths[i2+1]. However, that value is too small - properly, I think it should return vf->pcmlengths[i2+1] + vf->pcmlengths[i*2]. Otherwise, the value returned will be too small by the pcm offset of the last packet in the first audio page (see line 381 of vorbisfile.c, where the value is stored). I can't see what it should do that; when it does, my vorbis-encoded audio gets truncated by that amount on decompression.