oggenc(vorbis-tools) doesn't handle odd sized RIFF chunk
When the size field of RIFF chunk header is odd, it is required to skip one more byte since RIFF chunks are word aligned. The following part of find_wav_chunk() in audio.c:
if(memcmp(buf, type, 4))
{
*len = READ_U32_LE(buf+4);
if(!seek_forward(in, *len))
return 0;
buf[4] = 0;
fprintf(stderr, _("Skipping chunk of type \"%s\", length %d\n"), buf, *len);
}
This should be fixed like the following:
- if(!seek_forward(in, *len))
+ if(!seek_forward(in, (*len + 1) & ~1))