diff options
author | Uoti Urpala <uau@mplayer2.org> | 2011-04-02 07:02:43 +0300 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-04-02 07:28:53 +0300 |
commit | f9b5f2870cd7ebb8fe70eeb65e22d11bb88d5202 (patch) | |
tree | 3d369fff359296307c05e120b4d2b53ea5974928 /mp3lib/equalizer.c | |
parent | b8e1456c25de18b8ecb8922d870bfe9161900d2a (diff) | |
download | mpv-f9b5f2870cd7ebb8fe70eeb65e22d11bb88d5202.tar.bz2 mpv-f9b5f2870cd7ebb8fe70eeb65e22d11bb88d5202.tar.xz |
mp3lib: drop internal mp3lib tree
Delete mp3lib which has been the default mp3 decoder until now. In
addition to being an unnecessary embedded library it now fails to
compile correctly with the new gcc-4.6, producing noise.
After the deletion the default decoder priority for mp3 will be first
libmpg123 (a newer version of the code that mp3lib was based on) if
available, then ffmp3float which should be available in all normal
compiles. I think that some tweaking may be required as these decoder
alternatives get wider testing, but any problems should be solvable
and there should be no need for mp3lib.
Diffstat (limited to 'mp3lib/equalizer.c')
-rw-r--r-- | mp3lib/equalizer.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/mp3lib/equalizer.c b/mp3lib/equalizer.c deleted file mode 100644 index 1c1a3f38ed..0000000000 --- a/mp3lib/equalizer.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "mpg123.h" - -void init_spline(float *x, float *y, int n, float *y2) -{ - int i, k; - float p, qn, sig, un, *u; - u = malloc(n * sizeof (float)); - - y2[0] = u[0] = 0.0; - - for (i = 1; i < n - 1; i++) - { - sig = ((float) x[i] - x[i - 1]) / ((float) x[i + 1] - x[i - 1]); - p = sig * y2[i - 1] + 2.0; - y2[i] = (sig - 1.0) / p; - u[i] = (((float) y[i + 1] - y[i]) / (x[i + 1] - x[i])) - - (((float) y[i] - y[i - 1]) / (x[i] - x[i - 1])); - u[i] = (6.0 * u[i] / (x[i + 1] - x[i - 1]) - sig * u[i - 1]) / p; - } - qn = un = 0.0; - - y2[n - 1] = (un - qn * u[n - 2]) / (qn * y2[n - 2] + 1.0); - for (k = n - 2; k >= 0; k--) - y2[k] = y2[k] * y2[k + 1] + u[k]; - free(u); -} - -float eval_spline(float xa[], float ya[], float y2a[], int n, float x) -{ - int klo, khi, k; - float h, b, a; - - klo = 0; - khi = n - 1; - while (khi - klo > 1) - { - k = (khi + klo) >> 1; - if (xa[k] > x) - khi = k; - else - klo = k; - } - h = xa[khi] - xa[klo]; - a = (xa[khi] - x) / h; - b = (x - xa[klo]) / h; - return (a * ya[klo] + b * ya[khi] + ((a * a * a - a) * y2a[klo] + (b * b * b - b) * y2a[khi]) - * (h * h) / 6.0); -} - -void mpg123_set_eq(int on, float preamp, float *b) -{ - float x[] = - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, yf[10], val, band[10]; - int bands[] = - {0, 4, 8, 16, 26, 78, 157, 313, 366, 418}; - int i, j; - - mpg123_info->eq_active = on; - if (mpg123_info->eq_active) - { - for (i = 0; i < 10; i++) - { - band[i] = b[i] + preamp; - } - - init_spline(x, band, 10, yf); - for (i = 0; i < 9; i++) - { - for (j = bands[i]; j < bands[i + 1]; j++) - { - val = eval_spline(x, band, yf, 10, i + ((float) (j - bands[i]) * (1.0 / (bands[i + 1] - bands[i])))); - mpg123_info->eq_mul[j] = pow(2, val / 10.0); - } - } - for (i = bands[9]; i < 576; i++) - mpg123_info->eq_mul[i] = mpg123_info->eq_mul[bands[9] - 1]; - } -} |