# HG changeset patch # User banan # Date 1145740876 0 # Node ID c925a46f7594e4808f0fe4f769e236a4d5c9e9b3 # Parent f7a9d8dd476bd45fa3aca82744348fe887ae40d8 Patch to generate the ac3 window, based on code by Justin Ruggles. diff -r f7a9d8dd476b -r c925a46f7594 ac3enc.c --- a/ac3enc.c Fri Apr 21 19:22:14 2006 +0000 +++ b/ac3enc.c Sat Apr 22 21:21:16 2006 +0000 @@ -81,6 +81,51 @@ return v; } + +/** + * Generate a Kaiser Window. + */ +static void k_window_init(int alpha, double *window, int n, int iter) +{ + int j, k; + double a, x; + a = alpha * M_PI / n; + a = a*a; + for(k=0; k0; j--) { + window[k] = (window[k] * x / (j*j)) + 1.0; + } + } +} + +/** + * Generate a Kaiser-Bessel Derived Window. + * @param alpha determines window shape + * @param window array to fill with window values + * @param iter number of iterations to use in BesselI0 + */ + +static void kbd_window_init(int alpha, int16_t *out_window, int iter) +{ + int k, n2; + double kwindow[256]; + double window[256]; + + n2 = 256; + k_window_init(alpha, kwindow, n2, iter); + window[0] = kwindow[0]; + for(k=1; k