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

Martijn van Beurden mvanb1 at gmail.com
Sat May 4 05:17:28 PDT 2013


On 04-05-13 12:41, Erik de Castro Lopo wrote:
> Miroslav Lichvar wrote:
>
>> On Thu, May 02, 2013 at 09:31:25PM +0200, Martijn van Beurden wrote:
>>> 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)
>> Interesting, I remember there were some problems with 24-bit encoding,
>> but I wasn't sure if/how it was fixed. It seems the encoding support
>> was actually added later in 1.2.1, so there was a short time for
>> adoption of the new decoder. It should be added to the changelog.
> It's still a bit of a mystery to me what should be added. Clues?

In short: FLAC 1.2.0 added the RICE2 residual coding method 
(http://flac.sourceforge.net/format.html#partitioned_rice2) to the 
format and the decoder, but this wasn't in the changelog. This breaks 
forward compatibility for 24-bit files

RICE2 was added because when trying to encode a 24-bit file the residual 
wouldn't fit in the rice partition (sorry if I worded that wrong, I'm 
not sure of my math there) and the encoder fell back to verbatim frames, 
which wasn't very efficient. The new rice partition has one bit more for 
encoding the rice parameter. It /seems/ this only affects 24-bit files, 
as I haven't seen a RICE2 partition with 16-bit files (not even on noise 
with --disable-verbatim-subframes) but I don't know whether this is hard 
coded somewhere or by design.

Anyway, I would to the changelog under *1.2.0 -> FLAC format* the following
- Added a new residual coding method 
(RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) to code 24-bit files more 
efficiently

To *1.2.0 -> libraries* I would add
- Added support for decoding the new residual coding method 
(RESIDUAL_CODING_METHOD_PARTITIONED_RICE2)

To *1.2.1 -> libraries* I would add
- Added support for encoding the residual coding method introduced in 
libFLAC 1.2.1 (RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) which will 
encode 24-bit files more efficiently

Hope that helps
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/flac-dev/attachments/20130504/b24e11e1/attachment.htm 


More information about the flac-dev mailing list