]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
make kaiser windows with other beta than 16 available
authormichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 21 Mar 2007 23:44:49 +0000 (23:44 +0000)
committermichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 21 Mar 2007 23:44:49 +0000 (23:44 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@8472 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/resample2.c

index 84221f4d6577efafac7549376e93d8bc41da1f04..10e98e580ebded0dd1a422d559c46f69b6f6fdbf 100644 (file)
@@ -80,7 +80,7 @@ static double bessel(double x){
  * builds a polyphase filterbank.
  * @param factor resampling factor
  * @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){
     int ph, i, v;
@@ -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;
                 y *= 0.3635819 - 0.4891775 * cos(w) + 0.1365995 * cos(2*w) - 0.0106411 * cos(3*w);
                 break;
-            case 2:
+            default:
                 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;
             }