From d7ddc2c84dcb61d284a7a31dad96d3cc65023f4b Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@c-s.fr>
Date: Tue, 29 Apr 2008 12:28:50 +0000
Subject: [PATCH]  Maj openpjeg

---
 Code/IO/otbJPEG2000ImageIO.cxx                |   2 +-
 Utilities/otbopenjpeg/libopenjpeg/.tcd.c.swp  | Bin 16384 -> 0 bytes
 Utilities/otbopenjpeg/libopenjpeg/bio.c       |  12 +-
 Utilities/otbopenjpeg/libopenjpeg/bio.h       |   4 +-
 Utilities/otbopenjpeg/libopenjpeg/cio.c       |  18 +-
 Utilities/otbopenjpeg/libopenjpeg/cio.h       |  14 +-
 Utilities/otbopenjpeg/libopenjpeg/dwt.c       |  16 +-
 Utilities/otbopenjpeg/libopenjpeg/dwt.h       |   8 +-
 Utilities/otbopenjpeg/libopenjpeg/event.c     |   2 +-
 Utilities/otbopenjpeg/libopenjpeg/event.h     |   2 +-
 .../otbopenjpeg/libopenjpeg/function_list.c   |   2 +-
 .../otbopenjpeg/libopenjpeg/function_list.h   |   2 +-
 Utilities/otbopenjpeg/libopenjpeg/invert.c    |   6 +-
 Utilities/otbopenjpeg/libopenjpeg/invert.h    |   2 +-
 Utilities/otbopenjpeg/libopenjpeg/j2k.c       | 332 +++++++++---------
 Utilities/otbopenjpeg/libopenjpeg/j2k.h       |  35 +-
 Utilities/otbopenjpeg/libopenjpeg/jp2.c       |  98 +++---
 Utilities/otbopenjpeg/libopenjpeg/jp2.h       |  24 +-
 Utilities/otbopenjpeg/libopenjpeg/jpt.c       |   4 +-
 Utilities/otbopenjpeg/libopenjpeg/jpt.h       |   2 +-
 Utilities/otbopenjpeg/libopenjpeg/mct.c       |   4 +-
 Utilities/otbopenjpeg/libopenjpeg/mct.h       |   4 +-
 Utilities/otbopenjpeg/libopenjpeg/openjpeg.c  | 137 +++++---
 Utilities/otbopenjpeg/libopenjpeg/openjpeg.h  | 133 ++++---
 .../otbopenjpeg/libopenjpeg/opj_includes.h    |  24 ++
 Utilities/otbopenjpeg/libopenjpeg/pi.c        |  22 +-
 Utilities/otbopenjpeg/libopenjpeg/pi.h        |   2 +-
 Utilities/otbopenjpeg/libopenjpeg/profile.c   |   6 +-
 Utilities/otbopenjpeg/libopenjpeg/profile.h   |   9 -
 Utilities/otbopenjpeg/libopenjpeg/t1.c        |   4 +-
 Utilities/otbopenjpeg/libopenjpeg/t1.h        |   2 +-
 Utilities/otbopenjpeg/libopenjpeg/t2.c        |  30 +-
 Utilities/otbopenjpeg/libopenjpeg/t2.h        |   4 +-
 Utilities/otbopenjpeg/libopenjpeg/tcd.c       |  48 +--
 Utilities/otbopenjpeg/libopenjpeg/tcd.h       |  18 +-
 35 files changed, 552 insertions(+), 480 deletions(-)
 delete mode 100644 Utilities/otbopenjpeg/libopenjpeg/.tcd.c.swp

diff --git a/Code/IO/otbJPEG2000ImageIO.cxx b/Code/IO/otbJPEG2000ImageIO.cxx
index 5aa42f85fb..8a86ce648c 100755
--- a/Code/IO/otbJPEG2000ImageIO.cxx
+++ b/Code/IO/otbJPEG2000ImageIO.cxx
@@ -249,11 +249,11 @@ namespace otb
 	itkExceptionMacro(<<"Failed to read image header.");
       }
 
-    bool goesOn = true;
     OPJ_BYTE * tile_data;
     OPJ_INT32  tile_x1,tile_y1;
     OPJ_UINT32 data_size,nb_comps;
     OPJ_UINT32 tile_index;
+    OPJ_BOOL   goesOn = true;
 
     while(goesOn)
       {
diff --git a/Utilities/otbopenjpeg/libopenjpeg/.tcd.c.swp b/Utilities/otbopenjpeg/libopenjpeg/.tcd.c.swp
deleted file mode 100644
index c76eee6032f9f933f27e012d16d614a27e0995f0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16384
zcmeHOYiuJ|6`oT1$d+z_K4_&D-A(CYJB}Y&K~b{_c<o6tE5}a9<D^TrG8228Ox82w
zof$iEcUK6if{-eeR^p)+fe;TNR0KleA%T#n5I+F56jh=^AXKq`s8pyBw9wL)@7%d#
zkMr145Fizg^x1RoJ@=e*zxzIM)-ub=BD*z}k?_1(lD-prc>eA~lB8TMNv`Agl>KVY
zf@2vK!|fXGg(cIL(J=M2Z?)6qwqYM{8|zc)g3&cvPTMkUKix9d929J#Ann&1srrTW
zjY>xhj2L(=3|uK4naXBv9zVpcerxr$R2<2U7#J}yVqnC;h=CCUBL+qcj2IX(@H$|?
zZy%IiK|9_6ydSto;1xVQyswJ%%SbQd{RxqN327DY2~?mue@A)&-)BYoMWhX+e<ac`
zApK>e<1j?>e?z*9@5e;?uSk1H%NGab&x`bTMfy3U$)AZg2IYT2`d*~JDAIpMnt~OX
zOM-G#lTK5)NaJ<%j2IX(Fk)cDz=(kn10x1T42&2UF)(6a#K4Gw|62z1h9q5v*56H+
za{T?DVgN5)g*0$Ga2R;*pd@__=mE!pDIg8}{z^&u0`Mt71r7o~eiLE<Ko&>=zr8||
z9sml!^9Lm98^8u|Bk=f`Bz**U4{!r;EpQERG4RaglJslf5#Z~<=YacwEuaZhfdX&@
zcsp<ta0BoZ8uJ_A<G{VZN#G9P3g9x}$x9K#06q%b4V(n#fIM(L@HXH&;9B4ph#fox
zJP3Rckb!3rZ}=ndE#NFr0~l}~0f&cyEnpd#2Mz#_Aii-Apa3!8df-uTO?-ctIG3a`
zdR)VsoZZeO8Gq@8FWcELCwysdiJbO^c(FUynr=6|_;jFZob{jW%*-u~B<lrV+u0x$
ze6_cDs=dL#LM2F?w8xWNQ?u=ww%?338@tkM{G<&laF(5cyfE#wH*5IaMh)3ctK*xF
zUGrIjgl5=b-)tH6$=N}fw~BY$xs$uybX*qWX~<@#Nwe*+qfFF-dy$Hwcw!>X&TvnK
z6!9lsiNP=z)P=c&*I|vK0fM><(KcK!Le~zqB1y*8au*_Og=F!3$7&N*fs7z)a<-0a
zZ<Rg;O`N459nd7+1D+;l;T*3s&4PkHL!>wuU%^{Q5Ap;hle4}4Td0P!va2Dl!VY&}
zz{`&6WPU(Gl!LJSe5}+Ple09EOiN#f<5bIArO$u}&O?w4co6SLnQ5&<e1j##+txJi
zd)o=9z-S31FpGpJ1_xOamiQ2griqkDniCgIXNjbpjSQxiPg9F=x)`5(!9-*|nt(LR
z*p8aqhmaj<43kedpA`McXT0qs8BKWlZo5X^cBa#5NUXI^;Z;f}x{lc(r)!Ol)sD?6
zMVTcqhgqL(477SA&CL@1L<vnPJf5%nW}Wp_HC@A~5zDb*EoglrExoU;ySha-nU*iG
z4S3fwq&d`K{)WLU!*bjn(_1a4uKPxVQU4is-D#NiIvh@f=GGji#XU!nQCoxfsanIR
z*TR~tZ=G7pi^%PEZ6FVa7(7C5PMGsT`(#yT(8uk9(uTpfjnu380AKg>fr?(M4|c!t
z`#I6)ebBHPS!x)&sh}}n+I3&J5he#j6#A7s-W?(HtfBilbDBJJ-Rv4RA5Ww!U_`nZ
z@2w7K8sD5cRm0EoQXAuuObdcT8I7$S8UFf?42<dFDm0ud-l*YxKf5D6HJrxJ2KQ1W
z9QKBV;r(z%_%p-dT#R4J2nWzoxl&P%DMdv)!OC;2Qq3>0LT)iPFQ@qUQk9BQnrBLh
z<w_^mN)A$0jU=@NnN=%t@Tyc;r97vt<WxDy<Yl?UlsT3wEGrecAcRR<zFgAOTwY7E
zil!=gjTMz#U^~gmD$~lU#$rk-U#u3$Xi1(gD)VwF4=XAw!=kzZjd4<?lr&jYt4o?v
zF2&hGc?DKgme0YZ0$hdFz++S@tGsCuTPq7PDT5MHRjD4UXo^<VWHw(e7b;||BCE?v
zUam~DA_$@;KyebxXgTicl3JcqG!#SjSQQk>m5OL#MZUc%moz0;6hu}cZAwB~W2G`R
zeNoZit5!}jXv<esc@foMiu91PSkmU8o_H@Ps!X&grNLWXDL_6~1er^69_GOO9rEH*
zF{hp&A4v`R19dC;Voq6<3n@nZSSs@#(pY67S1j^=%$Ju=sLK2Ttgn>73#{_4Qs8V^
zt*~P<DN~?Zfyd}&HHQYuoR>ve%`YG+I+Ak_YKV})eYTWSH6>q#Uu>zWV!&~2)JN1b
z`Hm%(WMOl+0cx=r4SO?(ZY0;Vg~$kGcn71);HSWjo!HUBg>tbVqfKOgsF5GYRZ#Pt
zP)8c^G@N>eezJ>A!m$~a`!v>82W!2{EUfUZskb~VCQjFEV7cEiu_Mz)&@esUHP`sj
zkk28gvK?$R26ovE(_<|N(27)d?1o9YJyOo=HXW?zTi7s2OTDF=7L1uTm620ZDW>A*
z#RL5w6|R}Kj-3Z9zs0N$bh`$;YIN$s#-y(~T?5A2J=a{{@I~YP9gldcvb%jjn>?rE
z!Y<!-gfG4xG=S~li0;zH>EA|9S=h0fCiYG+l4MlUHeAc}X)o=w>~H8eFM#C%Qv(`F
z%P>Ej*p6oqO~N&zI>MNj40;Y-OFigxh#*pgot1IIJUXY-FTWeS-T9D67OThER3`K8
zNqpRjNvykF9sV)7rQ7RHSGP&cF7bCI*#c=}1=nd&OX&om&=HVnhHmXy=ZG*d=ju36
znBHW$Wp+&r4g9cN?`-o{=4{`w(aeJ3)pe`Q$IC9`Q>5rflAX|P+pM2r%ZBUKH#&xE
z?Coq;$QN`Ba&}y|J<qVcJ$>Y=i3Znc8lDF}kKrI|`fO3JpT1y?ykl7%xWjusm<uWn
zQ@+6}Fh-N1h@s=^KF(K3R<*H-yPk<+)Yx!Z=IIV5oxzGur%OXER?QdVSS^g!y4kUC
z>XGRFe;(((@8e!d_ka4ExsN;ljlcom65t|00)B`)|5t#!01a3GZUU|ct^wWxJcAg(
zL%@T84Qv9(fqCFO;sKupJ`LOjbb$&`1}Ii=Iq)>%1Wy8w0N(^Y1Z)5~;3nVza2aqB
z@G@cuzXR?8P69<B3tR`hfEdEFz<J;?;9=lnfB~!m%YX`$ff6td90Hz34B^|rIe=md
zzeLR7Gr&AB2fPEg3OES-95I3ifct@afHrU#7zdt1tl&}LOMnTi0G9$1@FL;`e*%62
zd>&W<W&rwa!><rCcmj9~_$lyJ;FG{7fCqs4fd$|X=&xshr+~+SM}eOKKLDsNzX!bD
zpK}tzCVt1o9^iHiT*IU>WQBQ6Y(bQ1Hd)MYn*3ffmQK@olb;=HmbV_mi4WIo({4JG
zvm$rhrDK{_Q%Z9<evD7@D_C%Az-o(0bPJYpetV<q5bi{lL07<j0vA%UQK!pGEY5=Z
zTx@zQoq#sWV76h<zUVtbFVh1nxVTUo&<Ik8XbC@|BOsE2g)vgAx6F0hXw>LF7K;dx
z3%vEghxo*07mKIRvl=tujniy;hF{x`vk4a49Axz3Sdq8xg!ee2!+Wfgv2K!CCYE7K
z-{$%er|Pna8KyTjv6qrXJakL#qFO5m7U92pLfK}^p&iL;qcj%dsYE>L^C~%n9fTqi
zp*uX;%aAwzRuCH+!}bl|XF}0wW+E~a)XPq@i3wB0fk<vMl<Ogiv>D3vxZGwSch11b
zI78mka0x&En_NXm_#bg#HiNP6*V`0nsSn~zsnb?-4LjP*49g0>h^6RAqW(m;C*pjh
z2e-FaD6oZ|3*RXY<C%A1`jLE`4-8m76qeKQj#E$2ATpC|bDG9JCB!i8!4#6Ux?#2&
zX1DEZP4x{?C?-_Y)a%#+1O0>A+ZU)!fu3Eph4C$_CuYtT4Ri9yr(Dr-+gUNMF}1ca
zH-!l1Nu;K?j^osO8H;7v(W4+tD5U#2YG>oLHe}gtqC8s6OG3MtfxDGX?yvMVginP(
z!8}FnNMGa5PH__+0;%!k<?PvhW69+>e9pkFeY_^!v=CwC9E$TMXhOo&UUA;AZIG~?
zz`D`kbDK2rQbcel1R4$<t|$^_<3Yt}Bs6q^cZjIU-$NI6M^7pI6C*_kEb|z%c;6j7
zotOxU#Ga9u9DX!J)P{3-N-W+(%kbEk9j=CB(G@WCZtBhy^+A$>ReJW4$qJbZh-9K7
z{T?>ZL3%4j_0BO`^F*{f>J)LdpEJ?29Zp1x_A$=w(&o$e*vL8q`CUs4pJ6o4`JNU!
z1j+tPi{|m&VW(s-oRbkr>?3?G40!>5*kQ4@osq_fnBd?*V~X#qtpcq}R5N&Z3-~aN
z=;m`}Ad^lr-)Q01izf4{F2&YxqxJZHJy6B@4g>7{ejmfhgxPDs)z@k}HtyCQ){K;q
z;tMDhw7FM(P29<01vF}ds(mRB`#56f!*aAF51Z=C4?3$qjBv}~3kBEF&oydwoB<pw
zMxHMsUPa>=YWSAQeOoo@G!Y#sW-v^NG!T!`Zq8(;&7*-x$jLPA=P1Q=#U~GhCK8Nm
zr12p#hPIwz1qrd^kYqyaIat316aS$xM(v4=^gc}?d1#T@lyCstxp08Gomoipwd7wp
ztRe!7W2JLya7sl^|BxEKg9IAvgEMMafUcnq<eeBCj;Mt17h*LbuIovL-ok1=6_f;1
zWoV5VR0~e2d)C-%bqH48J(dWZ8-|RsS(f2vhv8g|xc&Bx)X@He180`++>yqL>qK~U
zpxHl;nTLAf@0mQPMAO?r`~$J277ynj=!EdZNqdpPG(A53>uoH)JkG@bG-4nomg0XX
zMbDDjbb>nIpSp-3mRnYF6OmmPJ6O1P^NE#W8hil(YY2Gka1@sd7oh?~Q?LqcAiM<;
NgkX5UEUYpv{R0VJ9gqM3

diff --git a/Utilities/otbopenjpeg/libopenjpeg/bio.c b/Utilities/otbopenjpeg/libopenjpeg/bio.c
index 81a1081f91..53382f0b03 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/bio.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/bio.c
@@ -56,13 +56,13 @@ Write a byte
 @param bio BIO handle
 @return Returns 0 if successful, returns 1 otherwise
 */
-static bool bio_byteout(opj_bio_t *bio);
+static OPJ_BOOL bio_byteout(opj_bio_t *bio);
 /**
 Read a byte
 @param bio BIO handle
 @return Returns 0 if successful, returns 1 otherwise
 */
-static bool bio_bytein(opj_bio_t *bio);
+static OPJ_BOOL bio_bytein(opj_bio_t *bio);
 
 /*@}*/
 
@@ -74,7 +74,7 @@ static bool bio_bytein(opj_bio_t *bio);
 ==========================================================
 */
 
-static bool bio_byteout(opj_bio_t *bio) {
+static OPJ_BOOL bio_byteout(opj_bio_t *bio) {
 	bio->buf = (bio->buf << 8) & 0xffff;
 	bio->ct = bio->buf == 0xff00 ? 7 : 8;
 	if (bio->bp >= bio->end) {
@@ -84,7 +84,7 @@ static bool bio_byteout(opj_bio_t *bio) {
 	return false;
 }
 
-static bool bio_bytein(opj_bio_t *bio) {
+static OPJ_BOOL bio_bytein(opj_bio_t *bio) {
 	bio->buf = (bio->buf << 8) & 0xffff;
 	bio->ct = bio->buf == 0xff00 ? 7 : 8;
 	if (bio->bp >= bio->end) {
@@ -163,7 +163,7 @@ OPJ_UINT32 bio_read(opj_bio_t *bio, OPJ_UINT32 n) {
 	return v;
 }
 
-bool bio_flush(opj_bio_t *bio) {
+OPJ_BOOL bio_flush(opj_bio_t *bio) {
 	bio->ct = 0;
 	if (bio_byteout(bio)) {
 		return true;
@@ -177,7 +177,7 @@ bool bio_flush(opj_bio_t *bio) {
 	return false;
 }
 
-bool bio_inalign(opj_bio_t *bio) {
+OPJ_BOOL bio_inalign(opj_bio_t *bio) {
 	bio->ct = 0;
 	if ((bio->buf & 0xff) == 0xff) {
 		if (bio_bytein(bio)) {
diff --git a/Utilities/otbopenjpeg/libopenjpeg/bio.h b/Utilities/otbopenjpeg/libopenjpeg/bio.h
index 2e6feec3fb..865eec4895 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/bio.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/bio.h
@@ -110,13 +110,13 @@ Flush bits
 @param bio BIO handle
 @return Returns 1 if successful, returns 0 otherwise
 */
-bool bio_flush(opj_bio_t *bio);
+OPJ_BOOL bio_flush(opj_bio_t *bio);
 /**
 Passes the ending bits (coming from flushing)
 @param bio BIO handle
 @return Returns 1 if successful, returns 0 otherwise
 */
-bool bio_inalign(opj_bio_t *bio);
+OPJ_BOOL bio_inalign(opj_bio_t *bio);
 /* ----------------------------------------------------------------------- */
 /*@}*/
 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/cio.c b/Utilities/otbopenjpeg/libopenjpeg/cio.c
index 81c1cca7be..59a63196ea 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/cio.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/cio.c
@@ -224,7 +224,7 @@ void opj_read_float_LE(const OPJ_BYTE * p_buffer, OPJ_FLOAT32 * p_value)
  * Creates an abstract stream. This function does nothing except allocating memory and initializing the abstract stream.
  * @return a stream object.
 */
-opj_stream_t* opj_stream_create(OPJ_UINT32 p_size,bool l_is_input)
+opj_stream_t* OPJ_CALLCONV opj_stream_create(OPJ_UINT32 p_size,OPJ_BOOL l_is_input)
 {
 	opj_stream_private_t * l_stream = 00;
 	l_stream = (opj_stream_private_t*) opj_malloc(sizeof(opj_stream_private_t));
@@ -268,7 +268,7 @@ opj_stream_t* opj_stream_create(OPJ_UINT32 p_size,bool l_is_input)
  * Creates an abstract stream. This function does nothing except allocating memory and initializing the abstract stream.
  * @return a stream object.
 */
-opj_stream_t* opj_stream_default_create(bool l_is_input)
+opj_stream_t* OPJ_CALLCONV opj_stream_default_create(OPJ_BOOL l_is_input)
 {
 	return opj_stream_create(J2K_STREAM_CHUNK_SIZE,l_is_input);
 }
@@ -548,7 +548,7 @@ OPJ_UINT32 opj_stream_write_data (opj_stream_private_t * p_stream,const OPJ_BYTE
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		the number of bytes written, or -1 if an error occured.
  */
-bool opj_stream_flush (opj_stream_private_t * p_stream, opj_event_mgr_t * p_event_mgr)
+OPJ_BOOL opj_stream_flush (opj_stream_private_t * p_stream, opj_event_mgr_t * p_event_mgr)
 {
 	// the number of bytes written on the media.
 	OPJ_UINT32 l_current_write_nb_bytes = 0;
@@ -646,7 +646,7 @@ OPJ_SIZE_T opj_stream_read_skip (opj_stream_private_t * p_stream, OPJ_SIZE_T p_s
  */
 OPJ_SIZE_T opj_stream_write_skip (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr)
 {
-	bool l_is_written = 0;
+	OPJ_BOOL l_is_written = 0;
 	OPJ_SIZE_T l_current_skip_nb_bytes = 0;
 	OPJ_SIZE_T l_skip_nb_bytes = 0;
 
@@ -721,7 +721,7 @@ OPJ_SIZE_T opj_stream_skip (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size,
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		the number of bytes skipped, or -1 if an error occured.
  */
-bool opj_stream_read_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr)
+OPJ_BOOL opj_stream_read_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr)
 {
 	p_stream->m_current_data = p_stream->m_stored_data;
 	p_stream->m_bytes_in_buffer = 0;
@@ -748,7 +748,7 @@ bool opj_stream_read_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, o
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		the number of bytes skipped, or -1 if an error occured.
  */
-bool opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr)
+OPJ_BOOL opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, opj_event_mgr_t * p_event_mgr)
 {
 	if
 		(! opj_stream_flush(p_stream,p_event_mgr))
@@ -781,7 +781,7 @@ bool opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size,
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		true if the stream is seekable.
  */
-bool opj_stream_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr)
+OPJ_BOOL opj_stream_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr)
 {
 	return p_stream->m_opj_seek(p_stream,p_size,p_event_mgr);
 }
@@ -789,7 +789,7 @@ bool opj_stream_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct
 /**
  * Tells if the given stream is seekable.
  */
-bool opj_stream_has_seek (const opj_stream_private_t * p_stream)
+OPJ_BOOL opj_stream_has_seek (const opj_stream_private_t * p_stream)
 {
 	return p_stream->m_seek_fn != opj_stream_default_seek;
 }
@@ -811,7 +811,7 @@ OPJ_SIZE_T opj_stream_default_skip (OPJ_SIZE_T p_nb_bytes, void * p_user_data)
 	return (OPJ_SIZE_T) -1;
 }
 
-bool opj_stream_default_seek (OPJ_SIZE_T p_nb_bytes, void * p_user_data)
+OPJ_BOOL opj_stream_default_seek (OPJ_SIZE_T p_nb_bytes, void * p_user_data)
 {
 	return false;
 }
diff --git a/Utilities/otbopenjpeg/libopenjpeg/cio.h b/Utilities/otbopenjpeg/libopenjpeg/cio.h
index 6315e8f4f4..83ec37a10e 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/cio.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/cio.h
@@ -131,7 +131,7 @@ typedef struct opj_stream_private
 
 	OPJ_SIZE_T (* m_opj_skip)(struct opj_stream_private * ,OPJ_SIZE_T , struct opj_event_mgr *);
 	
-	bool (* m_opj_seek) (struct opj_stream_private * , OPJ_SIZE_T , struct opj_event_mgr *);
+	OPJ_BOOL (* m_opj_seek) (struct opj_stream_private * , OPJ_SIZE_T , struct opj_event_mgr *);
 	
 	/**
 	 * number of bytes containing in the buffer.
@@ -275,7 +275,7 @@ OPJ_UINT32 opj_stream_write_data (opj_stream_private_t * p_stream,const OPJ_BYTE
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		true if the data could be flushed, false else.
  */
-bool opj_stream_flush (opj_stream_private_t * p_stream, struct opj_event_mgr * p_event_mgr);
+OPJ_BOOL opj_stream_flush (opj_stream_private_t * p_stream, struct opj_event_mgr * p_event_mgr);
 
 /**
  * Skips a number of bytes from the stream.
@@ -320,7 +320,7 @@ OPJ_SIZE_T opj_stream_read_skip (opj_stream_private_t * p_stream, OPJ_SIZE_T p_s
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		the number of bytes skipped, or -1 if an error occured.
  */
-bool opj_stream_read_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr);
+OPJ_BOOL opj_stream_read_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr);
 
 /**
  * Skips a number of bytes from the stream.
@@ -329,7 +329,7 @@ bool opj_stream_read_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, s
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		the number of bytes skipped, or -1 if an error occured.
  */
-bool opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr);
+OPJ_BOOL opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr);
 
 /**
  * Seeks a number of bytes from the stream.
@@ -338,17 +338,17 @@ bool opj_stream_write_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size,
  * @param		p_event_mgr	the user event manager to be notified of special events.
  * @return		true if the stream is seekable.
  */
-bool opj_stream_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr);
+OPJ_BOOL opj_stream_seek (opj_stream_private_t * p_stream, OPJ_SIZE_T p_size, struct opj_event_mgr * p_event_mgr);
 
 /**
  * Tells if the given stream is seekable.
  */
-bool opj_stream_has_seek (const opj_stream_private_t * p_stream);
+OPJ_BOOL opj_stream_has_seek (const opj_stream_private_t * p_stream);
 
 OPJ_UINT32 opj_stream_default_read (void * p_buffer, OPJ_UINT32 p_nb_bytes, void * p_user_data);
 OPJ_UINT32 opj_stream_default_write (void * p_buffer, OPJ_UINT32 p_nb_bytes, void * p_user_data);
 OPJ_SIZE_T opj_stream_default_skip (OPJ_SIZE_T p_nb_bytes, void * p_user_data);
-bool opj_stream_default_seek (OPJ_SIZE_T p_nb_bytes, void * p_user_data);
+OPJ_BOOL opj_stream_default_seek (OPJ_SIZE_T p_nb_bytes, void * p_user_data);
 
 /* ----------------------------------------------------------------------- */
 /*@}*/
diff --git a/Utilities/otbopenjpeg/libopenjpeg/dwt.c b/Utilities/otbopenjpeg/libopenjpeg/dwt.c
index a75aeb53ab..1021c195ae 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/dwt.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/dwt.c
@@ -124,11 +124,11 @@ static void dwt_encode_stepsize(OPJ_INT32 stepsize, OPJ_INT32 numbps, opj_stepsi
 /**
 Inverse wavelet transform in 2-D.
 */
-static bool dwt_decode_tile(opj_tcd_tilecomp_t* tilec, OPJ_UINT32 i, DWT1DFN fn);
+static OPJ_BOOL dwt_decode_tile(opj_tcd_tilecomp_t* tilec, OPJ_UINT32 i, DWT1DFN fn);
 
 static OPJ_UINT32 dwt_max_resolution(opj_tcd_resolution_t* restrict r, OPJ_UINT32 i);
 
-static INLINE bool dwt_encode_procedure(opj_tcd_tilecomp_t * tilec,void (*p_function)(OPJ_INT32 *, OPJ_INT32,OPJ_INT32,OPJ_INT32) );
+static INLINE OPJ_BOOL dwt_encode_procedure(opj_tcd_tilecomp_t * tilec,void (*p_function)(OPJ_INT32 *, OPJ_INT32,OPJ_INT32,OPJ_INT32) );
 /*@}*/
 
 /*@}*/
@@ -372,7 +372,7 @@ static void dwt_encode_stepsize(OPJ_INT32 stepsize, OPJ_INT32 numbps, opj_stepsi
 /* <summary>                            */
 /* Forward 5-3 wavelet transform in 2-D. */
 /* </summary>                           */
-INLINE bool dwt_encode_procedure(opj_tcd_tilecomp_t * tilec,void (*p_function)(OPJ_INT32 *, OPJ_INT32,OPJ_INT32,OPJ_INT32) )
+INLINE OPJ_BOOL dwt_encode_procedure(opj_tcd_tilecomp_t * tilec,void (*p_function)(OPJ_INT32 *, OPJ_INT32,OPJ_INT32,OPJ_INT32) )
 {
 	OPJ_INT32 i, j, k;
 	OPJ_INT32 *a = 00;
@@ -454,7 +454,7 @@ INLINE bool dwt_encode_procedure(opj_tcd_tilecomp_t * tilec,void (*p_function)(O
 }
 /* Forward 5-3 wavelet transform in 2-D. */
 /* </summary>                           */
-bool dwt_encode(opj_tcd_tilecomp_t * tilec)
+OPJ_BOOL dwt_encode(opj_tcd_tilecomp_t * tilec)
 {
 	return dwt_encode_procedure(tilec,dwt_encode_1);
 }
@@ -462,7 +462,7 @@ bool dwt_encode(opj_tcd_tilecomp_t * tilec)
 /* <summary>                            */
 /* Inverse 5-3 wavelet transform in 2-D. */
 /* </summary>                           */
-bool dwt_decode(opj_tcd_tilecomp_t* tilec, OPJ_UINT32 numres) {
+OPJ_BOOL dwt_decode(opj_tcd_tilecomp_t* tilec, OPJ_UINT32 numres) {
 	return dwt_decode_tile(tilec, numres, &dwt_decode_1);
 }
 
@@ -488,7 +488,7 @@ OPJ_FLOAT64 dwt_getnorm(OPJ_UINT32 level, OPJ_UINT32 orient) {
 /* <summary>                             */
 /* Forward 9-7 wavelet transform in 2-D. */
 /* </summary>                            */
-bool dwt_encode_real(opj_tcd_tilecomp_t * tilec)
+OPJ_BOOL dwt_encode_real(opj_tcd_tilecomp_t * tilec)
 {
 	return dwt_encode_procedure(tilec,dwt_encode_1_real);
 }
@@ -552,7 +552,7 @@ static OPJ_UINT32 dwt_max_resolution(opj_tcd_resolution_t* restrict r, OPJ_UINT3
 /* <summary>                            */
 /* Inverse wavelet transform in 2-D.     */
 /* </summary>                           */
-static bool dwt_decode_tile(opj_tcd_tilecomp_t* tilec, OPJ_UINT32 numres, DWT1DFN dwt_1D) {
+static OPJ_BOOL dwt_decode_tile(opj_tcd_tilecomp_t* tilec, OPJ_UINT32 numres, DWT1DFN dwt_1D) {
 	dwt_t h;
 	dwt_t v;
 
@@ -786,7 +786,7 @@ static void v4dwt_decode(v4dwt_t* restrict dwt){
 /* <summary>                             */
 /* Inverse 9-7 wavelet transform in 2-D. */
 /* </summary>                            */
-bool dwt_decode_real(opj_tcd_tilecomp_t* restrict tilec, OPJ_UINT32 numres){
+OPJ_BOOL dwt_decode_real(opj_tcd_tilecomp_t* restrict tilec, OPJ_UINT32 numres){
 	v4dwt_t h;
 	v4dwt_t v;
 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/dwt.h b/Utilities/otbopenjpeg/libopenjpeg/dwt.h
index 2729c5d022..1505f379ba 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/dwt.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/dwt.h
@@ -57,14 +57,14 @@ Forward 5-3 wavelet tranform in 2-D.
 Apply a reversible DWT transform to a component of an image.
 @param tilec Tile component information (current tile)
 */
-bool dwt_encode(struct opj_tcd_tilecomp * tilec);
+OPJ_BOOL dwt_encode(struct opj_tcd_tilecomp * tilec);
 /**
 Inverse 5-3 wavelet tranform in 2-D.
 Apply a reversible inverse DWT transform to a component of an image.
 @param tilec Tile component information (current tile)
 @param numres Number of resolution levels to decode
 */
-bool dwt_decode(struct opj_tcd_tilecomp* tilec, OPJ_UINT32 numres);
+OPJ_BOOL dwt_decode(struct opj_tcd_tilecomp* tilec, OPJ_UINT32 numres);
 /**
 Get the gain of a subband for the reversible 5-3 DWT.
 @param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
@@ -83,14 +83,14 @@ Forward 9-7 wavelet transform in 2-D.
 Apply an irreversible DWT transform to a component of an image.
 @param tilec Tile component information (current tile)
 */
-bool dwt_encode_real(struct opj_tcd_tilecomp * tilec);
+OPJ_BOOL dwt_encode_real(struct opj_tcd_tilecomp * tilec);
 /**
 Inverse 9-7 wavelet transform in 2-D. 
 Apply an irreversible inverse DWT transform to a component of an image.
 @param tilec Tile component information (current tile)
 @param numres Number of resolution levels to decode
 */
-bool dwt_decode_real(struct opj_tcd_tilecomp* tilec, OPJ_UINT32 numres);
+OPJ_BOOL dwt_decode_real(struct opj_tcd_tilecomp* tilec, OPJ_UINT32 numres);
 /**
 Get the gain of a subband for the irreversible 9-7 DWT.
 @param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
diff --git a/Utilities/otbopenjpeg/libopenjpeg/event.c b/Utilities/otbopenjpeg/libopenjpeg/event.c
index 71d52861c2..51554a6ec6 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/event.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/event.c
@@ -43,7 +43,7 @@ i2a(OPJ_UINT32 i, OPJ_CHAR *a, OPJ_UINT32 r) {
 #endif
 /* ----------------------------------------------------------------------- */
 
-bool opj_event_msg(opj_event_mgr_t * p_event_mgr, OPJ_INT32 event_type, const OPJ_CHAR *fmt, ...) {
+OPJ_BOOL opj_event_msg(opj_event_mgr_t * p_event_mgr, OPJ_INT32 event_type, const OPJ_CHAR *fmt, ...) {
 #define MSG_SIZE 512 /* 512 bytes should be more than enough for a short message */
 	opj_msg_callback msg_handler = 00;
 	void * l_data = 00;
diff --git a/Utilities/otbopenjpeg/libopenjpeg/event.h b/Utilities/otbopenjpeg/libopenjpeg/event.h
index 7d5bb6aff6..374a36cc59 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/event.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/event.h
@@ -77,7 +77,7 @@ typedef struct opj_event_mgr
  * @param fmt Format-control string (plus optionnal arguments)
  * @return Returns true if successful, returns false otherwise
 */
-bool opj_event_msg(struct opj_event_mgr * p_event_mgr, OPJ_INT32 event_type, const OPJ_CHAR *fmt, ...);
+OPJ_BOOL opj_event_msg(struct opj_event_mgr * p_event_mgr, OPJ_INT32 event_type, const OPJ_CHAR *fmt, ...);
 /* ----------------------------------------------------------------------- */
 /*@}*/
 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/function_list.c b/Utilities/otbopenjpeg/libopenjpeg/function_list.c
index 54fe818fc0..5ed618704b 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/function_list.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/function_list.c
@@ -89,7 +89,7 @@ void  opj_procedure_list_destroy(opj_procedure_list_t * p_list)
  * @param	p_validation_list the list of procedure to modify.
  * @param	p_procedure		the procedure to add.
  */
-bool  opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure)
+OPJ_BOOL  opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure)
 {
 	if
 		(p_validation_list->m_nb_max_procedures == p_validation_list->m_nb_procedures)
diff --git a/Utilities/otbopenjpeg/libopenjpeg/function_list.h b/Utilities/otbopenjpeg/libopenjpeg/function_list.h
index c3f82ca190..e26fea14c4 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/function_list.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/function_list.h
@@ -95,7 +95,7 @@ void  opj_procedure_list_destroy(opj_procedure_list_t * p_list);
  *
  * @return	true if the procedure could ne added.
  */
-bool  opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure);
+OPJ_BOOL  opj_procedure_list_add_procedure (opj_procedure_list_t * p_validation_list, opj_procedure p_procedure);
 
 /**
  * Gets the number of validation procedures.
diff --git a/Utilities/otbopenjpeg/libopenjpeg/invert.c b/Utilities/otbopenjpeg/libopenjpeg/invert.c
index 2c38f53845..8ee3cfa1e1 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/invert.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/invert.c
@@ -28,7 +28,7 @@
 #include "opj_malloc.h"
 
 
-bool opj_lupDecompose(OPJ_FLOAT32 * matrix,OPJ_UINT32 * permutations, OPJ_FLOAT32 * p_swap_area,OPJ_UINT32 n);
+OPJ_BOOL opj_lupDecompose(OPJ_FLOAT32 * matrix,OPJ_UINT32 * permutations, OPJ_FLOAT32 * p_swap_area,OPJ_UINT32 n);
 void opj_lupSolve(OPJ_FLOAT32 * pResult, OPJ_FLOAT32* pMatrix, OPJ_FLOAT32* pVector, OPJ_UINT32* pPermutations, OPJ_UINT32 n,OPJ_FLOAT32 * p_intermediate_data);
 void opj_lupInvert (OPJ_FLOAT32 * pSrcMatrix,
 				   OPJ_FLOAT32 * pDestMatrix,
@@ -41,7 +41,7 @@ void opj_lupInvert (OPJ_FLOAT32 * pSrcMatrix,
 /**
  * Matrix inversion.
  */
-bool opj_matrix_inversion_f(OPJ_FLOAT32 * pSrcMatrix,OPJ_FLOAT32 * pDestMatrix, OPJ_UINT32 n)
+OPJ_BOOL opj_matrix_inversion_f(OPJ_FLOAT32 * pSrcMatrix,OPJ_FLOAT32 * pDestMatrix, OPJ_UINT32 n)
 {
 	OPJ_BYTE * l_data = 00;
 	OPJ_UINT32 l_permutation_size = n * sizeof(OPJ_UINT32);
@@ -75,7 +75,7 @@ bool opj_matrix_inversion_f(OPJ_FLOAT32 * pSrcMatrix,OPJ_FLOAT32 * pDestMatrix,
 /** 
  * LUP decomposition
  */
-bool opj_lupDecompose(OPJ_FLOAT32 * matrix,OPJ_UINT32 * permutations, OPJ_FLOAT32 * p_swap_area,OPJ_UINT32 n) 
+OPJ_BOOL opj_lupDecompose(OPJ_FLOAT32 * matrix,OPJ_UINT32 * permutations, OPJ_FLOAT32 * p_swap_area,OPJ_UINT32 n) 
 {
 	OPJ_UINT32 * tmpPermutations = permutations;
 	OPJ_UINT32 * dstPermutations;
diff --git a/Utilities/otbopenjpeg/libopenjpeg/invert.h b/Utilities/otbopenjpeg/libopenjpeg/invert.h
index cbb717fdae..d8361907fc 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/invert.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/invert.h
@@ -35,6 +35,6 @@
  * @param pDestMatrix	data to store the inverted matrix. 
  * @return 1 if the inversion is successful, 0 if the matrix is singular.
  */
-bool opj_matrix_inversion_f(OPJ_FLOAT32 * pSrcMatrix,OPJ_FLOAT32 * pDestMatrix, OPJ_UINT32 n);
+OPJ_BOOL opj_matrix_inversion_f(OPJ_FLOAT32 * pSrcMatrix,OPJ_FLOAT32 * pDestMatrix, OPJ_UINT32 n);
 #endif
 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/j2k.c b/Utilities/otbopenjpeg/libopenjpeg/j2k.c
index 3935d10e56..c9ba119557 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/j2k.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/j2k.c
@@ -69,7 +69,7 @@ typedef struct opj_dec_memory_marker_handler
 	/** value of the state when the marker can appear */
 	OPJ_UINT32 states;
 	/** action linked to the marker */
-	bool (*handler) (
+	OPJ_BOOL (*handler) (
 					opj_j2k_t *p_j2k,
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -91,7 +91,7 @@ opj_dec_memory_marker_handler_t;
  * @param	p_manager	the user event manager.
  * 
 */
-static bool j2k_write_SPCod_SPCoc(
+static OPJ_BOOL j2k_write_SPCod_SPCoc(
 						    opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_tile_no,
 							OPJ_UINT32 p_comp_no,
@@ -107,7 +107,7 @@ static bool j2k_write_SPCod_SPCoc(
  * @param	p_header_size	the size of the data contained in the COM marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_SPCod_SPCoc(
+static OPJ_BOOL j2k_read_SPCod_SPCoc(
 							opj_j2k_t *p_j2k,
 							OPJ_UINT32 compno,
 							OPJ_BYTE * p_header_data,
@@ -141,7 +141,7 @@ static OPJ_UINT32 j2k_get_SPCod_SPCoc_size (
  * @param	p_manager		the user event manager.
  * 
 */
-static bool j2k_write_SQcd_SQcc(
+static OPJ_BOOL j2k_write_SQcd_SQcc(
 							opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_tile_no,
 							OPJ_UINT32 p_comp_no,
@@ -161,7 +161,7 @@ static bool j2k_write_SQcd_SQcc(
  * @param	p_manager		the user event manager.
  * 
 */
-static bool j2k_read_SQcd_SQcc(
+static OPJ_BOOL j2k_read_SQcd_SQcc(
 							opj_j2k_t *p_j2k,	
 							OPJ_UINT32 compno,
 							OPJ_BYTE * p_header_data,
@@ -208,7 +208,7 @@ static void j2k_copy_tile_component_parameters(
  * @param	p_manager	the user event manager.
 */
 
-static bool j2k_write_soc(
+static OPJ_BOOL j2k_write_soc(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -220,7 +220,7 @@ static bool j2k_write_soc(
  * @param	p_header_size	the size of the data contained in the SOC marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_soc(
+static OPJ_BOOL j2k_read_soc(
 					opj_j2k_t *p_j2k,	
 					struct opj_stream_private *p_stream, 
 					struct opj_event_mgr * p_manager
@@ -232,7 +232,7 @@ static bool j2k_read_soc(
  * @param	p_j2k			J2K codec.
  * @param	p_manager	the user event manager.
 */
-static bool j2k_write_siz(
+static OPJ_BOOL j2k_write_siz(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -244,7 +244,7 @@ static bool j2k_write_siz(
  * @param	p_j2k			J2K codec.
  * @param	p_manager	the user event manager.
 */
-static bool j2k_write_mct_data_group(
+static OPJ_BOOL j2k_write_mct_data_group(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -257,7 +257,7 @@ static bool j2k_write_mct_data_group(
  * @param	p_header_size	the size of the data contained in the SIZ marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_siz (
+static OPJ_BOOL j2k_read_siz (
 						  opj_j2k_t *p_j2k,	
 						  OPJ_BYTE * p_header_data, 
 						  OPJ_UINT32 p_header_size,
@@ -270,7 +270,7 @@ static bool j2k_read_siz (
  * @param	p_j2k			J2K codec.
  * @param	p_manager	the user event manager.
 */
-static bool j2k_write_com(
+static OPJ_BOOL j2k_write_com(
 					opj_j2k_t *p_j2k,
 					struct opj_stream_private *p_stream,
 					struct opj_event_mgr * p_manager
@@ -282,7 +282,7 @@ static bool j2k_write_com(
  * @param	p_header_size	the size of the data contained in the COM marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_com (
+static OPJ_BOOL j2k_read_com (
 					opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -298,7 +298,7 @@ static bool j2k_read_com (
  * @param	p_j2k			J2K codec.
  * @param	p_manager	the user event manager.
 */
-static bool j2k_write_cod(
+static OPJ_BOOL j2k_write_cod(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -310,7 +310,7 @@ static bool j2k_write_cod(
  * @param	p_header_size	the size of the data contained in the COD marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_cod (
+static OPJ_BOOL j2k_read_cod (
 					opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -325,7 +325,7 @@ static bool j2k_read_cod (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_coc(
+static OPJ_BOOL j2k_write_coc(
 							opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_comp_number,
 							struct opj_stream_private *p_stream,
@@ -361,7 +361,7 @@ static OPJ_UINT32 j2k_get_max_coc_size(opj_j2k_t *p_j2k);
  * @param	p_header_size	the size of the data contained in the COC marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_coc (
+static OPJ_BOOL j2k_read_coc (
 					opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -376,7 +376,7 @@ static bool j2k_read_coc (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_qcd(
+static OPJ_BOOL j2k_write_qcd(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -390,7 +390,7 @@ static bool j2k_write_qcd(
  * @param	p_header_size	the size of the data contained in the QCD marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_qcd (
+static OPJ_BOOL j2k_read_qcd (
 					opj_j2k_t *p_j2k,
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -404,7 +404,7 @@ static bool j2k_read_qcd (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_qcc(
+static OPJ_BOOL j2k_write_qcc(
 							opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_comp_no,
 							struct opj_stream_private *p_stream,
@@ -437,7 +437,7 @@ static OPJ_UINT32 j2k_get_max_qcc_size (opj_j2k_t *p_j2k);
  * @param	p_header_size	the size of the data contained in the QCC marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_qcc(
+static OPJ_BOOL j2k_read_qcc(
 							opj_j2k_t *p_j2k,	
 							OPJ_BYTE * p_header_data, 
 							OPJ_UINT32 p_header_size,
@@ -449,7 +449,7 @@ static bool j2k_read_qcc(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_poc(
+static OPJ_BOOL j2k_write_poc(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -462,7 +462,7 @@ static bool j2k_write_poc(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_updated_tlm(
+static OPJ_BOOL j2k_write_updated_tlm(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -507,7 +507,7 @@ static OPJ_UINT32 j2k_get_specific_header_sizes(opj_j2k_t *p_j2k);
  * @param	p_header_size	the size of the data contained in the POC marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_poc (
+static OPJ_BOOL j2k_read_poc (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -521,7 +521,7 @@ static bool j2k_read_poc (
  * @param	p_header_size	the size of the data contained in the TLM marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_crg (
+static OPJ_BOOL j2k_read_crg (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -535,7 +535,7 @@ static bool j2k_read_crg (
  * @param	p_header_size	the size of the data contained in the TLM marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_tlm (
+static OPJ_BOOL j2k_read_tlm (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -549,7 +549,7 @@ static bool j2k_read_tlm (
  * @param	p_header_size	the size of the data contained in the TLM marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_plm (
+static OPJ_BOOL j2k_read_plm (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -563,7 +563,7 @@ static bool j2k_read_plm (
  * @param	p_header_size	the size of the data contained in the PLT marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_plt (
+static OPJ_BOOL j2k_read_plt (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -577,7 +577,7 @@ static bool j2k_read_plt (
  * @param	p_header_size	the size of the data contained in the POC marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_ppm (
+static OPJ_BOOL j2k_read_ppm (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -591,7 +591,7 @@ static bool j2k_read_ppm (
  * @param	p_header_size	the size of the data contained in the PPT marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_ppt (
+static OPJ_BOOL j2k_read_ppt (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -604,7 +604,7 @@ static bool j2k_read_ppt (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_tlm(
+static OPJ_BOOL j2k_write_tlm(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -616,7 +616,7 @@ static bool j2k_write_tlm(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_sot(
+static OPJ_BOOL j2k_write_sot(
 						opj_j2k_t *p_j2k,
 						OPJ_BYTE * p_data,
 						OPJ_UINT32 * p_data_written,
@@ -631,7 +631,7 @@ static bool j2k_write_sot(
  * @param	p_header_size	the size of the data contained in the PPT marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_sot (
+static OPJ_BOOL j2k_read_sot (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -644,7 +644,7 @@ static bool j2k_read_sot (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_sod(
+static OPJ_BOOL j2k_write_sod(
 						opj_j2k_t *p_j2k,
 						struct opj_tcd * p_tile_coder,
 						OPJ_BYTE * p_data,
@@ -661,7 +661,7 @@ static bool j2k_write_sod(
  * @param	p_header_size	the size of the data contained in the SOD marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_sod (
+static OPJ_BOOL j2k_read_sod (
 						opj_j2k_t *p_j2k,	
 						struct opj_stream_private *p_stream, 
 						struct opj_event_mgr * p_manager
@@ -675,7 +675,7 @@ static bool j2k_read_sod (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_rgn(
+static OPJ_BOOL j2k_write_rgn(
 						opj_j2k_t *p_j2k,
 						OPJ_UINT32 p_tile_no,
 						OPJ_UINT32 p_comp_no, 
@@ -690,7 +690,7 @@ static bool j2k_write_rgn(
  * @param	p_header_size	the size of the data contained in the POC marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_rgn (
+static OPJ_BOOL j2k_read_rgn (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -703,7 +703,7 @@ static bool j2k_read_rgn (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_eoc(
+static OPJ_BOOL j2k_write_eoc(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -726,7 +726,7 @@ static void j2k_copy_tile_quantization_parameters(
  * @param	p_header_size	the size of the data contained in the SOD marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_eoc (
+static OPJ_BOOL j2k_read_eoc (
 					    opj_j2k_t *p_j2k,	
 						struct opj_stream_private *p_stream, 
 						struct opj_event_mgr * p_manager
@@ -739,7 +739,7 @@ static bool j2k_read_eoc (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_init_info(
+static OPJ_BOOL j2k_init_info(
 					    opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -753,7 +753,7 @@ static bool j2k_init_info(
  *
  * @return	true			if the marker could be deduced.
 */
-static bool j2k_read_unk (
+static OPJ_BOOL j2k_read_unk (
 						opj_j2k_t *p_j2k,	
 						struct opj_stream_private *p_stream, 
 						struct opj_event_mgr * p_manager
@@ -765,7 +765,7 @@ static bool j2k_read_unk (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_end_encoding(
+static OPJ_BOOL j2k_end_encoding(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -778,7 +778,7 @@ static bool j2k_end_encoding(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_cbd(
+static OPJ_BOOL j2k_write_cbd(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -791,7 +791,7 @@ static bool j2k_write_cbd(
  * @param	p_header_size	the size of the data contained in the CBD marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_cbd (
+static OPJ_BOOL j2k_read_cbd (
 							opj_j2k_t *p_j2k,
 							OPJ_BYTE * p_header_data, 
 							OPJ_UINT32 p_header_size,
@@ -804,7 +804,7 @@ static bool j2k_read_cbd (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_mct_record(
+static OPJ_BOOL j2k_write_mct_record(
 						opj_j2k_t *p_j2k,
 						opj_mct_data_t * p_mct_record,
 						struct opj_stream_private *p_stream,
@@ -819,7 +819,7 @@ static bool j2k_write_mct_record(
  * @param	p_header_size	the size of the data contained in the MCT marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_mct (
+static OPJ_BOOL j2k_read_mct (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -833,7 +833,7 @@ static bool j2k_read_mct (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_mcc_record(
+static OPJ_BOOL j2k_write_mcc_record(
 					    opj_j2k_t *p_j2k,
 						struct opj_simple_mcc_decorrelation_data * p_mcc_record,
 						struct opj_stream_private *p_stream,
@@ -848,7 +848,7 @@ static bool j2k_write_mcc_record(
  * @param	p_header_size	the size of the data contained in the MCC marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_mcc (
+static OPJ_BOOL j2k_read_mcc (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -862,7 +862,7 @@ static bool j2k_read_mcc (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_mco(
+static OPJ_BOOL j2k_write_mco(
 						opj_j2k_t *p_j2k,		
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -876,7 +876,7 @@ static bool j2k_write_mco(
  * @param	p_header_size	the size of the data contained in the MCO marker.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_read_mco (
+static OPJ_BOOL j2k_read_mco (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -889,7 +889,7 @@ static bool j2k_read_mco (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_image_components(
+static OPJ_BOOL j2k_write_image_components(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -902,7 +902,7 @@ static bool j2k_write_image_components(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_regions(
+static OPJ_BOOL j2k_write_regions(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -914,7 +914,7 @@ static bool j2k_write_regions(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_write_epc(
+static OPJ_BOOL j2k_write_epc(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -932,7 +932,7 @@ static bool j2k_write_epc(
  * 
  * @return	true if the pocs are valid.
  */
-static bool j2k_check_poc_val(
+static OPJ_BOOL j2k_check_poc_val(
 							  const opj_poc_t *p_pocs, 
 							  OPJ_UINT32 p_nb_pocs, 
 							  OPJ_UINT32 p_nb_resolutions, 
@@ -965,14 +965,14 @@ static OPJ_UINT32 j2k_get_num_tp(
  *
  * @return true if the function was successful, false else.
  */
-static bool j2k_calculate_tp(
+static OPJ_BOOL j2k_calculate_tp(
 					  opj_j2k_t *p_j2k, 
 					  opj_cp_t *cp, 
 					  OPJ_UINT32 * p_nb_tiles, 
 					  opj_image_t *image, 
 					  opj_event_mgr_t * p_manager);
 
-static bool j2k_write_first_tile_part (
+static OPJ_BOOL j2k_write_first_tile_part (
 									opj_j2k_t *p_j2k,
 									OPJ_BYTE * p_data,
 									OPJ_UINT32 * p_data_written,
@@ -980,7 +980,7 @@ static bool j2k_write_first_tile_part (
 									opj_stream_private_t *p_stream,
 									struct opj_event_mgr * p_manager
 								);
-static bool j2k_write_all_tile_parts(
+static OPJ_BOOL j2k_write_all_tile_parts(
 									opj_j2k_t *p_j2k,
 									OPJ_BYTE * p_data,
 									OPJ_UINT32 * p_data_written,
@@ -1039,7 +1039,7 @@ static void j2k_setup_end_compress (opj_j2k_t *p_j2k);
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_create_tcd(
+static OPJ_BOOL j2k_create_tcd(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -1055,7 +1055,7 @@ static bool j2k_create_tcd(
  * 
  * @return	true				if all the procedures were successfully executed.
  */
-static bool j2k_exec (
+static OPJ_BOOL j2k_exec (
 					opj_j2k_t * p_j2k,
 					opj_procedure_list_t * p_procedure_list,
 					opj_stream_private_t *p_stream,
@@ -1068,7 +1068,7 @@ static bool j2k_exec (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_update_rates(
+static OPJ_BOOL j2k_update_rates(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -1083,7 +1083,7 @@ static bool j2k_update_rates(
  *
  * @return true if the parameters are correct.
  */
-bool j2k_encoding_validation (
+OPJ_BOOL j2k_encoding_validation (
 								opj_j2k_t * p_j2k,
 								opj_stream_private_t *p_stream,
 								opj_event_mgr_t * p_manager
@@ -1091,7 +1091,7 @@ bool j2k_encoding_validation (
 /**
  * The read header procedure.
  */
-bool j2k_read_header_procedure(
+OPJ_BOOL j2k_read_header_procedure(
 							    opj_j2k_t *p_j2k,
 								struct opj_stream_private *p_stream,
 								struct opj_event_mgr * p_manager);
@@ -1105,7 +1105,7 @@ bool j2k_read_header_procedure(
  *
  * @return true if the parameters are correct.
  */
-bool j2k_decoding_validation (
+OPJ_BOOL j2k_decoding_validation (
 								opj_j2k_t * p_j2k,
 								opj_stream_private_t *p_stream,
 								opj_event_mgr_t * p_manager
@@ -1113,7 +1113,7 @@ bool j2k_decoding_validation (
 /**
  * Reads the tiles.
  */
-bool j2k_decode_tiles (
+OPJ_BOOL j2k_decode_tiles (
 								opj_j2k_t *p_j2k,
 								struct opj_stream_private *p_stream,
 								struct opj_event_mgr * p_manager);
@@ -1127,7 +1127,7 @@ bool j2k_decode_tiles (
  *
  * @return true if the parameters are correct.
  */
-bool j2k_mct_validation (
+OPJ_BOOL j2k_mct_validation (
 								opj_j2k_t * p_j2k,
 								opj_stream_private_t *p_stream,
 								opj_event_mgr_t * p_manager
@@ -1135,7 +1135,7 @@ bool j2k_mct_validation (
 /**
  * Builds the tcd decoder to use to decode tile.
  */
-bool j2k_build_decoder (
+OPJ_BOOL j2k_build_decoder (
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
 						opj_event_mgr_t * p_manager
@@ -1143,7 +1143,7 @@ bool j2k_build_decoder (
 /**
  * Builds the tcd encoder to use to encode tile.
  */
-bool j2k_build_encoder (
+OPJ_BOOL j2k_build_encoder (
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
 						opj_event_mgr_t * p_manager
@@ -1152,7 +1152,7 @@ bool j2k_build_encoder (
  * Copies the decoding tile parameters onto all the tile parameters.
  * Creates also the tile decoder.
  */
-bool j2k_copy_default_tcp_and_create_tcd(
+OPJ_BOOL j2k_copy_default_tcp_and_create_tcd(
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
 						opj_event_mgr_t * p_manager
@@ -1160,7 +1160,7 @@ bool j2k_copy_default_tcp_and_create_tcd(
 /**
  * Destroys the memory associated with the decoding of headers.
  */
-bool j2k_destroy_header_memory (
+OPJ_BOOL j2k_destroy_header_memory (
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
 						opj_event_mgr_t * p_manager
@@ -1182,7 +1182,7 @@ void j2k_setup_header_reading (opj_j2k_t *p_j2k);
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-static bool j2k_post_write_tile (
+static OPJ_BOOL j2k_post_write_tile (
 					 opj_j2k_t * p_j2k,
 					 OPJ_BYTE * p_data,
 					 OPJ_UINT32 p_data_size,
@@ -1190,15 +1190,15 @@ static bool j2k_post_write_tile (
 					 opj_event_mgr_t * p_manager
 					);
 
-static bool j2k_pre_write_tile (
+static OPJ_BOOL j2k_pre_write_tile (
 					 opj_j2k_t * p_j2k,
 					 OPJ_UINT32 p_tile_index,
 					 opj_stream_private_t *p_stream,
 					 opj_event_mgr_t * p_manager
 					);
-static bool j2k_update_image_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data);
+static OPJ_BOOL j2k_update_image_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data);
 
-static bool j2k_add_mct(opj_tcp_t * p_tcp,opj_image_t * p_image, OPJ_UINT32 p_index);
+static OPJ_BOOL j2k_add_mct(opj_tcp_t * p_tcp,opj_image_t * p_image, OPJ_UINT32 p_index);
 /**
  * Gets the offset of the header.
  * 
@@ -1206,7 +1206,7 @@ static bool j2k_add_mct(opj_tcp_t * p_tcp,opj_image_t * p_image, OPJ_UINT32 p_in
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-static bool j2k_get_end_header(
+static OPJ_BOOL j2k_get_end_header(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -1583,7 +1583,7 @@ const OPJ_CHAR * j2k_convert_progression_order(OPJ_PROG_ORDER p_prg_order)
  * 
  * @return	true if the pocs are valid.
  */
-bool j2k_check_poc_val(const opj_poc_t *p_pocs, OPJ_UINT32 p_nb_pocs, OPJ_UINT32 p_nb_resolutions, OPJ_UINT32 p_num_comps, OPJ_UINT32 p_num_layers, opj_event_mgr_t * p_manager)
+OPJ_BOOL j2k_check_poc_val(const opj_poc_t *p_pocs, OPJ_UINT32 p_nb_pocs, OPJ_UINT32 p_nb_resolutions, OPJ_UINT32 p_num_comps, OPJ_UINT32 p_num_layers, opj_event_mgr_t * p_manager)
 {
 	OPJ_UINT32* packet_array;
 	OPJ_UINT32 index , resno, compno, layno;
@@ -1591,7 +1591,7 @@ bool j2k_check_poc_val(const opj_poc_t *p_pocs, OPJ_UINT32 p_nb_pocs, OPJ_UINT32
 	OPJ_UINT32 step_c = 1;
 	OPJ_UINT32 step_r = p_num_comps * step_c;
 	OPJ_UINT32 step_l = p_nb_resolutions * step_r;
-	bool loss = false;
+	OPJ_BOOL loss = false;
 	OPJ_UINT32 layno0 = 0;
 	
 	packet_array = (OPJ_UINT32*) opj_calloc(step_l * p_num_layers, sizeof(OPJ_UINT32));
@@ -1777,7 +1777,7 @@ OPJ_UINT32 j2k_get_num_tp(opj_cp_t *cp,OPJ_UINT32 pino,OPJ_UINT32 tileno)
  *
  * @return true if the function was successful, false else.
  */
-bool j2k_calculate_tp(
+OPJ_BOOL j2k_calculate_tp(
 					  opj_j2k_t *p_j2k, 
 					  opj_cp_t *cp, 
 					  OPJ_UINT32 * p_nb_tiles, 
@@ -1859,7 +1859,7 @@ bool j2k_calculate_tp(
  * @param	p_manager	the user event manager.
 */
 
-bool j2k_write_soc(
+OPJ_BOOL j2k_write_soc(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -1898,7 +1898,7 @@ bool j2k_write_soc(
  * @param	p_header_size	the size of the data contained in the SOC marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_soc(
+OPJ_BOOL j2k_read_soc(
 					opj_j2k_t *p_j2k,	
 					struct opj_stream_private *p_stream, 
 					struct opj_event_mgr * p_manager
@@ -1942,7 +1942,7 @@ bool j2k_read_soc(
  * @param	p_j2k			J2K codec.
  * @param	p_manager	the user event manager.
 */
-bool j2k_write_siz(
+OPJ_BOOL j2k_write_siz(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -2034,7 +2034,7 @@ bool j2k_write_siz(
  * @param	p_header_size	the size of the data contained in the SIZ marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_siz (
+OPJ_BOOL j2k_read_siz (
 				    opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -2372,7 +2372,7 @@ bool j2k_read_siz (
  * @param	p_j2k			J2K codec.
  * @param	p_manager	the user event manager.
 */
-bool j2k_write_com(
+OPJ_BOOL j2k_write_com(
 				    opj_j2k_t *p_j2k,
 					struct opj_stream_private *p_stream,
 					struct opj_event_mgr * p_manager
@@ -2429,7 +2429,7 @@ bool j2k_write_com(
  * @param	p_header_size	the size of the data contained in the COM marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_com (
+OPJ_BOOL j2k_read_com (
 					opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -2494,7 +2494,7 @@ OPJ_UINT32 j2k_get_SPCod_SPCoc_size (
  * @param	p_manager	the user event manager.
  * 
 */
-bool j2k_write_SPCod_SPCoc(
+OPJ_BOOL j2k_write_SPCod_SPCoc(
 						    opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_tile_no,
 							OPJ_UINT32 p_comp_no,
@@ -2570,7 +2570,7 @@ bool j2k_write_SPCod_SPCoc(
  * @param	p_header_size	the size of the data contained in the COM marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_SPCod_SPCoc(
+OPJ_BOOL j2k_read_SPCod_SPCoc(
 						    opj_j2k_t *p_j2k,	
 							OPJ_UINT32 compno,
 							OPJ_BYTE * p_header_data,
@@ -2732,7 +2732,7 @@ void j2k_copy_tile_component_parameters(
  * @param	p_j2k			J2K codec.
  * @param	p_manager	the user event manager.
 */
-bool j2k_write_cod(
+OPJ_BOOL j2k_write_cod(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -2818,7 +2818,7 @@ bool j2k_write_cod(
  * @param	p_header_size	the size of the data contained in the COD marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_cod (
+OPJ_BOOL j2k_read_cod (
 					opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -2916,7 +2916,7 @@ bool j2k_read_cod (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_coc(
+OPJ_BOOL j2k_write_coc(
 							opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_comp_no,
 							struct opj_stream_private *p_stream,
@@ -3100,7 +3100,7 @@ void j2k_write_coc_in_memory(
  * @param	p_header_size	the size of the data contained in the COC marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_coc (
+OPJ_BOOL j2k_read_coc (
 					opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -3214,7 +3214,7 @@ OPJ_UINT32 j2k_get_SQcd_SQcc_size (
  * @param	p_manager		the user event manager.
  * 
 */
-bool j2k_write_SQcd_SQcc(
+OPJ_BOOL j2k_write_SQcd_SQcc(
 							opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_tile_no,
 							OPJ_UINT32 p_comp_no,
@@ -3300,7 +3300,7 @@ bool j2k_write_SQcd_SQcc(
  * @param	p_header_size	the size of the data contained in the COM marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_SQcd_SQcc(
+OPJ_BOOL j2k_read_SQcd_SQcc(
 							opj_j2k_t *p_j2k,	
 							OPJ_UINT32 p_comp_no,
 							OPJ_BYTE* p_header_data,
@@ -3465,7 +3465,7 @@ void j2k_copy_tile_quantization_parameters(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_qcd(
+OPJ_BOOL j2k_write_qcd(
 							opj_j2k_t *p_j2k,
 							struct opj_stream_private *p_stream,
 							struct opj_event_mgr * p_manager
@@ -3538,7 +3538,7 @@ bool j2k_write_qcd(
  * @param	p_header_size	the size of the data contained in the QCD marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_qcd (
+OPJ_BOOL j2k_read_qcd (
 				    opj_j2k_t *p_j2k,	
 					OPJ_BYTE * p_header_data, 
 					OPJ_UINT32 p_header_size,
@@ -3575,7 +3575,7 @@ bool j2k_read_qcd (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_qcc(
+OPJ_BOOL j2k_write_qcc(
 							opj_j2k_t *p_j2k,
 							OPJ_UINT32 p_comp_no,
 							struct opj_stream_private *p_stream,
@@ -3685,7 +3685,7 @@ OPJ_UINT32 j2k_get_max_qcc_size (opj_j2k_t *p_j2k)
  * @param	p_header_size	the size of the data contained in the QCC marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_qcc(
+OPJ_BOOL j2k_read_qcc(
 							opj_j2k_t *p_j2k,	
 							OPJ_BYTE * p_header_data, 
 							OPJ_UINT32 p_header_size,
@@ -3773,7 +3773,7 @@ bool j2k_read_qcc(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_cbd(
+OPJ_BOOL j2k_write_cbd(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -3838,7 +3838,7 @@ bool j2k_write_cbd(
  * @param	p_header_size	the size of the data contained in the CBD marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_cbd (
+OPJ_BOOL j2k_read_cbd (
 							opj_j2k_t *p_j2k,	
 							OPJ_BYTE * p_header_data, 
 							OPJ_UINT32 p_header_size,
@@ -3891,7 +3891,7 @@ bool j2k_read_cbd (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_mcc_record(
+OPJ_BOOL j2k_write_mcc_record(
 						opj_j2k_t *p_j2k,
 						struct opj_simple_mcc_decorrelation_data * p_mcc_record,
 						struct opj_stream_private *p_stream,
@@ -4004,7 +4004,7 @@ bool j2k_write_mcc_record(
  * @param	p_header_size	the size of the data contained in the MCC marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_mcc (
+OPJ_BOOL j2k_read_mcc (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -4244,7 +4244,7 @@ bool j2k_read_mcc (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_mct_record(
+OPJ_BOOL j2k_write_mct_record(
 						opj_j2k_t *p_j2k,
 						opj_mct_data_t * p_mct_record,
 						struct opj_stream_private *p_stream,
@@ -4308,7 +4308,7 @@ bool j2k_write_mct_record(
  * @param	p_header_size	the size of the data contained in the MCT marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_mct (
+OPJ_BOOL j2k_read_mct (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -4415,7 +4415,7 @@ bool j2k_read_mct (
 	return true;
 }
 
-bool	 j2k_setup_mct_encoding (opj_tcp_t * p_tcp,opj_image_t * p_image)
+OPJ_BOOL	 j2k_setup_mct_encoding (opj_tcp_t * p_tcp,opj_image_t * p_image)
 {
 	OPJ_UINT32 i;
 	OPJ_UINT32 l_indix = 1;
@@ -4563,7 +4563,7 @@ bool	 j2k_setup_mct_encoding (opj_tcp_t * p_tcp,opj_image_t * p_image)
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_mco(
+OPJ_BOOL j2k_write_mco(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -4629,7 +4629,7 @@ bool j2k_write_mco(
  * @param	p_header_size	the size of the data contained in the MCO marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_mco (
+OPJ_BOOL j2k_read_mco (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -4701,7 +4701,7 @@ bool j2k_read_mco (
 	return true;
 }
 
-bool j2k_add_mct(opj_tcp_t * p_tcp,opj_image_t * p_image, OPJ_UINT32 p_index)
+OPJ_BOOL j2k_add_mct(opj_tcp_t * p_tcp,opj_image_t * p_image, OPJ_UINT32 p_index)
 {
 	OPJ_UINT32 i;
 	opj_simple_mcc_decorrelation_data_t * l_mcc_record;
@@ -4796,7 +4796,7 @@ bool j2k_add_mct(opj_tcp_t * p_tcp,opj_image_t * p_image, OPJ_UINT32 p_index)
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_mct_data_group(
+OPJ_BOOL j2k_write_mct_data_group(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -4856,7 +4856,7 @@ bool j2k_write_mct_data_group(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_poc(
+OPJ_BOOL j2k_write_poc(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -4922,7 +4922,7 @@ bool j2k_write_poc(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_epc(
+OPJ_BOOL j2k_write_epc(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -5074,7 +5074,7 @@ void j2k_write_poc_in_memory(
  * @param	p_header_size	the size of the data contained in the POC marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_poc (
+OPJ_BOOL j2k_read_poc (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5163,7 +5163,7 @@ bool j2k_read_poc (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_rgn(
+OPJ_BOOL j2k_write_rgn(
 						opj_j2k_t *p_j2k,	
 						OPJ_UINT32 p_tile_no,
 						OPJ_UINT32 p_comp_no, 
@@ -5231,7 +5231,7 @@ bool j2k_write_rgn(
  * @param	p_header_size	the size of the data contained in the POC marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_rgn (
+OPJ_BOOL j2k_read_rgn (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5306,7 +5306,7 @@ bool j2k_read_rgn (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_tlm(
+OPJ_BOOL j2k_write_tlm(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -5367,7 +5367,7 @@ bool j2k_write_tlm(
  * @param	p_header_size	the size of the data contained in the TLM marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_tlm (
+OPJ_BOOL j2k_read_tlm (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5429,7 +5429,7 @@ bool j2k_read_tlm (
  * @param	p_header_size	the size of the data contained in the TLM marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_crg (
+OPJ_BOOL j2k_read_crg (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5472,7 +5472,7 @@ bool j2k_read_crg (
  * @param	p_header_size	the size of the data contained in the TLM marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_plm (
+OPJ_BOOL j2k_read_plm (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5545,7 +5545,7 @@ bool j2k_read_plm (
  * @param	p_header_size	the size of the data contained in the PLT marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_plt (
+OPJ_BOOL j2k_read_plt (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5604,7 +5604,7 @@ bool j2k_read_plt (
  * @param	p_header_size	the size of the data contained in the POC marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_ppm (
+OPJ_BOOL j2k_read_ppm (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5720,7 +5720,7 @@ bool j2k_read_ppm (
  * @param	p_header_size	the size of the data contained in the PPT marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_ppt (
+OPJ_BOOL j2k_read_ppt (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -5794,7 +5794,7 @@ bool j2k_read_ppt (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_sot(
+OPJ_BOOL j2k_write_sot(
 						opj_j2k_t *p_j2k,
 						OPJ_BYTE * p_data,
 						OPJ_UINT32 * p_data_written,
@@ -5842,7 +5842,7 @@ bool j2k_write_sot(
  * @param	p_header_size	the size of the data contained in the PPT marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_sot (
+OPJ_BOOL j2k_read_sot (
 						opj_j2k_t *p_j2k,	
 						OPJ_BYTE * p_header_data, 
 						OPJ_UINT32 p_header_size,
@@ -6012,7 +6012,7 @@ bool j2k_read_sot (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_sod(
+OPJ_BOOL j2k_write_sod(
 						opj_j2k_t *p_j2k,
 						struct opj_tcd * p_tile_coder,
 						OPJ_BYTE * p_data,
@@ -6123,7 +6123,7 @@ void j2k_update_tlm (
  * @param	p_header_size	the size of the data contained in the SOD marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_sod (
+OPJ_BOOL j2k_read_sod (
 						opj_j2k_t *p_j2k,	
 						struct opj_stream_private *p_stream, 
 						struct opj_event_mgr * p_manager
@@ -6197,7 +6197,7 @@ bool j2k_read_sod (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_eoc(
+OPJ_BOOL j2k_write_eoc(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6238,7 +6238,7 @@ bool j2k_write_eoc(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_init_info(
+OPJ_BOOL j2k_init_info(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6288,7 +6288,7 @@ bool j2k_init_info(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_create_tcd(
+OPJ_BOOL j2k_create_tcd(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6333,7 +6333,7 @@ OPJ_FLOAT32 get_default_stride (opj_tcp_t * p_tcp)
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_update_rates(
+OPJ_BOOL j2k_update_rates(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6517,7 +6517,7 @@ bool j2k_update_rates(
  * @param	p_header_size	the size of the data contained in the SOD marker.
  * @param	p_manager		the user event manager.
 */
-bool j2k_read_eoc (
+OPJ_BOOL j2k_read_eoc (
 						opj_j2k_t *p_j2k,	
 						struct opj_stream_private *p_stream, 
 						struct opj_event_mgr * p_manager
@@ -6527,7 +6527,7 @@ bool j2k_read_eoc (
 	opj_tcd_t * l_tcd = 00;
 	OPJ_UINT32 l_nb_tiles;
 	opj_tcp_t * l_tcp = 00;
-	bool l_success;
+	OPJ_BOOL l_success;
 
 	// preconditions
 	assert(p_j2k != 00);
@@ -6583,7 +6583,7 @@ bool j2k_read_eoc (
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_image_components(
+OPJ_BOOL j2k_write_image_components(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6619,7 +6619,7 @@ bool j2k_write_image_components(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_regions(
+OPJ_BOOL j2k_write_regions(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6656,7 +6656,7 @@ bool j2k_write_regions(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_write_updated_tlm(
+OPJ_BOOL j2k_write_updated_tlm(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6699,7 +6699,7 @@ bool j2k_write_updated_tlm(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_end_encoding(
+OPJ_BOOL j2k_end_encoding(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6738,7 +6738,7 @@ bool j2k_end_encoding(
  * @param	p_j2k				J2K codec.
  * @param	p_manager		the user event manager.
 */
-bool j2k_get_end_header(
+OPJ_BOOL j2k_get_end_header(
 						opj_j2k_t *p_j2k,
 						struct opj_stream_private *p_stream,
 						struct opj_event_mgr * p_manager
@@ -6765,7 +6765,7 @@ bool j2k_get_end_header(
  *
  * @return	true			if the marker could be deduced.
 */
-bool j2k_read_unk (
+OPJ_BOOL j2k_read_unk (
 						opj_j2k_t *p_j2k,	
 						struct opj_stream_private *p_stream, 
 						struct opj_event_mgr * p_manager
@@ -7190,7 +7190,7 @@ void j2k_destroy (opj_j2k_t *p_j2k)
  *
  * @return true if the codec is valid.
  */
-bool j2k_start_compress(
+OPJ_BOOL j2k_start_compress(
 						opj_j2k_t *p_j2k, 
 						opj_stream_private_t *p_stream,
 						opj_image_t * p_image, 
@@ -7365,15 +7365,15 @@ void j2k_setup_decoding_validation (opj_j2k_t *p_j2k)
  * 
  * @return	true				if all the procedures were successfully executed.
  */
-bool j2k_exec (
+OPJ_BOOL j2k_exec (
 					opj_j2k_t * p_j2k,
 					opj_procedure_list_t * p_procedure_list,
 					opj_stream_private_t *p_stream,
 					opj_event_mgr_t * p_manager
 				  )
 {
-	bool (** l_procedure) (opj_j2k_t * ,opj_stream_private_t *,opj_event_mgr_t *) = 00;
-	bool l_result = true;
+	OPJ_BOOL (** l_procedure) (opj_j2k_t * ,opj_stream_private_t *,opj_event_mgr_t *) = 00;
+	OPJ_BOOL l_result = true;
 	OPJ_UINT32 l_nb_proc, i;
 
 	// preconditions
@@ -7383,7 +7383,7 @@ bool j2k_exec (
 	assert(p_manager != 00);
 
 	l_nb_proc = opj_procedure_list_get_nb_procedures(p_procedure_list);
-	l_procedure = (bool (**) (opj_j2k_t * ,opj_stream_private_t *,opj_event_mgr_t *)) opj_procedure_list_get_first_procedure(p_procedure_list);
+	l_procedure = (OPJ_BOOL (**) (opj_j2k_t * ,opj_stream_private_t *,opj_event_mgr_t *)) opj_procedure_list_get_first_procedure(p_procedure_list);
 	for
 		(i=0;i<l_nb_proc;++i)
 	{
@@ -7404,13 +7404,13 @@ bool j2k_exec (
  *
  * @return true if the parameters are correct.
  */
-bool j2k_encoding_validation (
+OPJ_BOOL j2k_encoding_validation (
 								opj_j2k_t * p_j2k,
 								opj_stream_private_t *p_stream,
 								opj_event_mgr_t * p_manager
 							)
 {
-	bool l_is_valid = true;
+	OPJ_BOOL l_is_valid = true;
 	
 	// preconditions
 	assert(p_j2k != 00);
@@ -7453,13 +7453,13 @@ bool j2k_encoding_validation (
  *
  * @return true if the parameters are correct.
  */
-bool j2k_decoding_validation (
+OPJ_BOOL j2k_decoding_validation (
 								opj_j2k_t *p_j2k,
 								opj_stream_private_t *p_stream,
 								opj_event_mgr_t * p_manager
 							  )
 {
-	bool l_is_valid = true;
+	OPJ_BOOL l_is_valid = true;
 	
 	// preconditions
 	assert(p_j2k != 00);
@@ -7490,13 +7490,13 @@ bool j2k_decoding_validation (
  *
  * @return true if the parameters are correct.
  */
-bool j2k_mct_validation (
+OPJ_BOOL j2k_mct_validation (
 								opj_j2k_t * p_j2k,
 								opj_stream_private_t *p_stream,
 								opj_event_mgr_t * p_manager
 							)
 {
-	bool l_is_valid = true;
+	OPJ_BOOL l_is_valid = true;
 	OPJ_UINT32 i,j;
 	
 	// preconditions
@@ -7533,7 +7533,7 @@ bool j2k_mct_validation (
 /**
  * Builds the cp decoder parameters to use to decode tile.
  */
-bool j2k_build_decoder (
+OPJ_BOOL j2k_build_decoder (
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
 						opj_event_mgr_t * p_manager
@@ -7547,7 +7547,7 @@ bool j2k_build_decoder (
 /**
  * Builds the cp encoder parameters to use to encode tile.
  */
-bool j2k_build_encoder (
+OPJ_BOOL j2k_build_encoder (
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
 						opj_event_mgr_t * p_manager
@@ -7558,7 +7558,7 @@ bool j2k_build_encoder (
 	return true;
 }
 
-bool j2k_copy_default_tcp_and_create_tcd
+OPJ_BOOL j2k_copy_default_tcp_and_create_tcd
 						(
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
@@ -7686,7 +7686,7 @@ bool j2k_copy_default_tcp_and_create_tcd
 /**
  * Destroys the memory associated with the decoding of headers.
  */
-bool j2k_destroy_header_memory (
+OPJ_BOOL j2k_destroy_header_memory (
 						opj_j2k_t * p_j2k,
 						opj_stream_private_t *p_stream,
 						opj_event_mgr_t * p_manager
@@ -7747,7 +7747,7 @@ void j2k_setup_decoder(
 void j2k_setup_encoder(opj_j2k_t *p_j2k, opj_cparameters_t *parameters, opj_image_t *image, struct opj_event_mgr * p_manager) {
 	OPJ_UINT32 i, j, tileno, numpocs_tile;
 	opj_cp_t *cp = 00;
-	bool l_res;
+	OPJ_BOOL l_res;
 	if(!p_j2k || !parameters || ! image) {
 		return;
 	}
@@ -8052,7 +8052,7 @@ void j2k_setup_encoder(opj_j2k_t *p_j2k, opj_cparameters_t *parameters, opj_imag
 	}
 }
 
-bool j2k_write_first_tile_part (
+OPJ_BOOL j2k_write_first_tile_part (
 									opj_j2k_t *p_j2k,
 									OPJ_BYTE * p_data,
 									OPJ_UINT32 * p_data_written,
@@ -8139,7 +8139,7 @@ bool j2k_write_first_tile_part (
 	return true;
 }
 
-bool j2k_write_all_tile_parts(
+OPJ_BOOL j2k_write_all_tile_parts(
 									opj_j2k_t *p_j2k,
 									OPJ_BYTE * p_data,
 									OPJ_UINT32 * p_data_written,
@@ -8255,7 +8255,7 @@ bool j2k_write_all_tile_parts(
 }
 
 
-bool j2k_pre_write_tile (
+OPJ_BOOL j2k_pre_write_tile (
 					 opj_j2k_t * p_j2k,
 					 OPJ_UINT32 p_tile_index,
 					 opj_stream_private_t *p_stream,
@@ -8289,7 +8289,7 @@ bool j2k_pre_write_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool j2k_write_tile (
+OPJ_BOOL j2k_write_tile (
 					 opj_j2k_t * p_j2k,
 					 OPJ_UINT32 p_tile_index,
 					 OPJ_BYTE * p_data,
@@ -8312,7 +8312,7 @@ bool j2k_write_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool j2k_post_write_tile (
+OPJ_BOOL j2k_post_write_tile (
 					 opj_j2k_t * p_j2k,
 					 OPJ_BYTE * p_data,
 					 OPJ_UINT32 p_data_size,
@@ -8378,7 +8378,7 @@ bool j2k_post_write_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool j2k_read_tile_header (
+OPJ_BOOL j2k_read_tile_header (
 					 opj_j2k_t * p_j2k,
 					 OPJ_UINT32 * p_tile_index,
 					 OPJ_UINT32 * p_data_size,
@@ -8387,7 +8387,7 @@ bool j2k_read_tile_header (
 					 OPJ_INT32 * p_tile_x1,
 					 OPJ_INT32 * p_tile_y1,
 					 OPJ_UINT32 * p_nb_comps,
-					 bool * p_go_on,
+					 OPJ_BOOL * p_go_on,
 					 opj_stream_private_t *p_stream,
 					 opj_event_mgr_t * p_manager
 					)
@@ -8562,7 +8562,7 @@ bool j2k_read_tile_header (
 	return true;
 }
 
-bool j2k_decode_tile (
+OPJ_BOOL j2k_decode_tile (
 					opj_j2k_t * p_j2k,
 					OPJ_UINT32 p_tile_index,
 					OPJ_BYTE * p_data,
@@ -8640,7 +8640,7 @@ bool j2k_decode_tile (
  * Ends the compression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool j2k_end_compress(opj_j2k_t *p_j2k, struct opj_stream_private *p_stream, struct opj_event_mgr * p_manager)
+OPJ_BOOL j2k_end_compress(opj_j2k_t *p_j2k, struct opj_stream_private *p_stream, struct opj_event_mgr * p_manager)
 {
 	/* customization of the encoding */
 	j2k_setup_end_compress(p_j2k);
@@ -8662,7 +8662,7 @@ bool j2k_end_compress(opj_j2k_t *p_j2k, struct opj_stream_private *p_stream, str
  *
  * @return true if the box is valid.
  */
-bool j2k_read_header(
+OPJ_BOOL j2k_read_header(
 								opj_j2k_t *p_j2k,
 								struct opj_image ** p_image,
 								OPJ_INT32 * p_tile_x0,
@@ -8725,7 +8725,7 @@ bool j2k_read_header(
 /**
  * The read header procedure.
  */
-bool j2k_read_header_procedure(
+OPJ_BOOL j2k_read_header_procedure(
 								opj_j2k_t *p_j2k,
 								struct opj_stream_private *p_stream,
 								struct opj_event_mgr * p_manager)
@@ -8821,12 +8821,12 @@ bool j2k_read_header_procedure(
 /**
  * Reads the tiles.
  */
-bool j2k_decode_tiles (
+OPJ_BOOL j2k_decode_tiles (
 								opj_j2k_t *p_j2k,
 								struct opj_stream_private *p_stream,
 								struct opj_event_mgr * p_manager)
 {
-	bool l_go_on = true;
+	OPJ_BOOL l_go_on = true;
 	OPJ_UINT32 l_current_tile_no;
 	OPJ_UINT32 l_data_size,l_max_data_size;
 	OPJ_INT32 l_tile_x0,l_tile_y0,l_tile_x1,l_tile_y1;
@@ -8922,7 +8922,7 @@ opj_image_t * j2k_decode(
 /**
  * Encodes all the tiles in a row.
  */
-bool j2k_encode( 
+OPJ_BOOL j2k_encode( 
 					opj_j2k_t * p_j2k,
 					opj_stream_private_t *p_stream,
 					opj_event_mgr_t * p_manager
@@ -8985,7 +8985,7 @@ bool j2k_encode(
  * Ends the decompression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool j2k_end_decompress(
+OPJ_BOOL j2k_end_decompress(
 						opj_j2k_t *p_j2k, 
 						struct opj_stream_private *p_stream, 
 						struct opj_event_mgr * p_manager)
@@ -9125,7 +9125,7 @@ void j2k_get_tile_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data)
 	}
 }
 
-bool j2k_update_image_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data)
+OPJ_BOOL j2k_update_image_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data)
 {
 	OPJ_UINT32 i,j,k = 0;
 	OPJ_UINT32 l_width,l_height,l_offset_x,l_offset_y;
@@ -9282,7 +9282,7 @@ bool j2k_update_image_data (opj_tcd_t * p_tcd, OPJ_BYTE * p_data)
  *
  * @return	true			if the area could be set.
  */				
-bool j2k_set_decode_area(
+OPJ_BOOL j2k_set_decode_area(
 			opj_j2k_t *p_j2k,
 			OPJ_INT32 p_start_x,
 			OPJ_INT32 p_start_y,
diff --git a/Utilities/otbopenjpeg/libopenjpeg/j2k.h b/Utilities/otbopenjpeg/libopenjpeg/j2k.h
index ccb31e334b..b62ca5208e 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/j2k.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/j2k.h
@@ -40,6 +40,7 @@ The functions in J2K.C have for goal to read/write the several parts of the code
 */
 
 #include "openjpeg.h"
+#include "opj_includes.h"
 
 struct opj_dparameters;
 struct opj_stream_private;
@@ -372,15 +373,15 @@ typedef struct opj_cp
 /* UniPG>> */
 #ifdef USE_JPWL
 	/** enables writing of EPC in MH, thus activating JPWL */
-	bool epc_on;
+	OPJ_BOOL epc_on;
 	/** enables writing of EPB, in case of activated JPWL */
-	bool epb_on;
+	OPJ_BOOL epb_on;
 	/** enables writing of ESD, in case of activated JPWL */
-	bool esd_on;
+	OPJ_BOOL esd_on;
 	/** enables writing of informative techniques of ESD, in case of activated JPWL */
-	bool info_on;
+	OPJ_BOOL info_on;
 	/** enables writing of RED, in case of activated JPWL */
-	bool red_on;
+	OPJ_BOOL red_on;
 	/** error protection method for MH (0,1,16,32,37-128) */
 	int hprot_MH;
 	/** tile number of header protection specification (>=0) */
@@ -406,7 +407,7 @@ typedef struct opj_cp
 	/** sensitivity methods for TPHs (-1,0-7) */
 	int sens_TPH[JPWL_MAX_NO_TILESPECS];
 	/** enables JPWL correction at the decoder */
-	bool correct;
+	OPJ_BOOL correct;
 	/** expected number of components at the decoder */
 	int exp_comps;
 	/** maximum number of tiles at the decoder */
@@ -553,7 +554,7 @@ void j2k_destroy (opj_j2k_t *p_j2k);
  *
  * @return true if the codec is valid.
  */
-bool j2k_start_compress(
+OPJ_BOOL j2k_start_compress(
 						opj_j2k_t *p_j2k, 
 						struct opj_stream_private *cio, 
 						struct opj_image * p_image,
@@ -563,7 +564,7 @@ bool j2k_start_compress(
  * Ends the compression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool j2k_end_compress(opj_j2k_t *p_j2k, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
+OPJ_BOOL j2k_end_compress(opj_j2k_t *p_j2k, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
 
 /**
  * Sets up the decoder decoding parameters using user parameters.
@@ -586,7 +587,7 @@ void j2k_setup_decoder(
  *
  * @return true if the box is valid.
  */
-bool j2k_read_header(
+OPJ_BOOL j2k_read_header(
 								opj_j2k_t *p_j2k,
 								struct opj_image ** p_image,
 								OPJ_INT32 * p_tile_x0,
@@ -611,7 +612,7 @@ opj_image_t* j2k_decode(opj_j2k_t *j2k, struct opj_stream_private *cio, struct o
  * Ends the decompression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool j2k_end_decompress(opj_j2k_t *j2k, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
+OPJ_BOOL j2k_end_decompress(opj_j2k_t *j2k, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
 
 /**
 Decode an image form a JPT-stream (JPEG 2000, JPIP)
@@ -644,7 +645,7 @@ void j2k_setup_encoder(opj_j2k_t *j2k, opj_cparameters_t *parameters, opj_image_
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool j2k_write_tile (
+OPJ_BOOL j2k_write_tile (
 					 opj_j2k_t * p_j2k,
 					 OPJ_UINT32 p_tile_index,
 					 OPJ_BYTE * p_data,
@@ -666,12 +667,12 @@ const char * j2k_convert_progression_order(OPJ_PROG_ORDER prg_order);
 /**
  * Encodes an image into a JPEG-2000 codestream
  */
-bool j2k_encode( 
+OPJ_BOOL j2k_encode( 
 					opj_j2k_t * p_j2k,
 					struct opj_stream_private *cio,
 					struct opj_event_mgr * p_manager
 				);
-bool	 j2k_setup_mct_encoding (opj_tcp_t * p_tcp,opj_image_t * p_image);
+OPJ_BOOL	 j2k_setup_mct_encoding (opj_tcp_t * p_tcp,opj_image_t * p_image);
 
 /**
  * Decode tile data.
@@ -679,7 +680,7 @@ bool	 j2k_setup_mct_encoding (opj_tcp_t * p_tcp,opj_image_t * p_image);
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool j2k_decode_tile (
+OPJ_BOOL j2k_decode_tile (
 					opj_j2k_t * p_j2k,
 					OPJ_UINT32 p_tile_index,
 					OPJ_BYTE * p_data,
@@ -693,7 +694,7 @@ bool j2k_decode_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool j2k_read_tile_header (
+OPJ_BOOL j2k_read_tile_header (
 					 opj_j2k_t * p_j2k,
 					 OPJ_UINT32 * p_tile_index,
 					 OPJ_UINT32 * p_data_size,
@@ -702,7 +703,7 @@ bool j2k_read_tile_header (
 					 OPJ_INT32 * p_tile_x1,
 					 OPJ_INT32 * p_tile_y1,
 					 OPJ_UINT32 * p_nb_comps,
-					 bool * p_go_on,
+					 OPJ_BOOL * p_go_on,
 					 struct opj_stream_private *p_stream,
 					 struct opj_event_mgr * p_manager
 					);
@@ -718,7 +719,7 @@ bool j2k_read_tile_header (
  *
  * @return	true			if the area could be set.
  */				
-bool j2k_set_decode_area(
+OPJ_BOOL j2k_set_decode_area(
 			opj_j2k_t *p_j2k,
 			OPJ_INT32 p_start_x,
 			OPJ_INT32 p_start_y,
diff --git a/Utilities/otbopenjpeg/libopenjpeg/jp2.c b/Utilities/otbopenjpeg/libopenjpeg/jp2.c
index 0d288d5dee..1bff43dc43 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/jp2.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/jp2.c
@@ -58,7 +58,7 @@
  *
  * @return true if writting was successful.
 */
-bool jp2_write_jp2h(
+OPJ_BOOL jp2_write_jp2h(
 						opj_jp2_t *jp2,
 						struct opj_stream_private *cio,
 						struct opj_event_mgr * p_manager
@@ -73,7 +73,7 @@ bool jp2_write_jp2h(
  *
  * @return true if writting was successful.
 */
-bool jp2_skip_jp2c(
+OPJ_BOOL jp2_skip_jp2c(
 						opj_jp2_t *jp2,
 						struct opj_stream_private *cio,
 						struct opj_event_mgr * p_manager
@@ -89,7 +89,7 @@ bool jp2_skip_jp2c(
  *
  * @return true if the JP2 Header box was successfully reconized.
 */
-bool jp2_read_jp2h(
+OPJ_BOOL jp2_read_jp2h(
 						opj_jp2_t *jp2,	
 						unsigned char * p_header_data, 
 						unsigned int p_header_size,
@@ -105,7 +105,7 @@ bool jp2_read_jp2h(
  *
  * @return true if writting was successful.
 */
-static bool jp2_write_jp2c(
+static OPJ_BOOL jp2_write_jp2c(
 				   opj_jp2_t *jp2,
 				   struct opj_stream_private *cio,
 				   struct opj_event_mgr * p_manager
@@ -121,7 +121,7 @@ static bool jp2_write_jp2c(
  * 
  * @return	true if the box is reconized, false otherwise
 */
-static bool jp2_read_boxhdr(
+static OPJ_BOOL jp2_read_boxhdr(
 								opj_jp2_box_t *box,
 								OPJ_UINT32 * p_number_bytes_read, 
 								struct opj_stream_private *cio, 
@@ -138,7 +138,7 @@ static bool jp2_read_boxhdr(
  * 
  * @return	true if the box is reconized, false otherwise
 */
-static bool jp2_read_boxhdr_char(
+static OPJ_BOOL jp2_read_boxhdr_char(
 								opj_jp2_box_t *box,
 								OPJ_BYTE * p_data, 
 								OPJ_UINT32 * p_number_bytes_read, 
@@ -156,7 +156,7 @@ static bool jp2_read_boxhdr_char(
  * 
  * @return true if the file signature box is valid.
  */
-static bool jp2_read_jp(
+static OPJ_BOOL jp2_read_jp(
 					opj_jp2_t *jp2,	
 					unsigned char * p_header_data, 
 					unsigned int p_header_size,
@@ -172,7 +172,7 @@ static bool jp2_read_jp(
  * 
  * @return true if writting was successful.
  */
-static bool jp2_write_jp(
+static OPJ_BOOL jp2_write_jp(
 							opj_jp2_t *jp2,
 							struct opj_stream_private *cio,
 							struct opj_event_mgr * p_manager
@@ -187,7 +187,7 @@ static bool jp2_write_jp(
  * 
  * @return	true if writting was successful.
  */
-static bool jp2_write_ftyp(
+static OPJ_BOOL jp2_write_ftyp(
 							opj_jp2_t *jp2,
 							struct opj_stream_private *cio,
 							struct opj_event_mgr * p_manager
@@ -203,7 +203,7 @@ static bool jp2_write_ftyp(
  * 
  * @return true if the FTYP box is valid.
  */
-static bool jp2_read_ftyp(
+static OPJ_BOOL jp2_read_ftyp(
 							opj_jp2_t *jp2,	
 							unsigned char * p_header_data, 
 							unsigned int p_header_size,
@@ -220,7 +220,7 @@ static bool jp2_read_ftyp(
  * 
  * @return	true if the image header is valid, fale else.
  */
-static bool jp2_read_ihdr(
+static OPJ_BOOL jp2_read_ihdr(
 							opj_jp2_t *jp2, 
 							unsigned char * p_image_header_data, 
 							unsigned int p_image_header_size, 
@@ -250,7 +250,7 @@ static unsigned char * jp2_write_ihdr(
  * 
  * @return	true if the bpc header is valid, fale else.
  */
-static bool jp2_read_bpcc(
+static OPJ_BOOL jp2_read_bpcc(
 							opj_jp2_t *jp2,
 							unsigned char * p_bpc_header_data, 
 							unsigned int p_bpc_header_size, 
@@ -281,7 +281,7 @@ static unsigned char * jp2_write_bpcc(
  * 
  * @return	true if the bpc header is valid, fale else.
 */
-static bool jp2_read_colr(
+static OPJ_BOOL jp2_read_colr(
 							opj_jp2_t *jp2,
 							unsigned char * p_colr_header_data, 
 							unsigned int p_colr_header_size, 
@@ -311,7 +311,7 @@ static unsigned char *jp2_write_colr(
  *
  * @return true if the box is valid.
  */
-bool jp2_read_header_procedure(
+OPJ_BOOL jp2_read_header_procedure(
 								opj_jp2_t *jp2,
 								struct opj_stream_private *cio,
 								struct opj_event_mgr * p_manager
@@ -326,7 +326,7 @@ bool jp2_read_header_procedure(
  * 
  * @return	true				if all the procedures were successfully executed.
  */
-static bool jp2_exec (
+static OPJ_BOOL jp2_exec (
 					opj_jp2_t * jp2,
 					struct opj_procedure_list * p_procedure_list,
 					struct opj_stream_private *cio,
@@ -361,7 +361,7 @@ static void jp2_setup_header_writting (opj_jp2_t *jp2);
  *
  * @return true if the parameters are correct.
  */
-bool jp2_default_validation (
+OPJ_BOOL jp2_default_validation (
 									opj_jp2_t * jp2,
 									struct opj_stream_private *cio,
 									struct opj_event_mgr * p_manager
@@ -488,7 +488,7 @@ static const opj_jp2_header_handler_t * jp2_img_find_handler (
  *
  * @return true if the box is valid.
  */
-bool jp2_read_header_procedure(
+OPJ_BOOL jp2_read_header_procedure(
 					 opj_jp2_t *jp2,
 					 opj_stream_private_t *cio,
 					 opj_event_mgr_t * p_manager) 
@@ -589,7 +589,7 @@ bool jp2_read_header_procedure(
  * 
  * @return	true if the box is reconized, false otherwise
 */
-bool jp2_read_boxhdr(opj_jp2_box_t *box, OPJ_UINT32 * p_number_bytes_read,opj_stream_private_t *cio, opj_event_mgr_t * p_manager) 
+OPJ_BOOL jp2_read_boxhdr(opj_jp2_box_t *box, OPJ_UINT32 * p_number_bytes_read,opj_stream_private_t *cio, opj_event_mgr_t * p_manager) 
 {
 	/* read header from file */
 	unsigned char l_data_header [8];
@@ -649,7 +649,7 @@ bool jp2_read_boxhdr(opj_jp2_box_t *box, OPJ_UINT32 * p_number_bytes_read,opj_st
  * 
  * @return	true if the box is reconized, false otherwise
 */
-static bool jp2_read_boxhdr_char(
+static OPJ_BOOL jp2_read_boxhdr_char(
 								opj_jp2_box_t *box,
 								OPJ_BYTE * p_data,
 								OPJ_UINT32 * p_number_bytes_read, 
@@ -728,7 +728,7 @@ static bool jp2_read_boxhdr_char(
  * 
  * @return true if the file signature box is valid.
  */
-bool jp2_read_jp(
+OPJ_BOOL jp2_read_jp(
 					opj_jp2_t *jp2,	
 					unsigned char * p_header_data, 
 					unsigned int p_header_size,
@@ -780,7 +780,7 @@ bool jp2_read_jp(
  * 
  * @return true if the FTYP box is valid.
  */
-bool jp2_read_ftyp(
+OPJ_BOOL jp2_read_ftyp(
 							opj_jp2_t *jp2,	
 							unsigned char * p_header_data, 
 							unsigned int p_header_size,
@@ -861,7 +861,7 @@ bool jp2_read_ftyp(
  * 
  * @return true if writting was successful.
  */
-bool jp2_write_jp (
+OPJ_BOOL jp2_write_jp (
 					opj_jp2_t *jp2,
 					opj_stream_private_t *cio,
 					opj_event_mgr_t * p_manager
@@ -900,7 +900,7 @@ bool jp2_write_jp (
  * 
  * @return	true if writting was successful.
  */
-bool jp2_write_ftyp(
+OPJ_BOOL jp2_write_ftyp(
 						opj_jp2_t *jp2,
 						opj_stream_private_t *cio,
 						opj_event_mgr_t * p_manager
@@ -909,7 +909,7 @@ bool jp2_write_ftyp(
 	unsigned int i;
 	unsigned int l_ftyp_size = 16 + 4 * jp2->numcl;
 	unsigned char * l_ftyp_data, * l_current_data_ptr;
-	bool l_result;
+	OPJ_BOOL l_result;
 
 	// preconditions
 	assert(cio != 00);
@@ -965,7 +965,7 @@ bool jp2_write_ftyp(
  *
  * @return true if writting was successful.
 */
-bool jp2_write_jp2h(
+OPJ_BOOL jp2_write_jp2h(
 						opj_jp2_t *jp2,
 						opj_stream_private_t *cio,
 						opj_event_mgr_t * p_manager
@@ -977,7 +977,7 @@ bool jp2_write_jp2h(
 	int i, l_nb_pass;
 	/* size of data for super box*/
 	int l_jp2h_size = 8;
-	bool l_result = true;
+	OPJ_BOOL l_result = true;
 
 	/* to store the data of the super box */
 	unsigned char l_jp2h_data [8];
@@ -1094,7 +1094,7 @@ bool jp2_write_jp2h(
  *
  * @return true if the JP2 Header box was successfully reconized.
 */
-bool jp2_read_jp2h(
+OPJ_BOOL jp2_read_jp2h(
 						opj_jp2_t *jp2,	
 						unsigned char * p_header_data, 
 						unsigned int p_header_size,
@@ -1171,7 +1171,7 @@ bool jp2_read_jp2h(
  * 
  * @return	true if the image header is valid, fale else.
  */
-bool jp2_read_ihdr(
+OPJ_BOOL jp2_read_ihdr(
 							opj_jp2_t *jp2, 
 							unsigned char * p_image_header_data, 
 							unsigned int p_image_header_size, 
@@ -1327,7 +1327,7 @@ unsigned char * jp2_write_bpcc(
  * 
  * @return	true if the bpc header is valid, fale else.
  */
-bool jp2_read_bpcc(
+OPJ_BOOL jp2_read_bpcc(
 							opj_jp2_t *jp2,
 							unsigned char * p_bpc_header_data, 
 							unsigned int p_bpc_header_size, 
@@ -1438,7 +1438,7 @@ unsigned char *jp2_write_colr(
  * 
  * @return	true if the bpc header is valid, fale else.
 */
-bool jp2_read_colr(
+OPJ_BOOL jp2_read_colr(
 							opj_jp2_t * jp2,
 							unsigned char * p_colr_header_data, 
 							unsigned int p_colr_header_size, 
@@ -1494,7 +1494,7 @@ bool jp2_read_colr(
  *
  * @return true if writting was successful.
 */
-bool jp2_write_jp2c(
+OPJ_BOOL jp2_write_jp2c(
 				   opj_jp2_t *jp2,
 				   opj_stream_private_t *cio,
 				   opj_event_mgr_t * p_manager
@@ -1585,7 +1585,7 @@ void jp2_destroy(opj_jp2_t *jp2)
 /* JP2 encoder interface                                             */
 /* ----------------------------------------------------------------------- */
 
-opj_jp2_t* jp2_create(bool p_is_decoder) 
+opj_jp2_t* jp2_create(OPJ_BOOL p_is_decoder) 
 {
 	opj_jp2_t *jp2 = (opj_jp2_t*)opj_malloc(sizeof(opj_jp2_t));
 	if
@@ -1639,15 +1639,15 @@ opj_jp2_t* jp2_create(bool p_is_decoder)
  * 
  * @return	true				if all the procedures were successfully executed.
  */
-bool jp2_exec (
+OPJ_BOOL jp2_exec (
 					opj_jp2_t * jp2,
 					opj_procedure_list_t * p_procedure_list,
 					opj_stream_private_t *cio,
 					opj_event_mgr_t * p_manager
 				  )
 {
-	bool (** l_procedure) (opj_jp2_t * jp2,opj_stream_private_t *,opj_event_mgr_t *) = 00;
-	bool l_result = true;
+	OPJ_BOOL (** l_procedure) (opj_jp2_t * jp2,opj_stream_private_t *,opj_event_mgr_t *) = 00;
+	OPJ_BOOL l_result = true;
 	unsigned int l_nb_proc, i;
 
 	// preconditions
@@ -1657,7 +1657,7 @@ bool jp2_exec (
 	assert(p_manager != 00);
 
 	l_nb_proc = opj_procedure_list_get_nb_procedures(p_procedure_list);
-	l_procedure = (bool (**) (opj_jp2_t * jp2,opj_stream_private_t *,opj_event_mgr_t *)) opj_procedure_list_get_first_procedure(p_procedure_list);
+	l_procedure = (OPJ_BOOL (**) (opj_jp2_t * jp2,opj_stream_private_t *,opj_event_mgr_t *)) opj_procedure_list_get_first_procedure(p_procedure_list);
 	for
 		(i=0;i<l_nb_proc;++i)
 	{
@@ -1678,7 +1678,7 @@ bool jp2_exec (
  *
  * @return true if the codec is valid.
  */
-bool jp2_start_compress(opj_jp2_t *jp2,  struct opj_stream_private *cio,opj_image_t * p_image, struct opj_event_mgr * p_manager)
+OPJ_BOOL jp2_start_compress(opj_jp2_t *jp2,  struct opj_stream_private *cio,opj_image_t * p_image, struct opj_event_mgr * p_manager)
 {
 	// preconditions
 	assert(jp2 != 00);
@@ -1716,7 +1716,7 @@ bool jp2_start_compress(opj_jp2_t *jp2,  struct opj_stream_private *cio,opj_imag
  *
  * @return true if the box is valid.
  */
-bool jp2_read_header(
+OPJ_BOOL jp2_read_header(
 								opj_jp2_t *jp2,
 								opj_image_t ** p_image,
 								OPJ_INT32 * p_tile_x0,
@@ -1770,7 +1770,7 @@ bool jp2_read_header(
  * Ends the decompression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool jp2_end_decompress(opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t * p_manager)
+OPJ_BOOL jp2_end_decompress(opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t * p_manager)
 {
 	// preconditions
 	assert(jp2 != 00);
@@ -1794,7 +1794,7 @@ bool jp2_end_decompress(opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr
  * Ends the compression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool jp2_end_compress(opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t * p_manager)
+OPJ_BOOL jp2_end_compress(opj_jp2_t *jp2, opj_stream_private_t *cio, opj_event_mgr_t * p_manager)
 {
 	// preconditions
 	assert(jp2 != 00);
@@ -1821,7 +1821,7 @@ Encode an image into a JPEG-2000 file stream
 @param cstr_info Codestream information structure if required, NULL otherwise
 @return Returns true if successful, returns false otherwise
 */
-bool jp2_encode(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager)
+OPJ_BOOL jp2_encode(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager)
 {
 	return j2k_encode(jp2->j2k,cio,p_manager);
 }
@@ -1831,7 +1831,7 @@ bool jp2_encode(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool jp2_write_tile (
+OPJ_BOOL jp2_write_tile (
 					 opj_jp2_t *p_jp2,
 					 OPJ_UINT32 p_tile_index,
 					 OPJ_BYTE * p_data,
@@ -1849,7 +1849,7 @@ bool jp2_write_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool jp2_decode_tile (
+OPJ_BOOL jp2_decode_tile (
 					opj_jp2_t * p_jp2,
 					OPJ_UINT32 p_tile_index,
 					OPJ_BYTE * p_data,
@@ -1866,7 +1866,7 @@ bool jp2_decode_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool jp2_read_tile_header (
+OPJ_BOOL jp2_read_tile_header (
 					 opj_jp2_t * p_jp2,
 					 OPJ_UINT32 * p_tile_index,
 					 OPJ_UINT32 * p_data_size,
@@ -1875,7 +1875,7 @@ bool jp2_read_tile_header (
 					 OPJ_INT32 * p_tile_x1,
 					 OPJ_INT32 * p_tile_y1,
 					 OPJ_UINT32 * p_nb_comps,
-					 bool * p_go_on,
+					 OPJ_BOOL * p_go_on,
 					 opj_stream_private_t *p_stream,
 					 opj_event_mgr_t * p_manager
 					)
@@ -1941,13 +1941,13 @@ void jp2_setup_end_header_reading (opj_jp2_t *jp2)
  *
  * @return true if the parameters are correct.
  */
-bool jp2_default_validation (
+OPJ_BOOL jp2_default_validation (
 								opj_jp2_t * jp2,
 								opj_stream_private_t *cio,
 								opj_event_mgr_t * p_manager
 							)
 {
-	bool l_is_valid = true;
+	OPJ_BOOL l_is_valid = true;
 	unsigned int i;
 	
 	// preconditions
@@ -2046,7 +2046,7 @@ void jp2_setup_header_writting (opj_jp2_t *jp2)
  *
  * @return true if writting was successful.
 */
-bool jp2_skip_jp2c(
+OPJ_BOOL jp2_skip_jp2c(
 						opj_jp2_t *jp2,
 						struct opj_stream_private *cio,
 						struct opj_event_mgr * p_manager
@@ -2187,7 +2187,7 @@ void jp2_setup_decoder(opj_jp2_t *jp2, opj_dparameters_t *parameters)
  *
  * @return	true			if the area could be set.
  */				
-bool jp2_set_decode_area(
+OPJ_BOOL jp2_set_decode_area(
 			opj_jp2_t *p_jp2,
 			OPJ_INT32 p_start_x,
 			OPJ_INT32 p_start_y,
diff --git a/Utilities/otbopenjpeg/libopenjpeg/jp2.h b/Utilities/otbopenjpeg/libopenjpeg/jp2.h
index 67d6edccde..45c686ee0d 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/jp2.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/jp2.h
@@ -151,7 +151,7 @@ typedef struct opj_jp2_header_handler
 	/* marker value */
 	int id;
 	/* action linked to the marker */
-	bool (*handler) (opj_jp2_t *jp2,unsigned char * p_header_data, unsigned int p_header_size,struct opj_event_mgr * p_manager);
+	OPJ_BOOL (*handler) (opj_jp2_t *jp2,unsigned char * p_header_data, unsigned int p_header_size,struct opj_event_mgr * p_manager);
 } 
 opj_jp2_header_handler_t;
 
@@ -180,7 +180,7 @@ opj_jp2_img_header_writer_handler_t;
  * 
  * @return	an empty jpeg2000 file codec.
  */
-opj_jp2_t* jp2_create (bool p_is_decoder);
+opj_jp2_t* jp2_create (OPJ_BOOL p_is_decoder);
 
 /**
 Destroy a JP2 decompressor handle
@@ -221,13 +221,13 @@ void jp2_setup_encoder(opj_jp2_t *jp2, struct opj_cparameters *parameters, struc
  *
  * @return true if the codec is valid.
  */
-bool jp2_start_compress(opj_jp2_t *jp2,  struct opj_stream_private *cio,struct opj_image * p_image,struct opj_event_mgr * p_manager);
+OPJ_BOOL jp2_start_compress(opj_jp2_t *jp2,  struct opj_stream_private *cio,struct opj_image * p_image,struct opj_event_mgr * p_manager);
 
 /**
  * Ends the compression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool jp2_end_compress(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
+OPJ_BOOL jp2_end_compress(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
 
 /**
 Encode an image into a JPEG-2000 file stream
@@ -237,7 +237,7 @@ Encode an image into a JPEG-2000 file stream
 @param cstr_info Codestream information structure if required, NULL otherwise
 @return Returns true if successful, returns false otherwise
 */
-bool jp2_encode(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
+OPJ_BOOL jp2_encode(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
 
 /**
  * Reads a jpeg2000 file header structure.
@@ -248,7 +248,7 @@ bool jp2_encode(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event
  *
  * @return true if the box is valid.
  */
-bool jp2_read_header(
+OPJ_BOOL jp2_read_header(
 								opj_jp2_t *jp2,
 								struct opj_image ** p_image,
 								OPJ_INT32 * p_tile_x0,
@@ -264,7 +264,7 @@ bool jp2_read_header(
  * Ends the decompression procedures and possibiliy add data to be read after the 
  * codestream.
  */
-bool jp2_end_decompress(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
+OPJ_BOOL jp2_end_decompress(opj_jp2_t *jp2, struct opj_stream_private *cio, struct opj_event_mgr * p_manager);
 
 /**
  * Writes a tile.
@@ -272,7 +272,7 @@ bool jp2_end_decompress(opj_jp2_t *jp2, struct opj_stream_private *cio, struct o
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool jp2_write_tile (
+OPJ_BOOL jp2_write_tile (
 					 opj_jp2_t *p_jp2,
 					 OPJ_UINT32 p_tile_index,
 					 OPJ_BYTE * p_data,
@@ -286,7 +286,7 @@ bool jp2_write_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool jp2_decode_tile (
+OPJ_BOOL jp2_decode_tile (
 					opj_jp2_t * p_jp2,
 					OPJ_UINT32 p_tile_index,
 					OPJ_BYTE * p_data,
@@ -300,7 +300,7 @@ bool jp2_decode_tile (
  * @param	p_stream			the stream to write data to.
  * @param	p_manager	the user event manager.
  */
-bool jp2_read_tile_header (
+OPJ_BOOL jp2_read_tile_header (
 					 opj_jp2_t * p_j2k,
 					 OPJ_UINT32 * p_tile_index,
 					 OPJ_UINT32 * p_data_size,
@@ -309,7 +309,7 @@ bool jp2_read_tile_header (
 					 OPJ_INT32 * p_tile_x1,
 					 OPJ_INT32 * p_tile_y1,
 					 OPJ_UINT32 * p_nb_comps,
-					 bool * p_go_on,
+					 OPJ_BOOL * p_go_on,
 					 struct opj_stream_private *p_stream,
 					 struct opj_event_mgr * p_manager
 					);
@@ -324,7 +324,7 @@ bool jp2_read_tile_header (
  *
  * @return	true			if the area could be set.
  */				
-bool jp2_set_decode_area(
+OPJ_BOOL jp2_set_decode_area(
 			opj_jp2_t *p_jp2,
 			OPJ_INT32 p_start_x,
 			OPJ_INT32 p_start_y,
diff --git a/Utilities/otbopenjpeg/libopenjpeg/jpt.c b/Utilities/otbopenjpeg/libopenjpeg/jpt.c
index f09b72d835..63a808baf1 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/jpt.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/jpt.c
@@ -39,7 +39,7 @@
  * @param p_value the data to update
  * @return the nb of bytes read or -1 if an io error occurred.
  */
-bool jpt_read_VBAS_info(opj_stream_private_t * p_cio, OPJ_UINT32 * p_nb_bytes_read, OPJ_UINT32 * p_value, opj_event_mgr_t * p_manager) 
+OPJ_BOOL jpt_read_VBAS_info(opj_stream_private_t * p_cio, OPJ_UINT32 * p_nb_bytes_read, OPJ_UINT32 * p_value, opj_event_mgr_t * p_manager) 
 {
 	OPJ_BYTE l_elmt;
 	OPJ_UINT32 l_nb_bytes_read = 0;
@@ -110,7 +110,7 @@ void jpt_reinit_msg_header(opj_jpt_msg_header_t * header)
  * Read the message header for a JPP/JPT - stream
  *
  */
-bool jpt_read_msg_header(opj_stream_private_t *cio, opj_jpt_msg_header_t *header, OPJ_UINT32 * p_nb_bytes_read, opj_event_mgr_t * p_manager) 
+OPJ_BOOL jpt_read_msg_header(opj_stream_private_t *cio, opj_jpt_msg_header_t *header, OPJ_UINT32 * p_nb_bytes_read, opj_event_mgr_t * p_manager) 
 {
 	OPJ_BYTE elmt, Class = 0, CSn = 0;
 	OPJ_UINT32 l_nb_bytes_read = 0;
diff --git a/Utilities/otbopenjpeg/libopenjpeg/jpt.h b/Utilities/otbopenjpeg/libopenjpeg/jpt.h
index 5e36d43935..91a96a5dc5 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/jpt.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/jpt.h
@@ -74,7 +74,7 @@ void jpt_init_msg_header(opj_jpt_msg_header_t * header);
  * @param	header		JPT Message header structure
  * @param	p_manager	user event manager to display nice messages.
 */
-bool jpt_read_msg_header(
+OPJ_BOOL jpt_read_msg_header(
 		struct opj_stream_private * p_cio, 
 		opj_jpt_msg_header_t * p_header, 
 		OPJ_UINT32 * p_nb_bytes_read,
diff --git a/Utilities/otbopenjpeg/libopenjpeg/mct.c b/Utilities/otbopenjpeg/libopenjpeg/mct.c
index 84356f341f..8a8ff93961 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/mct.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/mct.c
@@ -164,7 +164,7 @@ OPJ_FLOAT64 mct_getnorm_real(OPJ_UINT32 compno) {
 	return mct_norms_real[compno];
 }
 
-bool mct_encode_custom(
+OPJ_BOOL mct_encode_custom(
 					   // MCT data
 					   OPJ_BYTE * pCodingdata, 
 					   // size of components
@@ -225,7 +225,7 @@ bool mct_encode_custom(
 	return true;
 }
 
-bool mct_decode_custom(
+OPJ_BOOL mct_decode_custom(
 					   // MCT data
 					   OPJ_BYTE * pDecodingData, 
 					   // size of components
diff --git a/Utilities/otbopenjpeg/libopenjpeg/mct.h b/Utilities/otbopenjpeg/libopenjpeg/mct.h
index 41e608dbfd..e8317a3df9 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/mct.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/mct.h
@@ -92,7 +92,7 @@ Get norm of the basis function used for the irreversible multi-component transfo
 */
 OPJ_FLOAT64 mct_getnorm_real(OPJ_UINT32 compno);
 
-bool mct_encode_custom(
+OPJ_BOOL mct_encode_custom(
 					   // MCT data
 					   OPJ_BYTE * p_coding_data, 
 					   // size of components
@@ -104,7 +104,7 @@ bool mct_encode_custom(
 					   // tells if the data is signed
 					   OPJ_UINT32 is_signed);
 
-bool mct_decode_custom(
+OPJ_BOOL mct_decode_custom(
 					   // MCT data
 					   OPJ_BYTE * pDecodingData, 
 					   // size of components
diff --git a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.c b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.c
index a635c78f8d..9be547dc5c 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.c
@@ -38,7 +38,7 @@
 
 typedef struct opj_decompression
 {
-	bool (* opj_read_header) (
+	OPJ_BOOL (* opj_read_header) (
 		void *p_codec,
 		opj_image_t **,
 		OPJ_INT32 * p_tile_x0,
@@ -50,7 +50,7 @@ typedef struct opj_decompression
 		struct opj_stream_private *cio,	
 		struct opj_event_mgr * p_manager);
 	opj_image_t* (* opj_decode) (void * p_codec, struct opj_stream_private *p_cio, struct opj_event_mgr * p_manager);
-	bool (*opj_read_tile_header)(
+	OPJ_BOOL (*opj_read_tile_header)(
 		void * p_codec,
 		OPJ_UINT32 * p_tile_index,
 		OPJ_UINT32* p_data_size,
@@ -59,24 +59,24 @@ typedef struct opj_decompression
 		OPJ_INT32 * p_tile_x1,
 		OPJ_INT32 * p_tile_y1,
 		OPJ_UINT32 * p_nb_comps,
-		bool * p_should_go_on,
+		OPJ_BOOL * p_should_go_on,
 		struct opj_stream_private *p_cio,
 		struct opj_event_mgr * p_manager);
-		bool (*opj_decode_tile_data)(void * p_codec,OPJ_UINT32 p_tile_index,OPJ_BYTE * p_data,OPJ_UINT32 p_data_size,struct opj_stream_private *p_cio,struct opj_event_mgr * p_manager);
-	bool (* opj_end_decompress) (void *p_codec,struct opj_stream_private *cio,struct opj_event_mgr * p_manager);
+		OPJ_BOOL (*opj_decode_tile_data)(void * p_codec,OPJ_UINT32 p_tile_index,OPJ_BYTE * p_data,OPJ_UINT32 p_data_size,struct opj_stream_private *p_cio,struct opj_event_mgr * p_manager);
+	OPJ_BOOL (* opj_end_decompress) (void *p_codec,struct opj_stream_private *cio,struct opj_event_mgr * p_manager);
 	void (* opj_destroy) (void * p_codec);
 	void (*opj_setup_decoder) (void * p_codec,opj_dparameters_t * p_param);
-	bool (*opj_set_decode_area) (void * p_codec,OPJ_INT32 p_start_x,OPJ_INT32 p_end_x,OPJ_INT32 p_start_y,OPJ_INT32 p_end_y,struct opj_event_mgr * p_manager);
+	OPJ_BOOL (*opj_set_decode_area) (void * p_codec,OPJ_INT32 p_start_x,OPJ_INT32 p_end_x,OPJ_INT32 p_start_y,OPJ_INT32 p_end_y,struct opj_event_mgr * p_manager);
 
 
 }opj_decompression_t;
 
 typedef struct opj_compression
 {
-	bool (* opj_start_compress) (void *p_codec,struct opj_stream_private *cio,struct opj_image * p_image,	struct opj_event_mgr * p_manager);
-	bool (* opj_encode) (void * p_codec, struct opj_stream_private *p_cio, struct opj_event_mgr * p_manager);
-	bool (* opj_write_tile) (void * p_codec,OPJ_UINT32 p_tile_index,OPJ_BYTE * p_data,OPJ_UINT32 p_data_size,struct opj_stream_private * p_cio,struct opj_event_mgr * p_manager);
-	bool (* opj_end_compress) (void * p_codec, struct opj_stream_private *p_cio, struct opj_event_mgr * p_manager);
+	OPJ_BOOL (* opj_start_compress) (void *p_codec,struct opj_stream_private *cio,struct opj_image * p_image,	struct opj_event_mgr * p_manager);
+	OPJ_BOOL (* opj_encode) (void * p_codec, struct opj_stream_private *p_cio, struct opj_event_mgr * p_manager);
+	OPJ_BOOL (* opj_write_tile) (void * p_codec,OPJ_UINT32 p_tile_index,OPJ_BYTE * p_data,OPJ_UINT32 p_data_size,struct opj_stream_private * p_cio,struct opj_event_mgr * p_manager);
+	OPJ_BOOL (* opj_end_compress) (void * p_codec, struct opj_stream_private *p_cio, struct opj_event_mgr * p_manager);
 	void (* opj_destroy) (void * p_codec);
 	void (*opj_setup_encoder) (void * p_codec,opj_cparameters_t * p_param,struct opj_image * p_image, struct opj_event_mgr * p_manager);
 	
@@ -107,6 +107,16 @@ void opj_default_callback (const char *msg, void *client_data)
 {
 }
 
+/**
+ * Default callback function.
+ * Do nothing.
+ */
+void opj_stdio_callback (const char *msg, void *client_data)
+{
+	printf("%s",msg);
+}
+
+
 void set_default_event_handler(opj_event_mgr_t * p_manager)
 {
 	p_manager->m_error_data = 00;
@@ -138,7 +148,7 @@ OPJ_SIZE_T opj_skip_from_file (OPJ_SIZE_T p_nb_bytes, FILE * p_user_data)
 	return p_nb_bytes;
 }
 
-bool opj_seek_from_file (OPJ_SIZE_T p_nb_bytes, FILE * p_user_data)
+OPJ_BOOL opj_seek_from_file (OPJ_SIZE_T p_nb_bytes, FILE * p_user_data)
 {
 	if
 		(fseek(p_user_data,p_nb_bytes,SEEK_SET))
@@ -192,8 +202,8 @@ opj_codec_t* OPJ_CALLCONV opj_create_decompress(OPJ_CODEC_FORMAT p_format)
 	{
 		case CODEC_J2K:
 			l_info->m_codec_data.m_decompression.opj_decode = (opj_image_t* (*) (void *, struct opj_stream_private *, struct opj_event_mgr * ))j2k_decode;
-			l_info->m_codec_data.m_decompression.opj_end_decompress =  (bool (*) (void *,struct opj_stream_private *,struct opj_event_mgr *))j2k_end_decompress;
-			l_info->m_codec_data.m_decompression.opj_read_header =  (bool (*) (
+			l_info->m_codec_data.m_decompression.opj_end_decompress =  (OPJ_BOOL (*) (void *,struct opj_stream_private *,struct opj_event_mgr *))j2k_end_decompress;
+			l_info->m_codec_data.m_decompression.opj_read_header =  (OPJ_BOOL (*) (
 				void *,
 				opj_image_t **,
 				OPJ_INT32 * ,
@@ -206,7 +216,7 @@ opj_codec_t* OPJ_CALLCONV opj_create_decompress(OPJ_CODEC_FORMAT p_format)
 				struct opj_event_mgr * )) j2k_read_header;
 			l_info->m_codec_data.m_decompression.opj_destroy = (void (*) (void *))j2k_destroy;
 			l_info->m_codec_data.m_decompression.opj_setup_decoder = (void (*) (void * ,opj_dparameters_t * )) j2k_setup_decoder;
-			l_info->m_codec_data.m_decompression.opj_read_tile_header = (bool (*) (
+			l_info->m_codec_data.m_decompression.opj_read_tile_header = (OPJ_BOOL (*) (
 				void *,
 				OPJ_UINT32*,
 				OPJ_UINT32*,
@@ -215,11 +225,11 @@ opj_codec_t* OPJ_CALLCONV opj_create_decompress(OPJ_CODEC_FORMAT p_format)
 				OPJ_INT32 * ,
 				OPJ_INT32 * ,
 				OPJ_UINT32 * ,
-				bool *,
+				OPJ_BOOL *,
 				struct opj_stream_private *,	
 				struct opj_event_mgr * )) j2k_read_tile_header;
-				l_info->m_codec_data.m_decompression.opj_decode_tile_data = (bool (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr * )) j2k_decode_tile;
-			l_info->m_codec_data.m_decompression.opj_set_decode_area = (bool (*) (void *,OPJ_INT32,OPJ_INT32,OPJ_INT32,OPJ_INT32, struct opj_event_mgr * )) j2k_set_decode_area;
+				l_info->m_codec_data.m_decompression.opj_decode_tile_data = (OPJ_BOOL (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr * )) j2k_decode_tile;
+			l_info->m_codec_data.m_decompression.opj_set_decode_area = (OPJ_BOOL (*) (void *,OPJ_INT32,OPJ_INT32,OPJ_INT32,OPJ_INT32, struct opj_event_mgr * )) j2k_set_decode_area;
 			l_info->m_codec = j2k_create_decompress();
 			if
 				(! l_info->m_codec)
@@ -232,8 +242,8 @@ opj_codec_t* OPJ_CALLCONV opj_create_decompress(OPJ_CODEC_FORMAT p_format)
 		case CODEC_JP2:
 			/* get a JP2 decoder handle */
 			l_info->m_codec_data.m_decompression.opj_decode = (opj_image_t* (*) (void *, struct opj_stream_private *, struct opj_event_mgr * ))jp2_decode;
-			l_info->m_codec_data.m_decompression.opj_end_decompress =  (bool (*) (void *,struct opj_stream_private *,struct opj_event_mgr *)) jp2_end_decompress;
-			l_info->m_codec_data.m_decompression.opj_read_header =  (bool (*) (
+			l_info->m_codec_data.m_decompression.opj_end_decompress =  (OPJ_BOOL (*) (void *,struct opj_stream_private *,struct opj_event_mgr *)) jp2_end_decompress;
+			l_info->m_codec_data.m_decompression.opj_read_header =  (OPJ_BOOL (*) (
 				void *,
 				opj_image_t **,
 			
@@ -247,7 +257,7 @@ opj_codec_t* OPJ_CALLCONV opj_create_decompress(OPJ_CODEC_FORMAT p_format)
 				struct opj_event_mgr * )) jp2_read_header;
 
 			l_info->m_codec_data.m_decompression.opj_read_tile_header = (
-				bool (*) (
+				OPJ_BOOL (*) (
 					void *,
 					OPJ_UINT32*,
 					OPJ_UINT32*,
@@ -256,15 +266,15 @@ opj_codec_t* OPJ_CALLCONV opj_create_decompress(OPJ_CODEC_FORMAT p_format)
 					OPJ_INT32 * ,
 					OPJ_INT32 * ,
 					OPJ_UINT32 * ,
-					bool *,
+					OPJ_BOOL *,
 					struct opj_stream_private *,	
 					struct opj_event_mgr * )) jp2_read_tile_header;
 
-			l_info->m_codec_data.m_decompression.opj_decode_tile_data = (bool (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr * )) jp2_decode_tile;
+			l_info->m_codec_data.m_decompression.opj_decode_tile_data = (OPJ_BOOL (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr * )) jp2_decode_tile;
 
 			l_info->m_codec_data.m_decompression.opj_destroy = (void (*) (void *))jp2_destroy;
 			l_info->m_codec_data.m_decompression.opj_setup_decoder = (void (*) (void * ,opj_dparameters_t * )) jp2_setup_decoder;
-			l_info->m_codec_data.m_decompression.opj_set_decode_area = (bool (*) (void *,OPJ_INT32,OPJ_INT32,OPJ_INT32,OPJ_INT32, struct opj_event_mgr * )) jp2_set_decode_area;
+			l_info->m_codec_data.m_decompression.opj_set_decode_area = (OPJ_BOOL (*) (void *,OPJ_INT32,OPJ_INT32,OPJ_INT32,OPJ_INT32, struct opj_event_mgr * )) jp2_set_decode_area;
 
 			
 			l_info->m_codec = jp2_create(true);
@@ -324,7 +334,7 @@ void OPJ_CALLCONV opj_set_default_decoder_parameters(opj_dparameters_t *paramete
 	}
 }
 
-bool OPJ_CALLCONV opj_setup_decoder(opj_codec_t *p_info, opj_dparameters_t *parameters) {
+OPJ_BOOL OPJ_CALLCONV opj_setup_decoder(opj_codec_t *p_info, opj_dparameters_t *parameters) {
 	if
 		(p_info && parameters) 
 	{
@@ -367,7 +377,7 @@ opj_image_t* OPJ_CALLCONV opj_decode(opj_codec_t *p_info, opj_stream_t *cio)
  *								depending on the precision of the given component.
  * @param	p_stream			the stream to write data to.
  */
-bool opj_write_tile (
+OPJ_BOOL OPJ_CALLCONV opj_write_tile (
 					 opj_codec_t *p_codec,
 					 OPJ_UINT32 p_tile_index,
 					 OPJ_BYTE * p_data,
@@ -411,7 +421,7 @@ bool opj_write_tile (
  * @return	true			if the tile header could be decoded. In case the decoding should end, the returned value is still true.
  *							returning false may be the result of a shortage of memory or an internal error.
  */				
-bool opj_read_tile_header(
+OPJ_BOOL OPJ_CALLCONV opj_read_tile_header(
 					opj_codec_t *p_codec,
 					OPJ_UINT32 * p_tile_index,
 					OPJ_UINT32 * p_data_size,
@@ -420,7 +430,7 @@ bool opj_read_tile_header(
 					OPJ_INT32 * p_tile_x1,
 					OPJ_INT32 * p_tile_y1,
 					OPJ_UINT32 * p_nb_comps,
-					bool * p_should_go_on,
+					OPJ_BOOL * p_should_go_on,
 					opj_stream_t * p_stream)
 {
 	if
@@ -460,7 +470,7 @@ bool opj_read_tile_header(
  *
  * @return	true			if the data could be decoded.
  */				
-bool opj_decode_tile_data(
+OPJ_BOOL OPJ_CALLCONV opj_decode_tile_data(
 					opj_codec_t *p_codec,
 					OPJ_UINT32 p_tile_index,
 					OPJ_BYTE * p_data,
@@ -483,7 +493,7 @@ bool opj_decode_tile_data(
 	return false;
 }
 
-bool OPJ_CALLCONV opj_read_header (
+OPJ_BOOL OPJ_CALLCONV opj_read_header (
 								   opj_codec_t *p_codec,
 								   opj_image_t ** p_image,
 								   OPJ_INT32 * p_tile_x0,
@@ -530,7 +540,7 @@ bool OPJ_CALLCONV opj_read_header (
  *
  * @return	true			if the area could be set.
  */				
-bool opj_set_decode_area(
+OPJ_BOOL OPJ_CALLCONV opj_set_decode_area(
 					opj_codec_t *p_codec,
 					OPJ_INT32 p_start_x,
 					OPJ_INT32 p_start_y,
@@ -560,7 +570,7 @@ bool opj_set_decode_area(
 
 }
 
-bool OPJ_CALLCONV opj_end_decompress (opj_codec_t *p_codec,opj_stream_t *p_cio)
+OPJ_BOOL OPJ_CALLCONV opj_end_decompress (opj_codec_t *p_codec,opj_stream_t *p_cio)
 {
 	if
 		(p_codec && p_cio) 
@@ -594,10 +604,10 @@ opj_codec_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT p_format)
 		(p_format) 
 	{
 		case CODEC_J2K:
-			l_info->m_codec_data.m_compression.opj_encode = (bool (*) (void *, struct opj_stream_private *, struct opj_event_mgr * )) j2k_encode;
-			l_info->m_codec_data.m_compression.opj_end_compress = (bool (*) (void *, struct opj_stream_private *, struct opj_event_mgr *)) j2k_end_compress;
-			l_info->m_codec_data.m_compression.opj_start_compress = (bool (*) (void *,struct opj_stream_private *,struct opj_image * ,	struct opj_event_mgr *)) j2k_start_compress;
-			l_info->m_codec_data.m_compression.opj_write_tile = (bool (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr *)) j2k_write_tile;
+			l_info->m_codec_data.m_compression.opj_encode = (OPJ_BOOL (*) (void *, struct opj_stream_private *, struct opj_event_mgr * )) j2k_encode;
+			l_info->m_codec_data.m_compression.opj_end_compress = (OPJ_BOOL (*) (void *, struct opj_stream_private *, struct opj_event_mgr *)) j2k_end_compress;
+			l_info->m_codec_data.m_compression.opj_start_compress = (OPJ_BOOL (*) (void *,struct opj_stream_private *,struct opj_image * ,	struct opj_event_mgr *)) j2k_start_compress;
+			l_info->m_codec_data.m_compression.opj_write_tile = (OPJ_BOOL (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr *)) j2k_write_tile;
 			l_info->m_codec_data.m_compression.opj_destroy = (void (*) (void *)) j2k_destroy;
 			l_info->m_codec_data.m_compression.opj_setup_encoder = (void (*) (void *,opj_cparameters_t *,struct opj_image *, struct opj_event_mgr * )) j2k_setup_encoder;
 
@@ -612,10 +622,10 @@ opj_codec_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT p_format)
 		
 		case CODEC_JP2:
 			/* get a JP2 decoder handle */
-			l_info->m_codec_data.m_compression.opj_encode = (bool (*) (void *, struct opj_stream_private *, struct opj_event_mgr * )) jp2_encode;
-			l_info->m_codec_data.m_compression.opj_end_compress = (bool (*) (void *, struct opj_stream_private *, struct opj_event_mgr *)) jp2_end_compress;
-			l_info->m_codec_data.m_compression.opj_start_compress = (bool (*) (void *,struct opj_stream_private *,struct opj_image * ,	struct opj_event_mgr *))  jp2_start_compress;
-			l_info->m_codec_data.m_compression.opj_write_tile = (bool (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr *)) jp2_write_tile;
+			l_info->m_codec_data.m_compression.opj_encode = (OPJ_BOOL (*) (void *, struct opj_stream_private *, struct opj_event_mgr * )) jp2_encode;
+			l_info->m_codec_data.m_compression.opj_end_compress = (OPJ_BOOL (*) (void *, struct opj_stream_private *, struct opj_event_mgr *)) jp2_end_compress;
+			l_info->m_codec_data.m_compression.opj_start_compress = (OPJ_BOOL (*) (void *,struct opj_stream_private *,struct opj_image * ,	struct opj_event_mgr *))  jp2_start_compress;
+			l_info->m_codec_data.m_compression.opj_write_tile = (OPJ_BOOL (*) (void *,OPJ_UINT32,OPJ_BYTE*,OPJ_UINT32,struct opj_stream_private *,	struct opj_event_mgr *)) jp2_write_tile;
 			l_info->m_codec_data.m_compression.opj_destroy = (void (*) (void *)) jp2_destroy;
 			l_info->m_codec_data.m_compression.opj_setup_encoder = (void (*) (void *,opj_cparameters_t *,struct opj_image *, struct opj_event_mgr * )) jp2_setup_encoder;
 			
@@ -695,12 +705,12 @@ void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameters_t *paramete
  * @param		p_stream	the stream to modify
  * @param		p_file		handler to an already open file.
 */
-opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream (FILE * p_file,bool p_is_read_stream)
+opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream (FILE * p_file,OPJ_BOOL p_is_read_stream)
 {
 	return opj_stream_create_file_stream(p_file,J2K_STREAM_CHUNK_SIZE,p_is_read_stream);
 }
 
-opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file,OPJ_UINT32 p_size,bool p_is_read_stream)
+opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file,OPJ_UINT32 p_size,OPJ_BOOL p_is_read_stream)
 {
 	opj_stream_t* l_stream = 00;
 	if
@@ -723,7 +733,7 @@ opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file,OPJ_UINT
 }
 
 
-bool OPJ_CALLCONV opj_setup_encoder(opj_codec_t *p_info, opj_cparameters_t *parameters, opj_image_t *image) 
+OPJ_BOOL OPJ_CALLCONV opj_setup_encoder(opj_codec_t *p_info, opj_cparameters_t *parameters, opj_image_t *image) 
 {
 	if
 		(p_info && parameters && image) 
@@ -739,7 +749,7 @@ bool OPJ_CALLCONV opj_setup_encoder(opj_codec_t *p_info, opj_cparameters_t *para
 	return false;
 }
 
-bool OPJ_CALLCONV opj_encode(opj_codec_t *p_info, opj_stream_t *cio) 
+OPJ_BOOL OPJ_CALLCONV opj_encode(opj_codec_t *p_info, opj_stream_t *cio) 
 {
 	if
 		(p_info && cio) 
@@ -757,7 +767,7 @@ bool OPJ_CALLCONV opj_encode(opj_codec_t *p_info, opj_stream_t *cio)
 
 }
 
-bool OPJ_CALLCONV opj_start_compress (opj_codec_t *p_codec,opj_image_t * p_image,opj_stream_t *p_cio)
+OPJ_BOOL OPJ_CALLCONV opj_start_compress (opj_codec_t *p_codec,opj_image_t * p_image,opj_stream_t *p_cio)
 {
 	if
 		(p_codec && p_cio) 
@@ -773,7 +783,7 @@ bool OPJ_CALLCONV opj_start_compress (opj_codec_t *p_codec,opj_image_t * p_image
 	return false;
 }
 
-bool OPJ_CALLCONV opj_end_compress (opj_codec_t *p_codec,opj_stream_t *p_cio)
+OPJ_BOOL OPJ_CALLCONV opj_end_compress (opj_codec_t *p_codec,opj_stream_t *p_cio)
 {
 	if
 		(p_codec && p_cio) 
@@ -790,7 +800,7 @@ bool OPJ_CALLCONV opj_end_compress (opj_codec_t *p_codec,opj_stream_t *p_cio)
 
 }
 
-bool OPJ_CALLCONV opj_set_info_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data)
+OPJ_BOOL OPJ_CALLCONV opj_set_info_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data)
 {
 	opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
 	if
@@ -803,7 +813,7 @@ bool OPJ_CALLCONV opj_set_info_handler(opj_codec_t * p_codec, opj_msg_callback p
 	return true;
 }
 
-bool OPJ_CALLCONV opj_set_warning_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data)
+OPJ_BOOL OPJ_CALLCONV opj_set_warning_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data)
 {
 	opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
 	if
@@ -816,7 +826,7 @@ bool OPJ_CALLCONV opj_set_warning_handler(opj_codec_t * p_codec, opj_msg_callbac
 	return true;
 }
 
-bool OPJ_CALLCONV opj_set_error_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data)
+OPJ_BOOL OPJ_CALLCONV opj_set_error_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data)
 {
 	opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
 	if
@@ -829,7 +839,7 @@ bool OPJ_CALLCONV opj_set_error_handler(opj_codec_t * p_codec, opj_msg_callback
 	return true;
 }
 
-/*bool OPJ_CALLCONV opj_encode_with_info(opj_cinfo_t *cinfo, opj_stream_t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info) {
+/*OPJ_BOOL OPJ_CALLCONV opj_encode_with_info(opj_cinfo_t *cinfo, opj_stream_t *cio, opj_image_t *image, opj_codestream_info_t *cstr_info) {
 	if(cinfo && cio && image) {
 		switch(cinfo->codec_format) {
 			case CODEC_J2K:
@@ -861,7 +871,7 @@ void OPJ_CALLCONV opj_destroy_cstr_info(opj_codestream_info_t *cstr_info) {
 	}
 }
 
-bool opj_set_MCT(opj_cparameters_t *parameters,OPJ_FLOAT32 * pEncodingMatrix,OPJ_INT32 * p_dc_shift,OPJ_UINT32 pNbComp)
+OPJ_BOOL OPJ_CALLCONV opj_set_MCT(opj_cparameters_t *parameters,OPJ_FLOAT32 * pEncodingMatrix,OPJ_INT32 * p_dc_shift,OPJ_UINT32 pNbComp)
 {
 	OPJ_UINT32 l_matrix_size = pNbComp * pNbComp * sizeof(OPJ_FLOAT32);
 	OPJ_UINT32 l_dc_shift_size = pNbComp * sizeof(OPJ_INT32);
@@ -891,7 +901,7 @@ bool opj_set_MCT(opj_cparameters_t *parameters,OPJ_FLOAT32 * pEncodingMatrix,OPJ
  * @param	p_end_x			the x end position of the area to decode. 
  * @param	p_end_x			the y end position of the area to decode.
  */
-OPJ_API bool OPJ_CALLCONV opj_restrict_decoding (opj_dparameters_t *parameters,OPJ_INT32 p_start_x,OPJ_INT32 p_start_y,OPJ_INT32 p_end_x,OPJ_INT32 p_end_y)
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_restrict_decoding (opj_dparameters_t *parameters,OPJ_INT32 p_start_x,OPJ_INT32 p_start_y,OPJ_INT32 p_end_x,OPJ_INT32 p_end_y)
 {
 	parameters->m_use_restrict_decode = 1;
 	parameters->m_decode_start_x = p_start_x;
@@ -900,3 +910,28 @@ OPJ_API bool OPJ_CALLCONV opj_restrict_decoding (opj_dparameters_t *parameters,O
 	parameters->m_decode_end_y = p_end_y;
 	return true;
 }
+
+/**
+ * Sets the default information/warning/error handler to stdout.
+ * 
+ * @param		p_codec			the codec to modify.
+ * 
+ * @return		true if the call is successful.
+ */
+OPJ_BOOL OPJ_CALLCONV opj_set_stdout_handler(opj_codec_t * p_codec)
+{
+	opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
+	if
+		(! l_codec)
+	{
+		return false;
+	}
+	l_codec->m_event_mgr.info_handler = opj_stdio_callback;
+	l_codec->m_event_mgr.m_info_data = 00;
+	l_codec->m_event_mgr.error_handler = opj_stdio_callback;
+	l_codec->m_event_mgr.m_error_data = 00;
+	l_codec->m_event_mgr.warning_handler = opj_stdio_callback;
+	l_codec->m_event_mgr.m_warning_data = 00;
+	return true;
+
+}
diff --git a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
index 723159ffb9..fa314765b2 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
@@ -30,6 +30,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef OPENJPEG_H
 #define OPENJPEG_H
 
@@ -66,22 +67,25 @@
 		#endif
 	#endif
 #endif /* __cplusplus */
+
+#define OPENJPEG_VERSION "1.2.0"
+
 typedef unsigned int	OPJ_UINT32;
-typedef int		OPJ_INT32;	
+typedef int				OPJ_INT32;	
 typedef unsigned short	OPJ_UINT16;	
-typedef short		OPJ_INT16;	
-typedef char		OPJ_CHAR;
+typedef short			OPJ_INT16;	
+typedef char			OPJ_CHAR;
 typedef unsigned char	OPJ_BYTE;
 typedef unsigned int	OPJ_SIZE_T;
-typedef double		OPJ_FLOAT64;
-typedef float		OPJ_FLOAT32;
+typedef double			OPJ_FLOAT64;
+typedef float			OPJ_FLOAT32;
+typedef int				OPJ_BOOL;
 #if defined(_MSC_VER) || defined(__BORLANDC__)
 	typedef __int64		OPJ_INT64;
 #else
 	typedef long long	OPJ_INT64;
 #endif
 
-#define OPENJPEG_VERSION "1.2.0"
 /* 
 ==========================================================
    Compiler directives
@@ -90,34 +94,13 @@ typedef float		OPJ_FLOAT32;
 #include <stdio.h>
 
 
-
-
-
-/* 
-==========================================================
-   Useful constant definitions
-==========================================================
-*/
-
-#define OPJ_PATH_LEN					4096 /**< Maximum allowed size for filenames */
 #define J2K_MAXRLVLS					33					/**< Number of maximum resolution level authorized */
-#define J2K_MAXBANDS					(3*J2K_MAXRLVLS-2)	/**< Number of maximum sub-band linked to number of resolution level */
-#define J2K_DEFAULT_NB_SEGS				10
-#define J2K_STREAM_CHUNK_SIZE			0x100000 /** 1 mega by default */
-#define J2K_DEFAULT_HEADER_SIZE			1000
-#define J2K_MCC_DEFAULT_NB_RECORDS		10
-#define J2K_MCT_DEFAULT_NB_RECORDS		10
+#define OPJ_PATH_LEN					4096 /**< Maximum allowed size for filenames */
 
 /* UniPG>> */
 #define JPWL_MAX_NO_TILESPECS	16 /**< Maximum number of tile parts expected by JPWL: increase at your will */
 #define JPWL_MAX_NO_PACKSPECS	16 /**< Maximum number of packet parts expected by JPWL: increase at your will */
-#define JPWL_MAX_NO_MARKERS	512 /**< Maximum number of JPWL markers: increase at your will */
-#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file name used when JPWL is on */
-#define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, so you'll find better the first EPB */
-#define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, to avoid some crashes */
-#define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit errors in marker id's */
-#define JPWL_MAXIMUM_EPB_ROOM 65450 /**< Expect this maximum number of bytes for composition of EPBs */
-/* <<UniPG */
+
 
 /* 
 ==========================================================
@@ -235,7 +218,7 @@ Compression parameters
 */
 typedef struct opj_cparameters {
 	/** size of tile: tile_size_on = false (not in argument) or = true (in argument) */
-	bool tile_size_on;
+	OPJ_BOOL tile_size_on;
 	/** XTOsiz */
 	int cp_tx0;
 	/** YTOsiz */
@@ -317,7 +300,7 @@ typedef struct opj_cparameters {
 	/**@name JPWL encoding parameters */
 	/*@{*/
 	/** enables writing of EPC in MH, thus activating JPWL */
-	bool jpwl_epc_on;
+	OPJ_BOOL jpwl_epc_on;
 	/** error protection method for MH (0,1,16,32,37-128) */
 	int jpwl_hprot_MH;
 	/** tile number of header protection specification (>=0) */
@@ -406,7 +389,7 @@ typedef struct opj_dparameters {
 	/**@name JPWL decoding parameters */
 	/*@{*/
 	/** activates the JPWL correction capabilities */
-	bool jpwl_correct;
+	OPJ_BOOL jpwl_correct;
 	/** expected number of components */
 	int jpwl_exp_comps;
 	/** maximum number of tiles */
@@ -443,7 +426,7 @@ typedef void * opj_codec_t;
 typedef OPJ_UINT32 (* opj_stream_read_fn) (void * p_buffer, OPJ_UINT32 p_nb_bytes, void * p_user_data) ;
 typedef OPJ_UINT32 (* opj_stream_write_fn) (void * p_buffer, OPJ_UINT32 p_nb_bytes, void * p_user_data) ;
 typedef OPJ_SIZE_T (* opj_stream_skip_fn) (OPJ_SIZE_T p_nb_bytes, void * p_user_data) ;
-typedef bool (* opj_stream_seek_fn) (OPJ_SIZE_T p_nb_bytes, void * p_user_data) ;
+typedef OPJ_BOOL (* opj_stream_seek_fn) (OPJ_SIZE_T p_nb_bytes, void * p_user_data) ;
 
 
 typedef void * opj_stream_t;
@@ -722,8 +705,8 @@ OPJ_API void OPJ_CALLCONV opj_image_destroy(opj_image_t *image);
  * 
  * @return	a stream object.
 */
-OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_default_create(bool p_is_input);
-OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create(OPJ_UINT32 p_size,bool p_is_input);
+OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_default_create(OPJ_BOOL p_is_input);
+OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create(OPJ_UINT32 p_size,OPJ_BOOL p_is_input);
 
 /**
  * Destroys a stream created by opj_create_stream. This function does NOT close the abstract stream. If needed the user must 
@@ -775,8 +758,8 @@ OPJ_API void OPJ_CALLCONV opj_stream_set_user_data (opj_stream_t* p_stream, void
  * @param		p_stream	the stream to modify
  * @param		p_file		handler to an already open file.
 */
-OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream (FILE * p_file,bool p_is_read_stream);
-OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file,OPJ_UINT32 p_buffer_size, bool p_is_read_stream);
+OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_default_file_stream (FILE * p_file,OPJ_BOOL p_is_read_stream);
+OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file,OPJ_UINT32 p_buffer_size, OPJ_BOOL p_is_read_stream);
 
 
 
@@ -785,10 +768,18 @@ OPJ_API opj_stream_t* OPJ_CALLCONV opj_stream_create_file_stream (FILE * p_file,
    event manager functions definitions
 ==========================================================
 */
-OPJ_API bool OPJ_CALLCONV opj_set_info_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data);
-OPJ_API bool OPJ_CALLCONV opj_set_warning_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data);
-OPJ_API bool OPJ_CALLCONV opj_set_error_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_info_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_warning_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_error_handler(opj_codec_t * p_codec, opj_msg_callback p_callback,void * p_user_data);
 
+/**
+ * Sets the default information/warning/error handler to stdout.
+ * 
+ * @param		p_codec			the codec to modify.
+ * 
+ * @return		true if the call is successful.
+ */
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_stdout_handler(opj_codec_t * p_codec);
 
 
 /* 
@@ -821,7 +812,7 @@ Decoding parameters are returned in j2k->cp.
 @param dinfo decompressor handle
 @param parameters decompression parameters
 */
-OPJ_API bool OPJ_CALLCONV opj_setup_decoder(opj_codec_t *dinfo, opj_dparameters_t *parameters);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_setup_decoder(opj_codec_t *dinfo, opj_dparameters_t *parameters);
 #endif
 
 /**
@@ -844,7 +835,7 @@ OPJ_API opj_image_t* OPJ_CALLCONV opj_decode(opj_codec_t *p_decompressor, opj_st
  * 
  * @return	true if the data could be written.
  */
-OPJ_API bool OPJ_CALLCONV opj_write_tile (
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_write_tile (
 					 opj_codec_t *p_codec,
 					 OPJ_UINT32 p_tile_index,
 					 OPJ_BYTE * p_data,
@@ -873,7 +864,7 @@ OPJ_API bool OPJ_CALLCONV opj_write_tile (
  * @return	true			if the tile header could be decoded. In case the decoding should end, the returned value is still true.
  *							returning false may be the result of a shortage of memory or an internal error.
  */				
-OPJ_API bool OPJ_CALLCONV opj_read_tile_header(
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_tile_header(
 					opj_codec_t *p_codec,
 					OPJ_UINT32 * p_tile_index,
 					OPJ_UINT32 * p_data_size,
@@ -882,7 +873,7 @@ OPJ_API bool OPJ_CALLCONV opj_read_tile_header(
 					OPJ_INT32 * p_tile_x1,
 					OPJ_INT32 * p_tile_y1,
 					OPJ_UINT32 * p_nb_comps,
-					bool * p_should_go_on,
+					OPJ_BOOL * p_should_go_on,
 					opj_stream_t * p_stream);
 
 
@@ -898,7 +889,7 @@ OPJ_API bool OPJ_CALLCONV opj_read_tile_header(
  *
  * @return	true			if the data could be decoded.
  */				
-OPJ_API bool OPJ_CALLCONV opj_decode_tile_data(
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_decode_tile_data(
 					opj_codec_t *p_codec,
 					OPJ_UINT32 p_tile_index,
 					OPJ_BYTE * p_data,
@@ -917,7 +908,7 @@ OPJ_API bool OPJ_CALLCONV opj_decode_tile_data(
  *
  * @return	true			if the area could be set.
  */				
-OPJ_API bool OPJ_CALLCONV opj_set_decode_area(
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decode_area(
 					opj_codec_t *p_codec,
 					OPJ_INT32 p_start_x,
 					OPJ_INT32 p_start_y,
@@ -980,7 +971,7 @@ OPJ_API void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameters_t *
  *
  * @return	true if the parameters could be set.
  */
-OPJ_API bool OPJ_CALLCONV opj_set_MCT(opj_cparameters_t *parameters,OPJ_FLOAT32 * pEncodingMatrix,OPJ_INT32 * p_dc_shift,OPJ_UINT32 pNbComp);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_MCT(opj_cparameters_t *parameters,OPJ_FLOAT32 * pEncodingMatrix,OPJ_INT32 * p_dc_shift,OPJ_UINT32 pNbComp);
 
 /**
  * Restricts the decoding to the given image area.
@@ -991,7 +982,7 @@ OPJ_API bool OPJ_CALLCONV opj_set_MCT(opj_cparameters_t *parameters,OPJ_FLOAT32
  * @param	p_end_x			the x end position of the area to decode. 
  * @param	p_end_x			the y end position of the area to decode.
  */
-OPJ_API bool OPJ_CALLCONV opj_restrict_decoding (opj_dparameters_t *parameters,OPJ_INT32 p_start_x,OPJ_INT32 p_start_y,OPJ_INT32 p_end_x,OPJ_INT32 p_end_y);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_restrict_decoding (opj_dparameters_t *parameters,OPJ_INT32 p_start_x,OPJ_INT32 p_start_y,OPJ_INT32 p_end_x,OPJ_INT32 p_end_y);
 
 #ifdef USE_OPJ_DEPRECATED
 #ifdef _MSC_VER
@@ -1005,7 +996,7 @@ Setup the encoder parameters using the current image and using user parameters.
 @param parameters Compression parameters
 @param image Input filled image
 */
-OPJ_API bool OPJ_CALLCONV opj_setup_encoder(opj_codec_t *cinfo, opj_cparameters_t *parameters, opj_image_t *image);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_setup_encoder(opj_codec_t *cinfo, opj_cparameters_t *parameters, opj_image_t *image);
 #endif
 
 /**
@@ -1020,7 +1011,7 @@ OPJ_API bool OPJ_CALLCONV opj_setup_encoder(opj_codec_t *cinfo, opj_cparameters_
  * @param	p_nb_tiles_x	pointer to a value that will hold the number of tiles in the x direction.
  * @param	p_nb_tiles_y	pointer to a value that will hold the number of tiles in the y direction.
  */
-OPJ_API bool OPJ_CALLCONV opj_read_header (
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_header (
 										opj_codec_t *p_codec,
 										opj_image_t ** p_image,
 										OPJ_INT32 * p_tile_x0,
@@ -1032,7 +1023,7 @@ OPJ_API bool OPJ_CALLCONV opj_read_header (
 										opj_stream_t *p_cio);
 
 
-OPJ_API bool OPJ_CALLCONV opj_end_decompress (opj_codec_t *p_codec,opj_stream_t *p_cio);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_end_decompress (opj_codec_t *p_codec,opj_stream_t *p_cio);
 /**
 Encode an image into a JPEG-2000 codestream
 @param cinfo compressor handle
@@ -1041,11 +1032,11 @@ Encode an image into a JPEG-2000 codestream
 @param index Depreacted -> Set to NULL. To extract index, used opj_encode_wci()
 @return Returns true if successful, returns false otherwise
 */
-OPJ_API bool OPJ_CALLCONV opj_encode(opj_codec_t *cinfo, opj_stream_t * cio);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_encode(opj_codec_t *cinfo, opj_stream_t * cio);
 
-OPJ_API bool OPJ_CALLCONV opj_start_compress (opj_codec_t *p_codec,opj_image_t * p_image,opj_stream_t *p_cio);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_start_compress (opj_codec_t *p_codec,opj_image_t * p_image,opj_stream_t *p_cio);
 
-OPJ_API bool OPJ_CALLCONV opj_end_compress (opj_codec_t *p_codec,opj_stream_t *p_cio);
+OPJ_API OPJ_BOOL OPJ_CALLCONV opj_end_compress (opj_codec_t *p_codec,opj_stream_t *p_cio);
 /**
 Encode an image into a JPEG-2000 codestream and extract the codestream information
 @param cinfo compressor handle
@@ -1054,17 +1045,47 @@ Encode an image into a JPEG-2000 codestream and extract the codestream informati
 @param cstr_info Codestream information structure if needed afterwards, NULL otherwise
 @return Returns true if successful, returns false otherwise
 */
-//OPJ_API bool OPJ_CALLCONV opj_encode_with_info(opj_cinfo_t *cinfo, opj_stream_t cio, opj_image_t *image, opj_codestream_info_t *cstr_info);
+//OPJ_API OPJ_BOOL OPJ_CALLCONV opj_encode_with_info(opj_cinfo_t *cinfo, opj_stream_t cio, opj_image_t *image, opj_codestream_info_t *cstr_info);
 /**
 Destroy Codestream information after compression or decompression
 @param cstr_info Codestream information structure
 */
 OPJ_API void OPJ_CALLCONV opj_destroy_cstr_info(opj_codestream_info_t *cstr_info);
 
+/**
+ * Profiling method. Inits the profiling.
+ * The user should NOT call this method directly but rather rely on the macros 
+ * PROFINIT().
+ */
+OPJ_API void OPJ_CALLCONV _ProfInit(void);
+
+/**
+ * Profiling methods. Saves the results of the profiling to the given file.
+ * The user should NOT call this method directly but rather rely on the macros 
+ * PROFSAVE(file).
+ */
+OPJ_API void OPJ_CALLCONV _ProfSave(const OPJ_CHAR * pFilename);
+
+/**
+ * Profiling methods. Prints the results of the profiling to stdout.
+ * The user should NOT call this method directly but rather rely on the macros 
+ * PROFPRINT().
+ */
+OPJ_API void OPJ_CALLCONV _ProfPrint(void);
+
+#ifdef _PROFILE
+#define PROFINIT() _ProfInit();
+#define PROFSAVE(file) _ProfSave(file);
+#define PROFPRINT() _ProfPrint();
+#else
+#define PROFINIT()
+#define PROFSAVE(file)
+#define PROFPRINT() 
+#endif // !_PROFILE
+
 #ifdef __cplusplus
 }
 #endif
-
 #endif /* OPENJPEG_H */
 
 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
index 371db8aa12..c0411bbcfb 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
@@ -101,4 +101,28 @@ static INLINE long lrintf(float f){
 }
 #endif
 
+/* 
+==========================================================
+   Useful constant definitions
+==========================================================
+*/
+
+
+
+#define J2K_MAXBANDS					(3*J2K_MAXRLVLS-2)	/**< Number of maximum sub-band linked to number of resolution level */
+#define J2K_DEFAULT_NB_SEGS				10
+#define J2K_STREAM_CHUNK_SIZE			0x100000 /** 1 mega by default */
+#define J2K_DEFAULT_HEADER_SIZE			1000
+#define J2K_MCC_DEFAULT_NB_RECORDS		10
+#define J2K_MCT_DEFAULT_NB_RECORDS		10
+
+/* UniPG>> */
+#define JPWL_MAX_NO_MARKERS	512 /**< Maximum number of JPWL markers: increase at your will */
+#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file name used when JPWL is on */
+#define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, so you'll find better the first EPB */
+#define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, to avoid some crashes */
+#define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit errors in marker id's */
+#define JPWL_MAXIMUM_EPB_ROOM 65450 /**< Expect this maximum number of bytes for composition of EPBs */
+/* <<UniPG */
+
 #endif /* OPJ_INCLUDES_H */
diff --git a/Utilities/otbopenjpeg/libopenjpeg/pi.c b/Utilities/otbopenjpeg/libopenjpeg/pi.c
index f0dcd11e42..38877ed991 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/pi.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/pi.c
@@ -46,31 +46,31 @@ Get next packet in layer-resolution-component-precinct order.
 @param pi packet iterator to modify
 @return returns false if pi pointed to the last packet or else returns true 
 */
-static bool pi_next_lrcp(opj_pi_iterator_t * pi);
+static OPJ_BOOL pi_next_lrcp(opj_pi_iterator_t * pi);
 /**
 Get next packet in resolution-layer-component-precinct order.
 @param pi packet iterator to modify
 @return returns false if pi pointed to the last packet or else returns true 
 */
-static bool pi_next_rlcp(opj_pi_iterator_t * pi);
+static OPJ_BOOL pi_next_rlcp(opj_pi_iterator_t * pi);
 /**
 Get next packet in resolution-precinct-component-layer order.
 @param pi packet iterator to modify
 @return returns false if pi pointed to the last packet or else returns true 
 */
-static bool pi_next_rpcl(opj_pi_iterator_t * pi);
+static OPJ_BOOL pi_next_rpcl(opj_pi_iterator_t * pi);
 /**
 Get next packet in precinct-component-resolution-layer order.
 @param pi packet iterator to modify
 @return returns false if pi pointed to the last packet or else returns true 
 */
-static bool pi_next_pcrl(opj_pi_iterator_t * pi);
+static OPJ_BOOL pi_next_pcrl(opj_pi_iterator_t * pi);
 /**
 Get next packet in component-precinct-resolution-layer order.
 @param pi packet iterator to modify
 @return returns false if pi pointed to the last packet or else returns true 
 */
-static bool pi_next_cprl(opj_pi_iterator_t * pi);
+static OPJ_BOOL pi_next_cprl(opj_pi_iterator_t * pi);
 
 /**
  * Updates the coding parameters if the encoding is used with Progression order changes and final (or cinema parameters are used).
@@ -215,7 +215,7 @@ void pi_update_decode_poc (opj_pi_iterator_t * p_pi,opj_tcp_t * p_tcp,OPJ_UINT32
 ==========================================================
 */
 
-static bool pi_next_lrcp(opj_pi_iterator_t * pi) {
+static OPJ_BOOL pi_next_lrcp(opj_pi_iterator_t * pi) {
 	opj_pi_comp_t *comp = 00;
 	opj_pi_resolution_t *res = 00;
 	OPJ_UINT32 index = 0;
@@ -255,7 +255,7 @@ LABEL_SKIP:;
 	return false;
 }
 
-static bool pi_next_rlcp(opj_pi_iterator_t * pi) {
+static OPJ_BOOL pi_next_rlcp(opj_pi_iterator_t * pi) {
 	opj_pi_comp_t *comp = 00;
 	opj_pi_resolution_t *res = 00;
 	OPJ_UINT32 index = 0;
@@ -294,7 +294,7 @@ LABEL_SKIP:;
 	return false;
 }
 
-static bool pi_next_rpcl(opj_pi_iterator_t * pi) {
+static OPJ_BOOL pi_next_rpcl(opj_pi_iterator_t * pi) {
 	opj_pi_comp_t *comp = 00;
 	opj_pi_resolution_t *res = 00;
 	OPJ_UINT32 index = 0;
@@ -377,7 +377,7 @@ LABEL_SKIP:;
 	return false;
 }
 
-static bool pi_next_pcrl(opj_pi_iterator_t * pi) {
+static OPJ_BOOL pi_next_pcrl(opj_pi_iterator_t * pi) {
 	opj_pi_comp_t *comp = 00;
 	opj_pi_resolution_t *res = 00;
 	OPJ_UINT32 index = 0;
@@ -459,7 +459,7 @@ LABEL_SKIP:;
 	return false;
 }
 
-static bool pi_next_cprl(opj_pi_iterator_t * pi) {
+static OPJ_BOOL pi_next_cprl(opj_pi_iterator_t * pi) {
 	opj_pi_comp_t *comp = 00;
 	opj_pi_resolution_t *res = 00;
 	OPJ_UINT32 index = 0;
@@ -1636,7 +1636,7 @@ void pi_destroy(
 	}
 }
 
-bool pi_next(opj_pi_iterator_t * pi) {
+OPJ_BOOL pi_next(opj_pi_iterator_t * pi) {
 	switch (pi->poc.prg) {
 		case LRCP:
 			return pi_next_lrcp(pi);
diff --git a/Utilities/otbopenjpeg/libopenjpeg/pi.h b/Utilities/otbopenjpeg/libopenjpeg/pi.h
index 8e6b35fd82..c296e9e3bf 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/pi.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/pi.h
@@ -170,7 +170,7 @@ Modify the packet iterator to point to the next packet
 @param pi Packet iterator to modify
 @return Returns false if pi pointed to the last packet or else returns true 
 */
-bool pi_next(opj_pi_iterator_t * pi);
+OPJ_BOOL pi_next(opj_pi_iterator_t * pi);
 
 
 /* ----------------------------------------------------------------------- */
diff --git a/Utilities/otbopenjpeg/libopenjpeg/profile.c b/Utilities/otbopenjpeg/libopenjpeg/profile.c
index 68c6c0c161..11157eed8b 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/profile.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/profile.c
@@ -47,7 +47,7 @@ static void GetTimeStamp(OPJ_UINT32 *pdwtime);
           group_list[ entry ].sectionName = #major ; }
 
 //==============================================================================
-void _ProfInit(void)
+void OPJ_CALLCONV _ProfInit(void)
 {
    // clear everything out
    memset(group_list, 0, sizeof(group_list));
@@ -111,7 +111,7 @@ void _ProfStop(OPJ_PROFILE_GROUP group)
 			   ((OPJ_FLOAT64) group_list[ id ].total_time / totalTime * 100))
 
 //==============================================================================
-void _ProfSave(const OPJ_CHAR * pFileName)
+void OPJ_CALLCONV _ProfSave(const OPJ_CHAR * pFileName)
 {
 	FILE *p = fopen(pFileName, "wt");
 	OPJ_FLOAT64 totalTime = 0.;
@@ -142,7 +142,7 @@ void _ProfSave(const OPJ_CHAR * pFileName)
 } // _ProfSave
 
 //==============================================================================
-void _ProfPrint(void)
+void OPJ_CALLCONV _ProfPrint(void)
 {
 	OPJ_FLOAT64 totalTime = 0.;
 	OPJ_UINT32 i;
diff --git a/Utilities/otbopenjpeg/libopenjpeg/profile.h b/Utilities/otbopenjpeg/libopenjpeg/profile.h
index 5204e6cb49..89006e65e6 100755
--- a/Utilities/otbopenjpeg/libopenjpeg/profile.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/profile.h
@@ -60,26 +60,17 @@ typedef struct PROFILELIST
 } OPJ_PROFILE_LIST;
 
 //==============================================================================
-void _ProfInit(void);
 void _ProfStart(OPJ_PROFILE_GROUP group);
 void _ProfStop (OPJ_PROFILE_GROUP group);
-void _ProfSave(const char * pFilename);
-void _ProfPrint(void);
 
 //==============================================================================
 //==============================================================================
 #ifdef _PROFILE
-#define PROFINIT() _ProfInit();
 #define PROFSTART (group) _ProfStart (group);
 #define PROFSTOP (group) _ProfStop (group);
-#define PROFSAVE(file) _ProfSave(file);
-#define PROFPRINT() _ProfPrint();
 #else
-#define PROFINIT()
 #define PROFSTART(group)
 #define PROFSTOP (group)
-#define PROFSAVE(file)
-#define PROFPRINT() 
 #endif // !_PROFILE
 
 //==============================================================================
diff --git a/Utilities/otbopenjpeg/libopenjpeg/t1.c b/Utilities/otbopenjpeg/libopenjpeg/t1.c
index 4f95fc61bd..fe991a6809 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/t1.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/t1.c
@@ -784,7 +784,7 @@ static OPJ_FLOAT64 t1_getwmsedec(
 	return wmsedec;
 }
 
-static bool allocate_buffers(
+static OPJ_BOOL allocate_buffers(
 		opj_t1_t *t1,
 		OPJ_UINT32 w,
 		OPJ_UINT32 h)
@@ -1101,7 +1101,7 @@ void t1_destroy(opj_t1_t *p_t1)
 	opj_free(p_t1);
 }
 
-bool t1_encode_cblks(
+OPJ_BOOL t1_encode_cblks(
 		opj_t1_t *t1,
 		opj_tcd_tile_t *tile,
 		opj_tcp_t *tcp,
diff --git a/Utilities/otbopenjpeg/libopenjpeg/t1.h b/Utilities/otbopenjpeg/libopenjpeg/t1.h
index 909c126cb4..b84064e7d7 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/t1.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/t1.h
@@ -140,7 +140,7 @@ Encode the code-blocks of a tile
 @param tile The tile to encode
 @param tcp Tile coding parameters
 */
-bool t1_encode_cblks(opj_t1_t *t1, struct opj_tcd_tile *tile, struct opj_tcp *tcp,const OPJ_FLOAT64 * mct_norms);
+OPJ_BOOL t1_encode_cblks(opj_t1_t *t1, struct opj_tcd_tile *tile, struct opj_tcp *tcp,const OPJ_FLOAT64 * mct_norms);
 /**
 Decode the code-blocks of a tile
 @param t1 T1 handle
diff --git a/Utilities/otbopenjpeg/libopenjpeg/t2.c b/Utilities/otbopenjpeg/libopenjpeg/t2.c
index d9baaaef0e..0ce6b1a2f2 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/t2.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/t2.c
@@ -69,7 +69,7 @@ Encode a packet of a tile to a destination buffer
 @param tileno Number of the tile encoded
 @return 
 */
-static bool t2_encode_packet(
+static OPJ_BOOL t2_encode_packet(
 							 OPJ_UINT32 tileno, 
 							 opj_tcd_tile_t *tile, 
 							 opj_tcp_t *tcp, 
@@ -83,7 +83,7 @@ static bool t2_encode_packet(
 @param cblksty
 @param first
 */
-static bool t2_init_seg(opj_tcd_cblk_dec_t* cblk, OPJ_UINT32 index, OPJ_UINT32 cblksty, OPJ_UINT32 first);
+static OPJ_BOOL t2_init_seg(opj_tcd_cblk_dec_t* cblk, OPJ_UINT32 index, OPJ_UINT32 cblksty, OPJ_UINT32 first);
 /**
 Decode a packet of a tile from a source buffer
 @param t2 T2 handle
@@ -94,7 +94,7 @@ Decode a packet of a tile from a source buffer
 @param pi Packet identity
 @return 
 */
-static bool t2_decode_packet(
+static OPJ_BOOL t2_decode_packet(
 							 opj_t2_t* p_t2,
 							 opj_tcd_tile_t *p_tile,
                              opj_tcp_t *p_tcp, 
@@ -158,7 +158,7 @@ static OPJ_UINT32 t2_getnumpasses(opj_bio_t *bio) {
 	return (37 + bio_read(bio, 7));
 }
 
-static bool t2_encode_packet(
+static OPJ_BOOL t2_encode_packet(
 							 OPJ_UINT32 tileno, 
 							 opj_tcd_tile_t * tile, 
 							 opj_tcp_t * tcp, 
@@ -387,7 +387,7 @@ static bool t2_encode_packet(
 	return true;
 }
 
-static bool t2_init_seg(opj_tcd_cblk_dec_t* cblk, OPJ_UINT32 index, OPJ_UINT32 cblksty, OPJ_UINT32 first) 
+static OPJ_BOOL t2_init_seg(opj_tcd_cblk_dec_t* cblk, OPJ_UINT32 index, OPJ_UINT32 cblksty, OPJ_UINT32 first) 
 {
 	opj_tcd_seg_t* seg = 00;
 	OPJ_UINT32 l_nb_segs = index + 1;
@@ -421,12 +421,12 @@ static bool t2_init_seg(opj_tcd_cblk_dec_t* cblk, OPJ_UINT32 index, OPJ_UINT32 c
 	return true;
 }
 
-static bool t2_read_packet_header(
+static OPJ_BOOL t2_read_packet_header(
 							 opj_t2_t* p_t2,
 							 opj_tcd_tile_t *p_tile,
                              opj_tcp_t *p_tcp, 
 							 opj_pi_iterator_t *p_pi,
-							 bool * p_is_data_present,
+							 OPJ_BOOL * p_is_data_present,
 							 OPJ_BYTE *p_src_data, 
 							 OPJ_UINT32 * p_data_read,
 							 OPJ_UINT32 p_max_length, 
@@ -703,7 +703,7 @@ static bool t2_read_packet_header(
 	return true;
 }
 
-static bool t2_read_packet_data(
+static OPJ_BOOL t2_read_packet_data(
 							 opj_t2_t* p_t2,
 							 opj_tcd_tile_t *p_tile,
 							 opj_pi_iterator_t *p_pi,
@@ -822,7 +822,7 @@ static bool t2_read_packet_data(
 }
 
 
-static bool t2_skip_packet_data(
+static OPJ_BOOL t2_skip_packet_data(
 							 opj_t2_t* p_t2,
 							 opj_tcd_tile_t *p_tile,
 							 opj_pi_iterator_t *p_pi,
@@ -925,7 +925,7 @@ static bool t2_skip_packet_data(
 	return true;
 }
 
-static bool t2_decode_packet(
+static OPJ_BOOL t2_decode_packet(
 							 opj_t2_t* p_t2,
 							 opj_tcd_tile_t *p_tile,
                              opj_tcp_t *p_tcp, 
@@ -935,7 +935,7 @@ static bool t2_decode_packet(
 							 OPJ_UINT32 p_max_length,  
 							 opj_packet_info_t *p_pack_info)
 {
-	bool l_read_data;
+	OPJ_BOOL l_read_data;
 	OPJ_UINT32 l_nb_bytes_read = 0;
 	OPJ_UINT32 l_nb_total_bytes_read = 0;
 
@@ -965,7 +965,7 @@ static bool t2_decode_packet(
 	return true;
 }
 
-static bool t2_skip_packet(
+static OPJ_BOOL t2_skip_packet(
 							 opj_t2_t* p_t2,
 							 opj_tcd_tile_t *p_tile,
                              opj_tcp_t *p_tcp, 
@@ -975,7 +975,7 @@ static bool t2_skip_packet(
 							 OPJ_UINT32 p_max_length,  
 							 opj_packet_info_t *p_pack_info)
 {
-	bool l_read_data;
+	OPJ_BOOL l_read_data;
 	OPJ_UINT32 l_nb_bytes_read = 0;
 	OPJ_UINT32 l_nb_total_bytes_read = 0;
 
@@ -1007,7 +1007,7 @@ static bool t2_skip_packet(
 
 /* ----------------------------------------------------------------------- */
 
-bool t2_encode_packets(
+OPJ_BOOL t2_encode_packets(
 					   opj_t2_t* p_t2,
 					   OPJ_UINT32 p_tile_no, 
 					   opj_tcd_tile_t *p_tile, 
@@ -1136,7 +1136,7 @@ bool t2_encode_packets(
 	return true;
 }
 
-bool t2_decode_packets(
+OPJ_BOOL t2_decode_packets(
 						opj_t2_t *p_t2, 
 						OPJ_UINT32 p_tile_no,
 						struct opj_tcd_tile *p_tile, 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/t2.h b/Utilities/otbopenjpeg/libopenjpeg/t2.h
index 0ecf95bfa5..f25e4771e9 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/t2.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/t2.h
@@ -85,7 +85,7 @@ Encode the packets of a tile to a destination buffer
 @param tppos The position of the tile part flag in the progression order
 @param t2_mode If == 0 In Threshold calculation ,If == 1 Final pass
 */
-bool t2_encode_packets(opj_t2_t* t2,OPJ_UINT32 tileno, struct opj_tcd_tile *tile, OPJ_UINT32 maxlayers, OPJ_BYTE *dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 len, struct opj_codestream_info *cstr_info,OPJ_UINT32 tpnum, OPJ_INT32 tppos,OPJ_UINT32 pino,J2K_T2_MODE t2_mode);
+OPJ_BOOL t2_encode_packets(opj_t2_t* t2,OPJ_UINT32 tileno, struct opj_tcd_tile *tile, OPJ_UINT32 maxlayers, OPJ_BYTE *dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 len, struct opj_codestream_info *cstr_info,OPJ_UINT32 tpnum, OPJ_INT32 tppos,OPJ_UINT32 pino,J2K_T2_MODE t2_mode);
 /**
 Decode the packets of a tile from a source buffer
 @param t2 T2 handle
@@ -94,7 +94,7 @@ Decode the packets of a tile from a source buffer
 @param tileno number that identifies the tile for which to decode the packets
 @param tile tile for which to decode the packets
  */
-bool t2_decode_packets(opj_t2_t *t2, OPJ_UINT32 tileno,struct opj_tcd_tile *tile, OPJ_BYTE *src, OPJ_UINT32 * p_data_read, OPJ_UINT32 len,   struct opj_codestream_info *cstr_info);
+OPJ_BOOL t2_decode_packets(opj_t2_t *t2, OPJ_UINT32 tileno,struct opj_tcd_tile *tile, OPJ_BYTE *src, OPJ_UINT32 * p_data_read, OPJ_UINT32 len,   struct opj_codestream_info *cstr_info);
 
 /**
  * Creates a Tier 2 handle
diff --git a/Utilities/otbopenjpeg/libopenjpeg/tcd.c b/Utilities/otbopenjpeg/libopenjpeg/tcd.c
index b84c2ce5af..b99771c3ce 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/tcd.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/tcd.c
@@ -53,11 +53,11 @@ static void tcd_code_block_enc_deallocate (opj_tcd_precinct_t * p_precinct);
 /**
  * Allocates memory for an encoding code block.
  */
-static bool tcd_code_block_enc_allocate (opj_tcd_cblk_enc_t * p_code_block);
+static OPJ_BOOL tcd_code_block_enc_allocate (opj_tcd_cblk_enc_t * p_code_block);
 /**
  * Allocates memory for a decoding code block.
  */
-static bool tcd_code_block_dec_allocate (opj_tcd_cblk_dec_t * p_code_block);
+static OPJ_BOOL tcd_code_block_dec_allocate (opj_tcd_cblk_dec_t * p_code_block);
 /**
 Free the memory allocated for encoding
 @param tcd TCD handle
@@ -69,7 +69,7 @@ static void tcd_free_tile(opj_tcd_t *tcd);
 /**
 Create a new TCD handle
 */
-opj_tcd_t* tcd_create(bool p_is_decoder) 
+opj_tcd_t* tcd_create(OPJ_BOOL p_is_decoder) 
 {
 	opj_tcd_t *l_tcd = 00;
 
@@ -122,7 +122,7 @@ void tcd_destroy(opj_tcd_t *tcd) {
  * @return true if the encoding values could be set (false otherwise).
 */
 #define MACRO_TCD_ALLOCATE(FUNCTION,TYPE,FRACTION,ELEMENT,FUNCTION_ELEMENT)	\
-bool FUNCTION																\
+OPJ_BOOL FUNCTION																\
 			(																\
 				opj_tcd_t *p_tcd,											\
 				OPJ_UINT32 p_tile_no										\
@@ -488,7 +488,7 @@ MACRO_TCD_ALLOCATE(tcd_init_decode_tile,opj_tcd_cblk_dec_t,0.5f,dec,tcd_code_blo
 /**
  * Allocates memory for an encoding code block.
  */
-bool tcd_code_block_enc_allocate (opj_tcd_cblk_enc_t * p_code_block)
+OPJ_BOOL tcd_code_block_enc_allocate (opj_tcd_cblk_enc_t * p_code_block)
 {	
 	if	
 		(! p_code_block->data)
@@ -522,7 +522,7 @@ bool tcd_code_block_enc_allocate (opj_tcd_cblk_enc_t * p_code_block)
 /**
  * Allocates memory for a decoding code block.
  */
-bool tcd_code_block_dec_allocate (opj_tcd_cblk_dec_t * p_code_block)
+OPJ_BOOL tcd_code_block_dec_allocate (opj_tcd_cblk_dec_t * p_code_block)
 {	
 	OPJ_UINT32 l_seg_size;
 
@@ -718,7 +718,7 @@ void tcd_free_tile(opj_tcd_t *p_tcd)
 	p_tcd->tcd_image->tiles = 00;
 }
 
-bool tcd_init(
+OPJ_BOOL tcd_init(
 					   opj_tcd_t *p_tcd, 
 					   opj_image_t * p_image, 
 					   opj_cp_t * p_cp
@@ -915,7 +915,7 @@ void tcd_makelayer(opj_tcd_t *tcd, OPJ_UINT32 layno, OPJ_FLOAT64 thresh, OPJ_UIN
 	}
 }
 
-bool tcd_rateallocate(opj_tcd_t *tcd, OPJ_BYTE *dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 len, opj_codestream_info_t *cstr_info) {
+OPJ_BOOL tcd_rateallocate(opj_tcd_t *tcd, OPJ_BYTE *dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 len, opj_codestream_info_t *cstr_info) {
 	OPJ_UINT32 compno, resno, bandno, precno, cblkno, layno;
 	OPJ_UINT32 passno;
 	OPJ_FLOAT64 min, max;
@@ -995,7 +995,7 @@ bool tcd_rateallocate(opj_tcd_t *tcd, OPJ_BYTE *dest, OPJ_UINT32 * p_data_writte
 	for (layno = 0; layno < tcd_tcp->numlayers; layno++) {
 		OPJ_FLOAT64 lo = min;
 		OPJ_FLOAT64 hi = max;
-		bool success = false;
+		OPJ_BOOL success = false;
 		OPJ_UINT32 maxlen = tcd_tcp->rates[layno] ? uint_min(((OPJ_UINT32) ceil(tcd_tcp->rates[layno])), len) : len;
 		OPJ_FLOAT64 goodthresh = 0;
 		OPJ_FLOAT64 stable_thresh = 0;
@@ -1126,7 +1126,7 @@ OPJ_UINT32 tcd_get_encoded_tile_size (
 	return l_data_size;
 }
 
-bool tcd_copy_tile_data (
+OPJ_BOOL tcd_copy_tile_data (
 						 opj_tcd_t *p_tcd,
 						 OPJ_BYTE * p_src,
 						 OPJ_UINT32 p_src_length
@@ -1233,7 +1233,7 @@ bool tcd_copy_tile_data (
 	return true;
 }
 
-bool tcd_update_tile_data (
+OPJ_BOOL tcd_update_tile_data (
 						 opj_tcd_t *p_tcd,
 						 OPJ_BYTE * p_dest,
 						 OPJ_UINT32 p_dest_length
@@ -1406,7 +1406,7 @@ OPJ_UINT32 tcd_get_decoded_tile_size (
 	return l_data_size;
 }
 
-bool tcd_dc_level_shift_encode (
+OPJ_BOOL tcd_dc_level_shift_encode (
 						 opj_tcd_t *p_tcd
 						 )
 {
@@ -1455,7 +1455,7 @@ bool tcd_dc_level_shift_encode (
 	return true;
 }
 
-bool tcd_mct_encode (
+OPJ_BOOL tcd_mct_encode (
 					 opj_tcd_t *p_tcd
 					 )
 {
@@ -1520,7 +1520,7 @@ bool tcd_mct_encode (
 	return true;
 }
 
-bool tcd_dwt_encode (
+OPJ_BOOL tcd_dwt_encode (
 					  opj_tcd_t *p_tcd
 					 )
 {
@@ -1557,7 +1557,7 @@ bool tcd_dwt_encode (
 	return true;
 }
 
-bool tcd_t1_encode (
+OPJ_BOOL tcd_t1_encode (
 					  opj_tcd_t *p_tcd
 					 )
 {
@@ -1600,7 +1600,7 @@ bool tcd_t1_encode (
 	return true;
 }
 
-bool tcd_t2_encode (
+OPJ_BOOL tcd_t2_encode (
 					opj_tcd_t *p_tcd, 
 					OPJ_BYTE * p_dest_data, 
 					OPJ_UINT32 * p_data_written,
@@ -1641,7 +1641,7 @@ bool tcd_t2_encode (
 	return true;
 }
 
-bool tcd_rate_allocate_encode(
+OPJ_BOOL tcd_rate_allocate_encode(
 						opj_tcd_t *p_tcd, 
 						OPJ_BYTE * p_dest_data, 
 						OPJ_UINT32 p_max_dest_size,
@@ -1674,7 +1674,7 @@ bool tcd_rate_allocate_encode(
 	return true;
 }
 
-bool tcd_t2_decode (
+OPJ_BOOL tcd_t2_decode (
 					opj_tcd_t *p_tcd, 
 					OPJ_BYTE * p_src_data, 
 					OPJ_UINT32 * p_data_read,
@@ -1710,7 +1710,7 @@ bool tcd_t2_decode (
 	return true;
 }
 
-bool tcd_t1_decode (
+OPJ_BOOL tcd_t1_decode (
 					  opj_tcd_t *p_tcd
 					 )
 {
@@ -1739,7 +1739,7 @@ bool tcd_t1_decode (
 	return true;
 }
 
-bool tcd_dwt_decode (
+OPJ_BOOL tcd_dwt_decode (
 					  opj_tcd_t *p_tcd
 					 )
 {
@@ -1787,7 +1787,7 @@ bool tcd_dwt_decode (
 	}
 	return true;
 }
-bool tcd_mct_decode (
+OPJ_BOOL tcd_mct_decode (
 					  opj_tcd_t *p_tcd
 					 )
 {
@@ -1863,7 +1863,7 @@ bool tcd_mct_decode (
 	return true;
 }
 
-bool tcd_dc_level_shift_decode (
+OPJ_BOOL tcd_dc_level_shift_decode (
 						 opj_tcd_t *p_tcd
 						 )
 {
@@ -1941,7 +1941,7 @@ bool tcd_dc_level_shift_decode (
 	return true;
 }
 
-bool tcd_encode_tile(
+OPJ_BOOL tcd_encode_tile(
 					 opj_tcd_t *p_tcd, 
 					 OPJ_UINT32 p_tile_no, 
 					 OPJ_BYTE *p_dest, 
@@ -2036,7 +2036,7 @@ bool tcd_encode_tile(
 	return true;
 }
 
-bool tcd_decode_tile(
+OPJ_BOOL tcd_decode_tile(
 					 opj_tcd_t *p_tcd, 
 					 OPJ_BYTE *p_src, 
 					 OPJ_UINT32 p_max_length, 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/tcd.h b/Utilities/otbopenjpeg/libopenjpeg/tcd.h
index 95d49d4764..8b2a12c261 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/tcd.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/tcd.h
@@ -227,7 +227,7 @@ Create a new TCD handle
 @param cinfo Codec context info
 @return Returns a new TCD handle if successful returns NULL otherwise
 */
-opj_tcd_t* tcd_create(bool p_is_decoder);
+opj_tcd_t* tcd_create(OPJ_BOOL p_is_decoder);
 
 /**
 Destroy a previously created TCD handle
@@ -247,7 +247,7 @@ void tcd_destroy(opj_tcd_t *tcd);
  * 
  * @return true if the encoding values could be set (false otherwise).
 */
-bool tcd_init(
+OPJ_BOOL tcd_init(
 						opj_tcd_t *p_tcd, 
 						struct opj_image * p_image, 
 						struct opj_cp * p_cp
@@ -266,7 +266,7 @@ bool tcd_init(
  * 
  * @return	true if the remaining data is sufficient.s
  */
-bool tcd_init_decode_tile(
+OPJ_BOOL tcd_init_decode_tile(
 							opj_tcd_t *p_tcd, 
 							OPJ_UINT32 p_tile_no
 							); 
@@ -279,7 +279,7 @@ bool tcd_init_decode_tile(
  * 
  * @return true if the encoding values could be set (false otherwise).
 */
-bool tcd_init_encode_tile
+OPJ_BOOL tcd_init_encode_tile
 							(
 							opj_tcd_t *p_tcd, 
 							OPJ_UINT32 p_tile_no
@@ -288,7 +288,7 @@ bool tcd_init_encode_tile
 void tcd_makelayer_fixed(opj_tcd_t *tcd, OPJ_UINT32 layno, OPJ_UINT32 final);
 void tcd_rateallocate_fixed(opj_tcd_t *tcd);
 void tcd_makelayer(opj_tcd_t *tcd, OPJ_UINT32 layno, OPJ_FLOAT64 thresh, OPJ_UINT32 final);
-bool tcd_rateallocate(opj_tcd_t *tcd, OPJ_BYTE *dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 len, struct opj_codestream_info *cstr_info);
+OPJ_BOOL tcd_rateallocate(opj_tcd_t *tcd, OPJ_BYTE *dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 len, struct opj_codestream_info *cstr_info);
 /**
  * Encodes a tile from the raw image into the given buffer.
  * @param	p_tcd			Tile Coder handle
@@ -299,7 +299,7 @@ bool tcd_rateallocate(opj_tcd_t *tcd, OPJ_BYTE *dest, OPJ_UINT32 * p_data_writte
  * @param	p_cstr_info		Codestream information structure 
  * @return  true if the coding is successfull.
 */
-bool tcd_encode_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no, OPJ_BYTE *p_dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 p_len, struct opj_codestream_info *p_cstr_info);
+OPJ_BOOL tcd_encode_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no, OPJ_BYTE *p_dest, OPJ_UINT32 * p_data_written, OPJ_UINT32 p_len, struct opj_codestream_info *p_cstr_info);
 
 /**
 Decode a tile from a buffer into a raw image
@@ -308,12 +308,12 @@ Decode a tile from a buffer into a raw image
 @param len Length of source buffer
 @param tileno Number that identifies one of the tiles to be decoded
 */
-bool tcd_decode_tile(opj_tcd_t *tcd, OPJ_BYTE *src, OPJ_UINT32 len, OPJ_UINT32 tileno, struct opj_codestream_info *cstr_info);
+OPJ_BOOL tcd_decode_tile(opj_tcd_t *tcd, OPJ_BYTE *src, OPJ_UINT32 len, OPJ_UINT32 tileno, struct opj_codestream_info *cstr_info);
 
 /**
  * Copies tile data from the given memory block onto the system.
  */
-bool tcd_copy_tile_data (
+OPJ_BOOL tcd_copy_tile_data (
 						 opj_tcd_t *p_tcd,
 						 OPJ_BYTE * p_src,
 						 OPJ_UINT32 p_src_length
@@ -321,7 +321,7 @@ bool tcd_copy_tile_data (
 /**
  * Copies tile data from the system onto the given memory block.
  */
-bool tcd_update_tile_data (
+OPJ_BOOL tcd_update_tile_data (
 						 opj_tcd_t *p_tcd,
 						 OPJ_BYTE * p_dest,
 						 OPJ_UINT32 p_dest_length
-- 
GitLab