diff options
| author | Freeimage <freeimage@aliceadsl.fr> | 2006-02-01 21:25:11 +0000 |
|---|---|---|
| committer | Freeimage <freeimage@aliceadsl.fr> | 2006-02-01 21:25:11 +0000 |
| commit | 8d7b0c9c0564514d7edd36e8cc260a267c7d4213 (patch) | |
| tree | 96dc1e56c0d55b58b4c5a9f14f75ae240e2b9083 /libopenjpeg | |
| parent | 33b5757921fd177c063e1b885f6816bc0350664c (diff) | |
changed function definitions of INT and FIX modules to 'inline'
Diffstat (limited to 'libopenjpeg')
| -rw-r--r-- | libopenjpeg/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | libopenjpeg/fix.c | 45 | ||||
| -rw-r--r-- | libopenjpeg/fix.h | 14 | ||||
| -rw-r--r-- | libopenjpeg/int.c | 72 | ||||
| -rw-r--r-- | libopenjpeg/int.h | 43 | ||||
| -rw-r--r-- | libopenjpeg/opj_includes.h | 17 |
6 files changed, 62 insertions, 131 deletions
diff --git a/libopenjpeg/CMakeLists.txt b/libopenjpeg/CMakeLists.txt index 9200772e..1355b4ae 100644 --- a/libopenjpeg/CMakeLists.txt +++ b/libopenjpeg/CMakeLists.txt @@ -5,9 +5,7 @@ SET(OpenJPEG_SRCS cio.c dwt.c event.c - fix.c image.c - int.c j2k.c j2k_lib.c jp2.c diff --git a/libopenjpeg/fix.c b/libopenjpeg/fix.c deleted file mode 100644 index e9ba82be..00000000 --- a/libopenjpeg/fix.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2001-2003, David Janssens - * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe - * Copyright (c) 2005, Hervé Drolon, FreeImage Team - * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "fix.h" - -#if defined(_MSC_VER) || defined(__BORLANDC__) -#define int64 __int64 -#else -#define int64 long long -#endif - -int fix_mul(int a, int b) { - int64 temp = (int64) a * (int64) b >> 12; - return (int) ((temp >> 1) + (temp & 1)) ; -} - - - diff --git a/libopenjpeg/fix.h b/libopenjpeg/fix.h index b5b62e67..9dd5839a 100644 --- a/libopenjpeg/fix.h +++ b/libopenjpeg/fix.h @@ -29,11 +29,18 @@ */ #ifndef __FIX_H #define __FIX_H + +#if defined(_MSC_VER) || defined(__BORLANDC__) +#define int64 __int64 +#else +#define int64 long long +#endif + /** @file fix.h @brief Implementation of operations of specific multiplication (FIX) -The functions in FIX.C have for goal to realize specific multiplication. +The functions in FIX.H have for goal to realize specific multiplication. */ /** @defgroup FIX FIX - Implementation of operations of specific multiplication */ @@ -45,7 +52,10 @@ Multiply two fixed-precision rational numbers. @param b @return Returns a * b */ -int fix_mul(int a, int b); +INLINE int fix_mul(int a, int b) { + int64 temp = (int64) a * (int64) b >> 12; + return (int) ((temp >> 1) + (temp & 1)) ; +} /*@}*/ diff --git a/libopenjpeg/int.c b/libopenjpeg/int.c deleted file mode 100644 index a2e297eb..00000000 --- a/libopenjpeg/int.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2001-2003, David Janssens - * Copyright (c) 2002-2003, Yannick Verschueren - * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe - * Copyright (c) 2005, Hervé Drolon, FreeImage Team - * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "opj_includes.h" - -int int_min(int a, int b) { - return a < b ? a : b; -} - -int int_max(int a, int b) { - return (a > b) ? a : b; -} - -int int_clamp(int a, int min, int max) { - if (a < min) - return min; - if (a > max) - return max; - return a; -} - -int int_abs(int a) { - return a < 0 ? -a : a; -} - -int int_ceildiv(int a, int b) { - return (a + b - 1) / b; -} - -int int_ceildivpow2(int a, int b) { - return (a + (1 << b) - 1) >> b; -} - -int int_floordivpow2(int a, int b) { - return a >> b; -} - -int int_floorlog2(int a) { - int l; - for (l = 0; a > 1; l++) { - a >>= 1; - } - return l; -} - diff --git a/libopenjpeg/int.h b/libopenjpeg/int.h index aff0905f..9d738685 100644 --- a/libopenjpeg/int.h +++ b/libopenjpeg/int.h @@ -33,7 +33,7 @@ @file int.h @brief Implementation of operations on integers (INT) -The functions in INT.C have for goal to realize operations on integers. +The functions in INT.H have for goal to realize operations on integers. */ /** @defgroup INT INT - Implementation of operations on integers */ @@ -46,12 +46,16 @@ The functions in INT.C have for goal to realize operations on integers. Get the minimum of two integers @return Returns a if a < b else b */ -int int_min(int a, int b); +INLINE int int_min(int a, int b) { + return a < b ? a : b; +} /** Get the maximum of two integers @return Returns a if a > b else b */ -int int_max(int a, int b); +INLINE int int_max(int a, int b) { + return (a > b) ? a : b; +} /** Clamp an integer inside an interval @return @@ -61,32 +65,51 @@ Clamp an integer inside an interval <li>Returns min if (a < min) </ul> */ -int int_clamp(int a, int min, int max); +INLINE int int_clamp(int a, int min, int max) { + if (a < min) + return min; + if (a > max) + return max; + return a; +} /** @return Get absolute value of integer */ -int int_abs(int a); +INLINE int int_abs(int a) { + return a < 0 ? -a : a; +} /** Divide an integer and round upwards @return Returns a divided by b */ -int int_ceildiv(int a, int b); +INLINE int int_ceildiv(int a, int b) { + return (a + b - 1) / b; +} /** Divide an integer by a power of 2 and round upwards @return Returns a divided by 2^b */ -int int_ceildivpow2(int a, int b); +INLINE int int_ceildivpow2(int a, int b) { + return (a + (1 << b) - 1) >> b; +} /** Divide an integer by a power of 2 and round downwards @return Returns a divided by 2^b */ -int int_floordivpow2(int a, int b); +INLINE int int_floordivpow2(int a, int b) { + return a >> b; +} /** Get logarithm of an integer and round downwards @return Returns log2(a) */ -int int_floorlog2(int a); - +INLINE int int_floorlog2(int a) { + int l; + for (l = 0; a > 1; l++) { + a >>= 1; + } + return l; +} /* ----------------------------------------------------------------------- */ /*@}*/ diff --git a/libopenjpeg/opj_includes.h b/libopenjpeg/opj_includes.h index 565131ee..5cf64ba7 100644 --- a/libopenjpeg/opj_includes.h +++ b/libopenjpeg/opj_includes.h @@ -54,6 +54,23 @@ ========================================================== */ +/* +The inline keyword is supported by C99 but not by C90. +Most compilers implement their own version of this keyword ... +*/ +#ifndef INLINE + #if defined(_MSC_VER) + #define INLINE __inline + #elif defined(__GNUC__) + #define INLINE __inline__ + #elif defined(__MWERKS__) + #define INLINE inline + #else + /* add other compilers here ... */ + #define INLINE + #endif /* defined(<Compiler>) */ +#endif /* INLINE */ + #include "j2k_lib.h" #include "event.h" #include "cio.h" |
