aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2017-08-22 00:52:17 -0700
committerChris Robinson <[email protected]>2017-08-22 00:52:17 -0700
commit61097d467c1923bb1c031bc41776417df98a1f3e (patch)
treee449966801d78c19a1352f3e175f665f61e3f03a /utils
parent46f18ba114831ff26e8f270c6b5c881b45838439 (diff)
Parameterize the bsinc table name
Diffstat (limited to 'utils')
-rw-r--r--utils/bsincgen.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/utils/bsincgen.c b/utils/bsincgen.c
index 324e8b04..be9940c3 100644
--- a/utils/bsincgen.c
+++ b/utils/bsincgen.c
@@ -52,6 +52,7 @@
#define BSINC_REJECTION (60.0)
#define BSINC_POINTS_MIN (12)
#define BSINC_ORDER (BSINC_POINTS_MIN - 1)
+#define BSINC_POINTS_MAX (BSINC_POINTS_MIN * 2)
static double MinDouble(double a, double b)
{ return (a <= b) ? a : b; }
@@ -127,12 +128,12 @@ static double CalcKaiserBeta(const double rejection)
}
/* Generates the coefficient, delta, and index tables required by the bsinc resampler */
-static void BsiGenerateTables()
+static void BsiGenerateTables(const char *tabname)
{
- static double filter[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT + 1][2 * BSINC_POINTS_MIN];
- static double scDeltas[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT ][2 * BSINC_POINTS_MIN];
- static double phDeltas[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT + 1][2 * BSINC_POINTS_MIN];
- static double spDeltas[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT ][2 * BSINC_POINTS_MIN];
+ static double filter[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT + 1][BSINC_POINTS_MAX];
+ static double scDeltas[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT ][BSINC_POINTS_MAX];
+ static double phDeltas[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT + 1][BSINC_POINTS_MAX];
+ static double spDeltas[BSINC_SCALE_COUNT][BSINC_PHASE_COUNT ][BSINC_POINTS_MAX];
static int mt[BSINC_SCALE_COUNT];
static double at[BSINC_SCALE_COUNT];
double width, beta, scaleBase, scaleRange;
@@ -256,11 +257,11 @@ static void BsiGenerateTables()
" const float scaleBase, scaleRange;\n"
" const int m[BSINC_SCALE_COUNT];\n"
" const int filterOffset[BSINC_SCALE_COUNT];\n"
-"} bsinc = {\n", BSINC_ORDER, (((BSINC_ORDER%100)/10) == 1) ? "th" :
+"} %s = {\n", BSINC_ORDER, (((BSINC_ORDER%100)/10) == 1) ? "th" :
((BSINC_ORDER%10) == 1) ? "st" :
((BSINC_ORDER%10) == 2) ? "nd" :
((BSINC_ORDER%10) == 3) ? "rd" : "th",
- BSINC_REJECTION, width, log2(1.0/scaleBase), i);
+ BSINC_REJECTION, width, log2(1.0/scaleBase), i, tabname);
fprintf(stdout, " /* Tab */ {\n");
for(si = 0; si < BSINC_SCALE_COUNT; si++)
@@ -357,7 +358,7 @@ static void Sinc4GenerateTables(void)
int main(void)
{
- BsiGenerateTables();
+ BsiGenerateTables("bsinc");
Sinc4GenerateTables();
return 0;
}