From fc360735ce4d1aa88a94bfccdd3bea5bdd19a8d6 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Fri, 12 Oct 2012 22:02:49 +1100 Subject: [PATCH] Fix a regression that severely impacted compression levels. Regression was introducted in commit 8bbbf56403808ff75126cd0840a936aedbc4113b (Feb 1 19:58:09 2012) when fixing compiler warnings. In src/libFLAC/lpc.c the line: ref[i] = (r/=err); was erroniously removed because the left hand side, ref[i] was never used. Obviously, the correct thing to do was to replace that line with: r /= err; This code has not been officially released. The only people who would have been affected are people who compiled FLAC from git between February and now. The only adverse affect of this error was that compression ratio would have been severely compromised. No audio is lost, and if anyone has a file that compressed with a bad version of FLAC can decompress it to WAV and then re-compress with a fixed version. --- src/libFLAC/lpc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libFLAC/lpc.c b/src/libFLAC/lpc.c index f5eaf220..66a68999 100644 --- a/src/libFLAC/lpc.c +++ b/src/libFLAC/lpc.c @@ -140,6 +140,7 @@ void FLAC__lpc_compute_lp_coefficients(const FLAC__real autoc[], unsigned *max_o r = -autoc[i+1]; for(j = 0; j < i; j++) r -= lpc[j] * autoc[i-j]; + r /= err; /* Update LPC coefficients and total error. */ lpc[i]=r;