diff --git a/autobuild.xml b/autobuild.xml index 336f747788..8ba3838f18 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1142,9 +1142,9 @@ archive hash - ff0952c33712212994ffeda118c5c6ef + ab2ee5cce7db268d28f245ff1a34532b url - file:///opt/firestorm/kdu-7.1-darwin_universal-20131111.tar.bz2 + file:///opt/firestorm/kdu-7.3.2-darwin-20131204.tar.bz2 name darwin @@ -1154,9 +1154,9 @@ archive hash - 377d83210badfe1782c3537bfe29b0d4 + 03350c4f0aa32e56bba4979b598a6fc2 url - file:///opt/firestorm/kdu-7.1-linux_x86-20121212.tar.bz2 + file:///opt/firestorm/kdu-7.3.2-linux-20131204.tar.bz2 name linux @@ -1166,9 +1166,9 @@ archive hash - 86c3966fc383e2611345ec8b81da5739 + 20ea3d68affefca2b31b60f2ea3e2a96 url - file:///c:/cygwin/opt/firestorm//kdu-7.1-windows_x86-20121212.tar.bz2 + file:///c:/cygwin/opt/firestorm//kdu-7.3.2-windows-201311204.tar.bz2 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.