Version 1.84 of main.c (2010-09-27) broke the (accidental?) support for WAV files over 4 GB. For wav's over 4 GB, the uint32 sample count in the WAV RIFF header cannot be correct, of course. Prior to 1.84, faac would continue despite the wrapped infile->samples uint32 value. (Though in continuing on, the statistics displayed during processing were wrong, went over 100% etc). With the latest version, this no longer works, processing stops at the wrapped uint32 number which is not correct for wav files over 4 GB.
I don't know why that change was needed, so can't suggest exact solution. If the change was just to get an integral number of sample sets, then maybe:
samplesRead = (samplesRead / infile->channels) * infile->channels
Some other possibilities that come to mind:
1) add a command-line option --ignorelength like neroaacenc has and if specified, use the pre-1.84 code path (ignore infile->samples).
2) compute correct number of samples based on file size, etc. and use that instead of what's in the wav header.
Log in to post a comment.