]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/cos_tablegen.c
x264: Add option to force IDR frames
[ffmpeg] / libavcodec / cos_tablegen.c
index 8a9085704efaa70982ddf2af75c72fdf098fecf5..92b82953362fc2e3dd72a5e79e562792eadabc1f 100644 (file)
@@ -37,11 +37,16 @@ static int clip_f15(int v)
 
 static void printval(double val, int fixed)
 {
-    if (fixed)
-        printf(" "FIXEDFMT",", clip_f15(lrint(val * (double)(1<<15))));
-    else
-        printf(" "FLOATFMT",", val);
+    if (fixed) {
+        /* lrint() isn't always available, so round and cast manually. */
+        double new_val = val * (double) (1 << 15);
+
+        new_val = new_val >= 0 ? floor(new_val + 0.5) : ceil(new_val - 0.5);
 
+        printf(" "FIXEDFMT",", clip_f15((long int) new_val));
+    } else {
+        printf(" "FLOATFMT",", val);
+    }
 }
 
 int main(int argc, char *argv[])
@@ -52,7 +57,7 @@ int main(int argc, char *argv[])
     double (*func)(double) = do_sin ? sin : cos;
 
     printf("/* This file was automatically generated. */\n");
-    printf("#define CONFIG_FFT_FLOAT %d\n", !fixed);
+    printf("#define FFT_FLOAT %d\n", !fixed);
     printf("#include \"libavcodec/%s\"\n", do_sin ? "rdft.h" : "fft.h");
     for (i = 4; i <= BITS; i++) {
         int m = 1 << i;