| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Generate a header file for hardcoded ff_cos_* tables | 2 * Generate a header file for hardcoded ff_cos_* tables |
| 3 * | 3 * |
| 4 * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 4 * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de> |
| 5 * | 5 * |
| 6 * This file is part of FFmpeg. | 6 * This file is part of FFmpeg. |
| 7 * | 7 * |
| 8 * FFmpeg is free software; you can redistribute it and/or | 8 * FFmpeg is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 #define BITS 16 | 30 #define BITS 16 |
| 31 #define FLOATFMT "%.18e" | 31 #define FLOATFMT "%.18e" |
| 32 | 32 |
| 33 int main(int argc, char *argv[]) | 33 int main(int argc, char *argv[]) |
| 34 { | 34 { |
| 35 int i, j; | 35 int i, j; |
| 36 int do_sin = argc == 2 && !strcmp(argv[1], "sin"); | 36 int do_sin = argc == 2 && !strcmp(argv[1], "sin"); |
| 37 double (*func)(double) = do_sin ? sin : cos; | 37 double (*func)(double) = do_sin ? sin : cos; |
| 38 | 38 |
| 39 printf("/* This file was generated by libavcodec/costablegen */\n"); | 39 printf("/* This file was generated by libavcodec/costablegen */\n"); |
| 40 printf("#include \"libavcodec/dsputil.h\"\n"); | 40 printf("#include \"libavcodec/fft.h\"\n"); |
| 41 for (i = 4; i <= BITS; i++) { | 41 for (i = 4; i <= BITS; i++) { |
| 42 int m = 1 << i; | 42 int m = 1 << i; |
| 43 double freq = 2*M_PI/m; | 43 double freq = 2*M_PI/m; |
| 44 printf("%s(%i) = {\n ", do_sin ? "SINTABLE" : "COSTABLE", m); | 44 printf("%s(%i) = {\n ", do_sin ? "SINTABLE" : "COSTABLE", m); |
| 45 for (j = 0; j < m/2 - 1; j++) { | 45 for (j = 0; j < m/2 - 1; j++) { |
| 46 int idx = j > m/4 ? m/2 - j : j; | 46 int idx = j > m/4 ? m/2 - j : j; |
| 47 if (do_sin && j >= m/4) | 47 if (do_sin && j >= m/4) |
| 48 idx = m/4 - j; | 48 idx = m/4 - j; |
| 49 printf(" "FLOATFMT",", func(idx*freq)); | 49 printf(" "FLOATFMT",", func(idx*freq)); |
| 50 if ((j & 3) == 3) | 50 if ((j & 3) == 3) |
| 51 printf("\n "); | 51 printf("\n "); |
| 52 } | 52 } |
| 53 printf(" "FLOATFMT"\n};\n", func(do_sin ? -(m/4 - 1)*freq : freq)); | 53 printf(" "FLOATFMT"\n};\n", func(do_sin ? -(m/4 - 1)*freq : freq)); |
| 54 } | 54 } |
| 55 return 0; | 55 return 0; |
| 56 } | 56 } |
| OLD | NEW |