From d0e9415d234f701bed8837f4e315131ea4e84482 Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Wed, 6 Jun 2012 17:12:29 +0100 Subject: fate: avoid freopen(NULL) in videogen/rotozoom A number of systems do not implement freopen() with a NULL filename correctly. This changes these programs to output individual images if opening a named output argument as a file fails, in this case assuming it is a directory. Signed-off-by: Mans Rullgard --- tests/videogen.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'tests/videogen.c') diff --git a/tests/videogen.c b/tests/videogen.c index 7228bd551c..0b7f67eb18 100644 --- a/tests/videogen.c +++ b/tests/videogen.c @@ -145,15 +145,16 @@ int main(int argc, char **argv) { int w, h, i; char buf[1024]; + int isdir = 0; - if (argc > 2) { - printf("usage: %s [file]\n" + if (argc != 2) { + printf("usage: %s file|dir\n" "generate a test video stream\n", argv[0]); exit(1); } - if (argc < 2) - err_if(!freopen(NULL, "wb", stdout)); + if (!freopen(argv[1], "wb", stdout)) + isdir = 1; w = DEFAULT_WIDTH; h = DEFAULT_HEIGHT; @@ -165,7 +166,7 @@ int main(int argc, char **argv) for (i = 0; i < DEFAULT_NB_PICT; i++) { gen_image(i, w, h); - if (argc > 1) { + if (isdir) { snprintf(buf, sizeof(buf), "%s%02d.pgm", argv[1], i); pgmyuv_save(buf, w, h, rgb_tab); } else { -- cgit v1.2.3