From bac4572300b195678a407ff8b28b35cd1e8634e7 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 4 Nov 1991 15:54:36 +0000 Subject: [PATCH] Fixed to understand new file format; and cosmetics. --- Demo/sgi/video/v2i.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/Demo/sgi/video/v2i.c b/Demo/sgi/video/v2i.c index 41589d4f4db..5f8f3b5dec3 100755 --- a/Demo/sgi/video/v2i.c +++ b/Demo/sgi/video/v2i.c @@ -1,9 +1,14 @@ +/* Convert the first image of a CMIF video movie file to SGI .rgb format. + usage: v2i videofile imagefile [planemask] + link with -limage +*/ + #include #include long bm[1280]; short rb[1280], gb[1280], bb[1280]; -long h, w; +long w, h, pf; #define R(comp) ((comp) & 0xff) #define G(comp) (((comp)>>8) & 0xff) @@ -20,7 +25,7 @@ main(argc, argv) if( argc != 3 && argc != 4) { fprintf(stderr, "Usage: v2i videofile imgfile [planemask]\n"); - exit(1); + exit(2); } if ( argc == 4) pmask = atoi(argv[3]); @@ -30,12 +35,23 @@ main(argc, argv) perror(argv[1]); exit(1); } - gets(lbuf); - if ( sscanf(lbuf, "(%d,%d)", &w, &h) != 2) { + if (fgets(lbuf, sizeof lbuf, stdin) == NULL) { + fprintf(stderr, "Immediate EOF\n"); + exit(1); + } + if (strncmp(lbuf, "CMIF", 4) == 0) { + /* Skip optional header line */ + if (fgets(lbuf, sizeof lbuf, stdin) == NULL) { + fprintf(stderr, "Immediate EOF after header\n"); + exit(1); + } + } + pf = 2; /* Default */ + if ( sscanf(lbuf, "(%d,%d,%d)", &w, &h, &pf) < 2) { fprintf(stderr, "%s: bad size spec: %s\n", argv[0], lbuf); exit(1); } - gets(lbuf); /* Skip time info */ + fgets(lbuf, sizeof lbuf, stdin); /* Skip time info */ if ( w > 1280 ) { fprintf(stderr, "%s: Sorry, too wide\n", argv[0]); exit(1);