1 out of 1 tracks converted with major problems.
....
Command line: "E:\Soft\oggenc2.87-1.3.1-generic\oggenc2.exe" -s 1445268101 -Q -q5,000000 - -o "VTS_01_1 T80 3_2ch 384Kbps DELAY 66ms.ogg"
....
Conversion failed: The encoder has terminated prematurely with code 0 (0x00000000); please re-check parameters
I can confirm the same problem. Same set up converting a 6 channel 384kbps .ac3 file of approx 1 hour 56 mins, the conversion failed at approx 1 hour 2 mins with the same message.
Two ideas about the problem:
1) With Foobar2000 1.0 the method to send data to external encoders is using a WAV (with a WAVE_FORMAT_EXTENSIBLE header) with the length values (RIFF_length and DATA_length) filled with a value of 0xFFFFFFFF.
Then we need always, not only with big >4GB wav, use the appropriate parameter:
Oggenc2 --ignorelength
NeroAacEnc -ignorelength
Aften -readtoeof 1
Flac --ignore-chunk-sizes
2) I found some sync problems when use STDOUT-STDIN read method.
I'm not sure, but maybe is a OS problem.
Let me explain the workaround I use in my code applied to the code used in wav_read function in audio.c (oggenc2).
I think when you use, over STDIN:
long bytes_read = fread(buf, 1, samples*sampbyte*f->channels, f->f);
you can get bytes_read less than bytes requested without reach the end of file.
This finish the encode for oggenc2 but Foobar2000 still want send data to STDOUT.
For me work a code like this:
long bytes_read = 0;
long bytes_to_read = samples*sampbyte*f->channels;
long bytes_read_now = 1;
while ((bytes_read < bytes_to_read) && (bytes_read_now > 0))
{
bytes_read_now = fread(buf[bytes_read], 1, bytes_to_read - bytes_read, f->f);
bytes_read += bytes_read_now;
}
Maybe you can try this workaround to see if the problem is fixed.