Mercurial > mplayer.hg
diff libaf/af_hrtf.c @ 24888:b2402b4f0afa
libaf: change filter input/output ratio calculations
Change the audio filters to use a double instead of rationals for the
ratio of output to input size. The rationals could overflow when
calculating the overall ratio of a filter chain and gave no real
advantage compared to doubles.
author | uau |
---|---|
date | Thu, 01 Nov 2007 06:52:01 +0000 |
parents | 904e3f3f8bee |
children | e29d1b1afdc7 |
line wrap: on
line diff
--- a/libaf/af_hrtf.c Thu Nov 01 06:51:57 2007 +0000 +++ b/libaf/af_hrtf.c Thu Nov 01 06:52:01 2007 +0000 @@ -293,8 +293,7 @@ af->data->format = AF_FORMAT_S16_NE; af->data->bps = 2; test_output_res = af_test_output(af, (af_data_t*)arg); - af->mul.n = 2; - af->mul.d = af->data->nch; + af->mul = 2.0 / af->data->nch; // after testing input set the real output format af->data->nch = 2; s->print_flag = 1; @@ -560,7 +559,7 @@ /* Set output data */ data->audio = af->data->audio; - data->len = (data->len * af->mul.n) / af->mul.d; + data->len = data->len / data->nch * 2; data->nch = 2; return data; @@ -597,8 +596,7 @@ af->control = control; af->uninit = uninit; af->play = play; - af->mul.n = 1; - af->mul.d = 1; + af->mul = 1; af->data = calloc(1, sizeof(af_data_t)); af->setup = calloc(1, sizeof(af_hrtf_t)); if((af->data == NULL) || (af->setup == NULL))