Don't keep reallocating ring buffer when a very large count is requested
Handle separately the "decode error" case which arises from a change in frame properties mid-stream
Avoid memory leak in buffer reallocation
Report failure when mangled header results in no channels
Leave .caf files to the CoreAudio reader (where they are native) if available
Update test - this behaviour changed during development
Add explicit flush method
Don't sync on every single write! What if we're writing one sample at a time (real example: SV converting from CSV files)
Merge from incremental branch
Ensure we reset the retry count whenever we read anything, even if it isn't yet the whole amount we have been asked for
Return to marking zero-duration (i.e. probably-being-written) wav streams as seekable, just of unknown-or-zero duration
Formalise, fix, and test the read-while-writing
Merge
Add an overall limit
Can't draw this conclusion if the data chunk size is zero; all bets are off then
Merge from default branch
Merge
Tidy
Ensure proper encoding on Windows
Permit building with Opus read support only (since writing is a separate dependency)