It seems like FLAC__stream_decoder_process_single() should signal an error (returning false) after the decoder has reached/detected the end of the stream.
Instead, FLAC__stream_decoder_process_single() keeps returning that things are OK (returning true).
As a result, the caller ends up spinning on FLAC__stream_decoder_process_single() oblivious to the end-of-stream condition.
I've attached a simple patch that gets FLAC__stream_decoder_process_single() to return true when decoder state is FLAC__STREAM_DECODER_END_OF_STREAM.
I've tested your patch. Unfortunately it causes a failure in the test suite.
Hi Erik,
Thanks for looking into this; I suspected it wouldn't be that easy :-).
I'll run the test suite as well (if I can) to try and find out where/how it fails.
Thanks again,
-- Pascal
This does seem like it would be more convenient. And yet, it would be a significant change to the clearly documented API, and would undoubtedly break applications, including some of mine.