Infinite loop when trying to read the header of a small file
Try to encode chimes.wav at 128kbps. Then read the header. You get stalled.
The offending code (in vorbisfile.c):
static long _get_prev_page(OggVorbis_File *vf,ogg_page *og){
long begin=vf->offset;
long ret;
int offset=-1;
while(offset==-1){
begin-=CHUNKSIZE;
_seek_helper(vf,begin);
while(vf->offset<begin+CHUNKSIZE){
ret=_get_next_page(vf,og,begin+CHUNKSIZE-vf->offset);
if(ret==OV_EREAD)return(OV_EREAD);
if(ret<0){
break;
}else{
offset=ret;
}
}
}
begin is smaller than CHUNKSIZE and the while loop never ends.