rematrix: add type for coefficients

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2011-10-26 00:40:29 +02:00
parent 9f9b2ab1b1
commit 1e40b2c22b
2 changed files with 5 additions and 2 deletions

View File

@ -25,16 +25,19 @@
#define ONE (1.0)
#define R(x) x
#define SAMPLE float
#define COEFF float
#define RENAME(x) x ## _float
#include "rematrix_template.c"
#undef SAMPLE
#undef RENAME
#undef R
#undef ONE
#undef COEFF
#define ONE (-32768)
#define R(x) (((x) + 16384)>>15)
#define SAMPLE int16_t
#define COEFF int
#define RENAME(x) x ## _s16
#include "rematrix_template.c"

View File

@ -19,14 +19,14 @@
*/
static void RENAME(sum2)(SAMPLE *out, const SAMPLE *in1, const SAMPLE *in2, SAMPLE coeff1, SAMPLE coeff2, int len){
static void RENAME(sum2)(SAMPLE *out, const SAMPLE *in1, const SAMPLE *in2, COEFF coeff1, COEFF coeff2, int len){
int i;
for(i=0; i<len; i++)
out[i] = R(coeff1*in1[i] + coeff2*in2[i]);
}
static void RENAME(copy)(SAMPLE *out, const SAMPLE *in, SAMPLE coeff, int len){
static void RENAME(copy)(SAMPLE *out, const SAMPLE *in, COEFF coeff, int len){
if(coeff == ONE){
memcpy(out, in, sizeof(SAMPLE)*len);
}else{