[flac-dev] FLAC 1.2.0 backwards-compatibility break not in changelog?

Martijn van Beurden mvanb1 at gmail.com
Thu May 2 12:31:25 PDT 2013


Hi all,

Sorry for bringing this up this short before the release, but I noticed 
something rather strange.

I was doing some more exotic checks on the last pre-release when I tried 
test_streams.sh with FLAC 1.3.0 encoding and an older version (1.1.0 or 
something like that) decoding. This failed for 24-bit samples and I 
wondered why. After quite some tests and hex-editors, I found out this 
is because older decoders do not support the RICE2 partition. This was 
added with FLAC 1.2.0, but it's not in the changelog.

I found this e-mail on the list which I think is related: 
http://lists.xiph.org/pipermail/flac-dev/2007-April/002179.html It looks 
like RICE2 was implemented in the decoder just before the release of 
1.2.0. (See 
http://flac.cvs.sourceforge.net/viewvc/flac/flac/src/libFLAC/stream_decoder.c?view=log 
revision 1.138 and the 1.2.0 release tarball)

I don't know why this isn't on the changelog, but it is probably still a 
good idea to add it. This only breaks compatibility for 24-bit streams. 
(So: decoders older than 1.2.0 might not be able to decode 24-bit FLAC 
files made by libFLAC 1.2.0 or newer)

Oh, and for the record, if I disable all 24-bit tests, it works fine: 
flac-1.1.0 is able to to decode streams encoded by flac-1.3.0pre4 
working through test_streams.sh :)


More information about the flac-dev mailing list