Erik de Castro Lopo
2013-May-04 10:41 UTC
[flac-dev] FLAC 1.2.0 backwards-compatibility break not in changelog?
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? Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
Martijn van Beurden
2013-May-04 12:17 UTC
[flac-dev] FLAC 1.2.0 backwards-compatibility break not in changelog?
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
Martijn van Beurden
2013-May-04 13:23 UTC
[flac-dev] FLAC 1.2.0 backwards-compatibility break not in changelog?
On 04-05-13 14:17, Martijn van Beurden wrote:> 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 efficientlyI meant "introduced in libFLAC 1.2.0" there of course -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/flac-dev/attachments/20130504/bf88971a/attachment.htm