lavc/texturedsp: replace rint by lrint
[ffmpeg.git] / tests / videogen.c
index f151f3e..91da8b5 100644 (file)
@@ -141,19 +141,37 @@ static void gen_image(int num, int w, int h)
     }
 }
 
+void print_help(const char* name)
+{
+    printf("usage: %s file|dir [w=%i] [h=%i]\n"
+            "generate a test video stream\n",
+            name, DEFAULT_WIDTH, DEFAULT_HEIGHT);
+    exit(1);
+}
+
 int main(int argc, char **argv)
 {
     int w, h, i;
     char buf[1024];
+    int isdir = 0;
 
-    if (argc != 2) {
-        printf("usage: %s file\n"
-               "generate a test video stream\n", argv[0]);
-        exit(1);
+    if (argc < 2 || argc > 4) {
+        print_help(argv[0]);
     }
 
+    if (!freopen(argv[1], "wb", stdout))
+        isdir = 1;
+
     w = DEFAULT_WIDTH;
+    if(argc > 2) {
+        w = atoi(argv[2]);
+        if (w < 1) print_help(argv[0]);
+    }
     h = DEFAULT_HEIGHT;
+    if(argc > 3) {
+        h = atoi(argv[3]);
+        if (h < 1) print_help(argv[0]);
+    }
 
     rgb_tab = malloc(w * h * 3);
     wrap    = w * 3;
@@ -161,9 +179,13 @@ int main(int argc, char **argv)
     height  = h;
 
     for (i = 0; i < DEFAULT_NB_PICT; i++) {
-        snprintf(buf, sizeof(buf), "%s%02d.pgm", argv[1], i);
         gen_image(i, w, h);
-        pgmyuv_save(buf, w, h, rgb_tab);
+        if (isdir) {
+            snprintf(buf, sizeof(buf), "%s%02d.pgm", argv[1], i);
+            pgmyuv_save(buf, w, h, rgb_tab);
+        } else {
+            pgmyuv_save(NULL, w, h, rgb_tab);
+        }
     }
 
     free(rgb_tab);