Commit 20cf58c3 authored by Michael Niedermayer's avatar Michael Niedermayer

make kaiser windows with other beta than 16 available

Originally committed as revision 8472 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent f88e7c83
...@@ -80,7 +80,7 @@ static double bessel(double x){ ...@@ -80,7 +80,7 @@ static double bessel(double x){
* builds a polyphase filterbank. * builds a polyphase filterbank.
* @param factor resampling factor * @param factor resampling factor
* @param scale wanted sum of coefficients for each filter * @param scale wanted sum of coefficients for each filter
* @param type 0->cubic, 1->blackman nuttall windowed sinc, 2->kaiser windowed sinc beta=16 * @param type 0->cubic, 1->blackman nuttall windowed sinc, 2..16->kaiser windowed sinc beta=2..16
*/ */
void av_build_filter(FELEM *filter, double factor, int tap_count, int phase_count, int scale, int type){ void av_build_filter(FELEM *filter, double factor, int tap_count, int phase_count, int scale, int type){
int ph, i, v; int ph, i, v;
...@@ -108,9 +108,9 @@ void av_build_filter(FELEM *filter, double factor, int tap_count, int phase_coun ...@@ -108,9 +108,9 @@ void av_build_filter(FELEM *filter, double factor, int tap_count, int phase_coun
w = 2.0*x / (factor*tap_count) + M_PI; w = 2.0*x / (factor*tap_count) + M_PI;
y *= 0.3635819 - 0.4891775 * cos(w) + 0.1365995 * cos(2*w) - 0.0106411 * cos(3*w); y *= 0.3635819 - 0.4891775 * cos(w) + 0.1365995 * cos(2*w) - 0.0106411 * cos(3*w);
break; break;
case 2: default:
w = 2.0*x / (factor*tap_count*M_PI); w = 2.0*x / (factor*tap_count*M_PI);
y *= bessel(16*sqrt(FFMAX(1-w*w, 0))); y *= bessel(type*sqrt(FFMAX(1-w*w, 0)));
break; break;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment