diff --git a/autobuild.xml b/autobuild.xml
index 336f747788..8ba3838f18 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1142,9 +1142,9 @@
archive
name
darwin
@@ -1154,9 +1154,9 @@
archive
name
linux
@@ -1166,9 +1166,9 @@
archive
name
windows
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
index fdf30338ac..154ab1bb9a 100755
--- a/indra/cmake/LLKDU.cmake
+++ b/indra/cmake/LLKDU.cmake
@@ -7,6 +7,14 @@ if (INSTALL_PROPRIETARY)
set(USE_KDU ON CACHE BOOL "Use Kakadu library.")
endif (INSTALL_PROPRIETARY)
+set( ND_KDU_SUFFIX "" )
+if( ND_BUILD64BIT_ARCH )
+ if( WINDOWS OR LINUX )
+ set( ND_KDU_SUFFIX "_x64" )
+ endif( WINDOWS OR LINUX )
+endif( ND_BUILD64BIT_ARCH )
+
+
if (USE_KDU)
if (STANDALONE)
include(FindKDU)
@@ -14,9 +22,9 @@ if (USE_KDU)
include(Prebuilt)
use_prebuilt_binary(kdu)
if (WINDOWS)
- set(KDU_LIBRARY kdu.lib)
+ set(KDU_LIBRARY kdu${ND_KDU_SUFFIX}.lib)
else (WINDOWS)
- set(KDU_LIBRARY libkdu.a)
+ set(KDU_LIBRARY libkdu${ND_KDU_SUFFIX}.a)
endif (WINDOWS)
set(KDU_INCLUDE_DIR ${AUTOBUILD_INSTALL_DIR}/include/kdu)
endif (STANDALONE)
diff --git a/indra/llkdu/llimagej2ckdu.cpp b/indra/llkdu/llimagej2ckdu.cpp
index 4d7678e09c..fbf1dc0e93 100755
--- a/indra/llkdu/llimagej2ckdu.cpp
+++ b/indra/llkdu/llimagej2ckdu.cpp
@@ -114,7 +114,11 @@ const char* fallbackEngineInfoLLImageJ2CImpl()
class LLKDUDecodeState
{
public:
- LLKDUDecodeState(kdu_tile tile, kdu_byte *buf, S32 row_gap);
+ // KDU 7.3.2 upgrade
+ // LLKDUDecodeState(kdu_tile tile, kdu_byte *buf, S32 row_gap);
+ LLKDUDecodeState(kdu_tile tile, kdu_byte *buf, S32 row_gap, kdu_codestream &aStream );
+ //
+
~LLKDUDecodeState();
BOOL processTileDecode(F32 decode_time, BOOL limit_time = TRUE);
@@ -511,7 +515,12 @@ BOOL LLImageJ2CKDU::decodeImpl(LLImageJ2C &base, LLImageRaw &raw_image, F32 deco
kdu_coords offset = tile_dims.pos - dims.pos;
int row_gap = channels*dims.size.x; // inter-row separation
kdu_byte *buf = buffer + offset.y*row_gap + offset.x*channels;
- mDecodeState = new LLKDUDecodeState(tile, buf, row_gap);
+
+ // KDU 7.3.2 upgrade
+ // mDecodeState = new LLKDUDecodeState(tile, buf, row_gap);
+ mDecodeState = new LLKDUDecodeState(tile, buf, row_gap, *mCodeStreamp);
+ //
+
}
// Do the actual processing
F32 remaining_time = decode_time - decode_timer.getElapsedTimeF32();
@@ -1159,7 +1168,10 @@ all necessary level shifting, type conversion, rounding and truncation. */
}
}
-LLKDUDecodeState::LLKDUDecodeState(kdu_tile tile, kdu_byte *buf, S32 row_gap)
+// KDU 7.3.2 upgrade
+// LLKDUDecodeState::LLKDUDecodeState(kdu_tile tile, kdu_byte *buf, S32 row_gap)
+LLKDUDecodeState::LLKDUDecodeState(kdu_tile tile, kdu_byte *buf, S32 row_gap, kdu_codestream &aStream )
+//
{
S32 c;
@@ -1205,7 +1217,12 @@ LLKDUDecodeState::LLKDUDecodeState(kdu_tile tile, kdu_byte *buf, S32 row_gap)
mEngines[c] = kdu_synthesis(res,&mAllocator,use_shorts);
}
}
- mAllocator.finalize(); // Actually creates buffering resources
+
+ // KDU 7.3.2 upgrade
+ // mAllocator.finalize(); // Actually creates buffering resources
+ mAllocator.finalize( aStream ); // Actually creates buffering resources
+ //
+
for (c = 0; c < mNumComponents; c++)
{
mLines[c].create(); // Grabs resources from the allocator.