[trunk] Remove bool.h, use opj_bool instead
[openjpeg.git] / src / lib / openjpip / j2kheader_manager.h
1 /*
2  * $Id$
3  *
4  * Copyright (c) 2002-2011, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
5  * Copyright (c) 2002-2011, Professor Benoit Macq
6  * Copyright (c) 2010-2011, Kaori Hagihara 
7  * Copyright (c) 2011,      Lucian Corlaciu, GSoC
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31
32 #ifndef         J2KHEADER_MANAGER_H_
33 # define        J2KHEADER_MANAGER_H_
34
35 #include "byte_manager.h"
36 #include "index_manager.h"
37
38 /**
39  * get main header information from j2k codestream
40  *
41  * @param[in]  j2kstream j2k codestream
42  * @param[out] SIZ       SIZ marker pointer
43  * @param[out] COD       COD marker pointer
44  * @return               if succeeded (true) or failed (false)
45  */
46 opj_bool get_mainheader_from_j2kstream( Byte_t *j2kstream, SIZmarker_param_t *SIZ, CODmarker_param_t *COD);
47
48 /**
49  * modify main header in j2k codestream to fit with the new number of decompositions
50  *
51  * @param[in]  j2kstream   j2k codestream
52  * @param[in]  numOfdecomp the New number of decompositions
53  * @param[in]  SIZ         original SIZ marker information
54  * @param[in]  COD         original COD marker information
55  * @param[out] j2klen      pointer to the length of j2k code stream
56  * @return                 if succeeded (true) or failed (false)
57  */
58 opj_bool modify_mainheader( Byte_t *j2kstream, int numOfdecomp, SIZmarker_param_t SIZ, CODmarker_param_t COD, Byte8_t *j2klen);
59
60 /**
61  * modify tile header in j2k codestream to fit with the tile part length, and new number of decompositions for multi-componet images
62  *
63  * @param[in]  j2kstream   j2k codestream
64  * @param[in]  SOToffset   offset of SOT marker from the beginning of j2kstream
65  * @param[in]  numOfdecomp the New number of decompositions, -1 if the same as original
66  * @param[in]  Csiz        number of components
67  * @param[out] j2klen      pointer to the length of j2k code stream
68  * @return                 if succeeded (true) or failed (false)
69  */
70 opj_bool modify_tileheader( Byte_t *j2kstream, Byte8_t SOToffset, int numOfdecomp, Byte2_t Csiz, Byte8_t *j2klen);
71
72 #endif      /* !J2KHEADER_MANAGER_H_ */