[2.0] Backport all changes since r2798 (included) from trunk
[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 ) return 1;
57   
58   if( (fd = open( argv[1], O_RDONLY)) == -1){
59     fprintf( stderr, "Error: Target %s not found\n", argv[1]);
60     return -1;
61   }
62
63   if( !(jp2idx = get_index_from_JP2file( fd))){
64     fprintf( stderr, "JP2 file broken\n");
65     return -1;
66   }
67   
68   output_index( jp2idx);
69   destroy_index( &jp2idx);
70   close(fd);
71
72   return 0;
73 } /* main */