Reformat whole codebase with astyle.options (#128)
[openjpeg.git] / src / bin / jpip / opj_jpip_test.c
1 /*
2  * $Id: test_index.c 46 2011-02-17 14:50:55Z kaori $
3  *
4  * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
5  * Copyright (c) 2002-2014, Professor Benoit Macq
6  * Copyright (c) 2010-2011, Kaori Hagihara
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
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30
31 /*! \file
32  *  \brief test_index is a program to test the index code format of a JP2 file
33  *
34  *  \section impinst Implementing instructions
35  *  This program takes one argument, and print out text type index information to the terminal. \n
36  *   -# Input  JP2 file\n
37  *   % ./test_index input.jp2\n
38  */
39
40 #include <stdio.h>
41 #include <sys/types.h>
42 #include <sys/stat.h>
43 #include <fcntl.h>
44 #ifdef _WIN32
45 #include <io.h>
46 #else
47 #include <unistd.h>
48 #endif
49 #include "openjpip.h"
50
51 int
52 main(int argc, char *argv[])
53 {
54     int fd;
55     index_t *jp2idx;
56     if (argc < 2) {
57         return 1;
58     }
59
60     if ((fd = open(argv[1], O_RDONLY)) == -1) {
61         fprintf(stderr, "Error: Target %s not found\n", argv[1]);
62         return -1;
63     }
64
65     if (!(jp2idx = get_index_from_JP2file(fd))) {
66         fprintf(stderr, "JP2 file broken\n");
67         return -1;
68     }
69
70     output_index(jp2idx);
71     destroy_index(&jp2idx);
72     close(fd);
73
74     return 0;
75 } /* main */