[FFmpeg-cvslog] r23755 - in trunk/libavcodec: fft.h mdct.c

mru subversion
Thu Jun 24 11:42:34 CEST 2010


Author: mru
Date: Thu Jun 24 11:42:34 2010
New Revision: 23755

Log:
Remove VLA in ff_kbd_window_init, limit window size to 1024

Modified:
   trunk/libavcodec/fft.h
   trunk/libavcodec/mdct.c

Modified: trunk/libavcodec/fft.h
==============================================================================
--- trunk/libavcodec/fft.h	Thu Jun 24 11:02:44 2010	(r23754)
+++ trunk/libavcodec/fft.h	Thu Jun 24 11:42:34 2010	(r23755)
@@ -151,10 +151,15 @@ static inline void ff_mdct_calc(FFTConte
 }
 
 /**
+ * Maximum window size for ff_kbd_window_init.
+ */
+#define FF_KBD_WINDOW_MAX 1024
+
+/**
  * Generate a Kaiser-Bessel Derived Window.
  * @param   window  pointer to half window
  * @param   alpha   determines window shape
- * @param   n       size of half window
+ * @param   n       size of half window, max FF_KBD_WINDOW_MAX
  */
 void ff_kbd_window_init(float *window, float alpha, int n);
 

Modified: trunk/libavcodec/mdct.c
==============================================================================
--- trunk/libavcodec/mdct.c	Thu Jun 24 11:02:44 2010	(r23754)
+++ trunk/libavcodec/mdct.c	Thu Jun 24 11:42:34 2010	(r23755)
@@ -36,9 +36,11 @@ av_cold void ff_kbd_window_init(float *w
 {
    int i, j;
    double sum = 0.0, bessel, tmp;
-   double local_window[n];
+   double local_window[FF_KBD_WINDOW_MAX];
    double alpha2 = (alpha * M_PI / n) * (alpha * M_PI / n);
 
+   assert(n <= FF_KBD_WINDOW_MAX);
+
    for (i = 0; i < n; i++) {
        tmp = i * (n - i) * alpha2;
        bessel = 1.0;



More information about the ffmpeg-cvslog mailing list