1 /*
2 * xil2jfif.c --
3 *
4 * FIXME: This file needs a description here.
5 *
6 * Copyright (c) 1996-2002 The Regents of the University of California.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are met:
11 *
12 * A. Redistributions of source code must retain the above copyright notice,
13 * this list of conditions and the following disclaimer.
14 * B. Redistributions in binary form must reproduce the above copyright notice,
15 * this list of conditions and the following disclaimer in the documentation
16 * and/or other materials provided with the distribution.
17 * C. Neither the names of the copyright holders nor the names of its
18 * contributors may be used to endorse or promote products derived from this
19 * software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
22 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 */
33
34 #include <stdio.h>
35 #include <sys/file.h>
36
37 /*
38 * Write the first frame of a vic dump file to
39 * stdout, as a JFIF format file.
40 */
41 main(int argc, char **argv)
42 {
43 int fd, cc, len;
44 int start = 0;
45 int end = 0;
46 u_char *p;
47 int op, n;
48 extern int optind, opterr;
49 extern char *optarg;
50 char *ofile = "out";
51 u_char *bp;
52 u_char buffer[80 * 1024];
53
54 opterr = 0;
55 while ((op = getopt(argc, argv, "n:s:e:o:")) != -1) {
56 switch (op) {
57
58 case 'n':
59 start = end = atoi(optarg);
60 break;
61
62 case 's':
63 start = atoi(optarg);
64 break;
65
66 case 'e':
67 end = atoi(optarg);
68 break;
69
70 case 'o':
71 ofile = optarg;
72 if (strlen(ofile) > 200)
73 exit(1);
74 break;
75 }
76 }
77 argc -= optind;
78 argv += optind;
79
80 if (argc != 1)
81 exit(1);
82
83 fd = open(*argv, O_RDONLY);
84 if (fd < 0) {
85 perror(*argv);
86 exit(1);
87 }
88 cc = read(fd, (char*)buffer, sizeof(buffer));
89 close(fd);
90 bp = &buffer[16];
91 cc -= 16;
92
93 len = ntohl(*(int*)bp);
94 bp += 4;
95 cc -= 4;
96
97 write(1, bp, len);
98
99 exit(0);
100 }
101
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.