Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
project(jxrlib C)
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
cmake_policy(VERSION 3.9)

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

set(JXRLIB_HEADER_FILES
common/include/guiddef.h
common/include/wmsal.h
common/include/wmspecstring.h
common/include/wmspecstrings_adt.h
common/include/wmspecstrings_strict.h

image/sys/windowsmediaphoto.h

jxrgluelib/JXRGlue.h
jxrgluelib/JXRMeta.h

jxrtestlib/JXRTest.h
)

add_library(jxrlib STATIC

image/decode/JXRTranscode.c
image/decode/decode.c
image/decode/postprocess.c
image/decode/segdec.c
image/decode/strInvTransform.c
image/decode/strPredQuantDec.c
image/decode/strdec.c
image/decode/strdec_x86.c

image/encode/encode.c
image/encode/segenc.c
image/encode/strFwdTransform.c
image/encode/strPredQuantEnc.c
image/encode/strenc.c
image/encode/strenc_x86.c

image/sys/adapthuff.c
image/sys/image.c
image/sys/perfTimerANSI.c
image/sys/strPredQuant.c
image/sys/strTransform.c
image/sys/strcodec.c

jxrgluelib/JXRGlue.c
jxrgluelib/JXRGlueJxr.c
jxrgluelib/JXRGluePFC.c
jxrgluelib/JXRMeta.c

jxrtestlib/JXRTest.c
jxrtestlib/JXRTestBmp.c
jxrtestlib/JXRTestHdr.c
jxrtestlib/JXRTestPnm.c
jxrtestlib/JXRTestTif.c
jxrtestlib/JXRTestYUV.c
)
add_library(jxrlib::jxrlib ALIAS jxrlib)

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") # Clang + AppleClang
target_compile_options(jxrlib
PUBLIC
-Wno-extra-tokens
PRIVATE
-Wno-unused-value
-Wno-dangling-else
-Wno-constant-conversion
-Wno-shift-negative-value
-Wno-implicit-function-declaration
-Wno-deprecated-declarations
-Wno-incompatible-pointer-types
-Wno-incompatible-pointer-types-discards-qualifiers
)
endif()

target_compile_definitions(jxrlib
PUBLIC
__ANSI__
DISABLE_PERF_MEASUREMENT
)

include(GNUInstallDirs)

set(JXRLIB_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/jxrlib)
set(JXRLIB_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/jxrlib)
set(JXRLIB_LIBDIR ${CMAKE_INSTALL_LIBDIR})

target_include_directories(jxrlib
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/common/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/image/sys>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/image/x86>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/jxrgluelib>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/jxrtestlib>
$<INSTALL_INTERFACE:${JXRLIB_INCLUDEDIR}>
)

install(TARGETS jxrlib
EXPORT
jxrlib_targets
LIBRARY DESTINATION ${JXRLIB_LIBDIR}
ARCHIVE DESTINATION ${JXRLIB_LIBDIR}
)

install(FILES ${JXRLIB_HEADER_FILES}
DESTINATION ${JXRLIB_INCLUDEDIR}
COMPONENT Devel
)

install(EXPORT jxrlib_targets
FILE jxrlib_targets.cmake
NAMESPACE jxrlib::
DESTINATION ${JXRLIB_CONFIGDIR}
)

include(CMakePackageConfigHelpers)

configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/jxrlibConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/jxrlibConfig.cmake
INSTALL_DESTINATION ${JXRLIB_CONFIGDIR}
)

install(FILES
${CMAKE_CURRENT_BINARY_DIR}/jxrlibConfig.cmake
DESTINATION ${JXRLIB_CONFIGDIR}
)
2 changes: 2 additions & 0 deletions common/include/guiddef.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,9 @@ typedef struct _GUID {
EXTERN_C const GUID FAR name
#endif // INITGUID

#if _MSC_VER < 1900
#define DEFINE_OLEGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46)
#endif

#ifndef _GUIDDEF_H_
#define _GUIDDEF_H_
Expand Down
9 changes: 6 additions & 3 deletions image/decode/segdec.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ static U32 _FORCEINLINE _load4(void* pv)
v |= ((U32)((U16 *) pv)[1]) << 16;
return _byteswap_ulong(v);
#else // _M_IA64
return _byteswap_ulong(*(U32*)pv);
U32 v;
memcpy(&v, pv, sizeof(U32));
return _byteswap_ulong(v);
#endif // _M_IA64
#endif // _BIG__ENDIAN_
}
Expand Down Expand Up @@ -959,8 +961,9 @@ Int DecodeMacroblockLowpass (CWMImageStrCodec * pSC, CCodingContext *pContext,
pCoeffs[k] += getBits (pIO, iModelBits);
}
else if (pCoeffs[k] < 0) {
pCoeffs[k] <<= iModelBits;
pCoeffs[k] -= getBits (pIO, iModelBits);
// left-shift the positive value and set the negative sign back afterwards
pCoeffs[k] = -(-pCoeffs[k] << iModelBits);
pCoeffs[k] -= getBits(pIO, iModelBits);
}
#endif // WIN32
else {
Expand Down
4 changes: 3 additions & 1 deletion image/encode/strenc.c
Original file line number Diff line number Diff line change
Expand Up @@ -482,8 +482,10 @@ Int StrIOEncInit(CWMImageStrCodec* pSC)
pSC->ppTempFile[i] = (char *)malloc(FILENAME_MAX * sizeof(char));
if(pSC->ppTempFile[i] == NULL) return ICERR_ERROR;

if ((pFilename = tmpnam(NULL)) == NULL)
char tmpnambuf[] = {'f', 'i', 'l', 'e', 'X', 'X', 'X', 'X', 'X', 'X', '\0'};
if (mkstemp(tmpnambuf) == -1)
return ICERR_ERROR;
pFilename = tmpnambuf;
strcpy(pSC->ppTempFile[i], pFilename);
#endif
if(CreateWS_File(pSC->ppWStream + i, pFilename, "w+b") != ICERR_OK) return ICERR_ERROR;
Expand Down
4 changes: 3 additions & 1 deletion image/sys/adapthuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

#include "strcodec.h"

#include <limits.h>

#ifdef MEM_TRACE
#define TRACE_MALLOC 1
#define TRACE_NEW 0
Expand Down Expand Up @@ -459,7 +461,7 @@ Void AdaptDiscriminant (CAdaptiveHuffman *pAdHuff)
assert (t < gMaxTables[iSym]);

//pAdHuff->m_iDiscriminant >>= 1;
pAdHuff->m_iLowerBound = (t == 0) ? (-1 << 31) : -THRESHOLD;
pAdHuff->m_iLowerBound = (t == 0) ? INT_MIN : -THRESHOLD;
pAdHuff->m_iUpperBound = (t == gMaxTables[iSym] - 1) ? (1 << 30) : THRESHOLD;

switch (iSym) {
Expand Down
21 changes: 4 additions & 17 deletions image/sys/ansi.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
//*@@@---@@@@******************************************************************
#pragma once

#include <stdint.h>

//================================
// bitio functions
//================================
Expand All @@ -42,20 +44,5 @@
//================================
// common defines
//================================
#define FORCE_INLINE
#define CDECL
#if __LP64__
#define UINTPTR_T unsigned long long
#define INTPTR_T long long
#else
#define UINTPTR_T unsigned int
#define INTPTR_T int
#endif


//================================
// quantization optimization
//================================
//#define RECIP_QUANT_OPT


#define UINTPTR_T uintptr_t
#define INTPTR_T intptr_t
1 change: 0 additions & 1 deletion image/sys/image.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
//*@@@---@@@@******************************************************************

#include "strcodec.h"
// #include "xplatform_image.h"

#ifdef MEM_TRACE
#define TRACE_MALLOC 1
Expand Down
6 changes: 5 additions & 1 deletion image/sys/strcodec.c
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,7 @@ ERR detach_SB(SimpleBitIO* pSB)
#ifdef _BIG__ENDIAN_
#define _byteswap_ulong(x) (x)
#else // _BIG__ENDIAN_
#if _MSC_VER < 1924
U32 _byteswap_ulong(U32 bits)
{
U32 r = (bits & 0xffu) << 24;
Expand All @@ -680,6 +681,7 @@ U32 _byteswap_ulong(U32 bits)

return r;
}
#endif // _MSC_VER
#endif // _BIG__ENDIAN_
#endif

Expand All @@ -694,7 +696,9 @@ U32 load4BE(void* pv)
v |= ((U32)((U16 *) pv)[1]) << 16;
return _byteswap_ulong(v);
#else // _M_IA64
return _byteswap_ulong(*(U32*)pv);
U32 v;
memcpy(&v, pv, sizeof(U32));
return _byteswap_ulong(v);
#endif // _M_IA64
#endif // _BIG__ENDIAN_
}
Expand Down
3 changes: 1 addition & 2 deletions image/sys/strcodec.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@

#include "windowsmediaphoto.h"
#include "common.h"
// #include "xplatform_image.h"

// added for Xcode PK universal binary
#ifdef __ppc__
Expand Down Expand Up @@ -64,7 +63,7 @@

#ifndef UNREFERENCED_PARAMETER
#define UNREFERENCED_PARAMETER(P) { (P) = (P); }
#endif UNREFERENCED_PARAMETER
#endif // UNREFERENCED_PARAMETER

#ifdef UNDER_CE
#define PLATFORM_WCE
Expand Down
84 changes: 0 additions & 84 deletions image/sys/xplatform_image.h

This file was deleted.

6 changes: 0 additions & 6 deletions image/x86/x86.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,3 @@
#define INTPTR_T intptr_t


//================================
// quantization optimization
//================================
#define RECIP_QUANT_OPT


Loading