mirror of https://github.com/opencv/opencv.git
pull/13383/head
parent
0e0929af15
commit
6985540744
41 changed files with 1603 additions and 8454 deletions
@ -1,266 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2002-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Color Management |
||||
* |
||||
* $Id: jas_cm.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_CM_H |
||||
#define JAS_CM_H |
||||
|
||||
#include <jasper/jas_config.h> |
||||
#include <jasper/jas_icc.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
typedef int jas_clrspc_t; |
||||
|
||||
/* transform operations */ |
||||
#define JAS_CMXFORM_OP_FWD 0 |
||||
#define JAS_CMXFORM_OP_REV 1 |
||||
#define JAS_CMXFORM_OP_PROOF 2 |
||||
#define JAS_CMXFORM_OP_GAMUT 3 |
||||
|
||||
/* rendering intents */ |
||||
#define JAS_CMXFORM_INTENT_PER 0 |
||||
#define JAS_CMXFORM_INTENT_RELCLR 1 |
||||
#define JAS_CMXFORM_INTENT_ABSCLR 2 |
||||
#define JAS_CMXFORM_INTENT_SAT 3 |
||||
#define JAS_CMXFORM_NUMINTENTS 4 |
||||
|
||||
#define JAS_CMXFORM_OPTM_SPEED 0 |
||||
#define JAS_CMXFORM_OPTM_SIZE 1 |
||||
#define JAS_CMXFORM_OPTM_ACC 2 |
||||
|
||||
|
||||
#define jas_clrspc_create(fam, mbr) (((fam) << 8) | (mbr)) |
||||
#define jas_clrspc_fam(clrspc) ((clrspc) >> 8) |
||||
#define jas_clrspc_mbr(clrspc) ((clrspc) & 0xff) |
||||
#define jas_clrspc_isgeneric(clrspc) (!jas_clrspc_mbr(clrspc)) |
||||
#define jas_clrspc_isunknown(clrspc) ((clrspc) & JAS_CLRSPC_UNKNOWNMASK) |
||||
|
||||
#define JAS_CLRSPC_UNKNOWNMASK 0x4000 |
||||
|
||||
/* color space families */ |
||||
#define JAS_CLRSPC_FAM_UNKNOWN 0 |
||||
#define JAS_CLRSPC_FAM_XYZ 1 |
||||
#define JAS_CLRSPC_FAM_LAB 2 |
||||
#define JAS_CLRSPC_FAM_GRAY 3 |
||||
#define JAS_CLRSPC_FAM_RGB 4 |
||||
#define JAS_CLRSPC_FAM_YCBCR 5 |
||||
|
||||
/* specific color spaces */ |
||||
#define JAS_CLRSPC_UNKNOWN JAS_CLRSPC_UNKNOWNMASK |
||||
#define JAS_CLRSPC_CIEXYZ jas_clrspc_create(JAS_CLRSPC_FAM_XYZ, 1) |
||||
#define JAS_CLRSPC_CIELAB jas_clrspc_create(JAS_CLRSPC_FAM_LAB, 1) |
||||
#define JAS_CLRSPC_SGRAY jas_clrspc_create(JAS_CLRSPC_FAM_GRAY, 1) |
||||
#define JAS_CLRSPC_SRGB jas_clrspc_create(JAS_CLRSPC_FAM_RGB, 1) |
||||
#define JAS_CLRSPC_SYCBCR jas_clrspc_create(JAS_CLRSPC_FAM_YCBCR, 1) |
||||
|
||||
/* generic color spaces */ |
||||
#define JAS_CLRSPC_GENRGB jas_clrspc_create(JAS_CLRSPC_FAM_RGB, 0) |
||||
#define JAS_CLRSPC_GENGRAY jas_clrspc_create(JAS_CLRSPC_FAM_GRAY, 0) |
||||
#define JAS_CLRSPC_GENYCBCR jas_clrspc_create(JAS_CLRSPC_FAM_YCBCR, 0) |
||||
|
||||
#define JAS_CLRSPC_CHANIND_YCBCR_Y 0 |
||||
#define JAS_CLRSPC_CHANIND_YCBCR_CB 1 |
||||
#define JAS_CLRSPC_CHANIND_YCBCR_CR 2 |
||||
|
||||
#define JAS_CLRSPC_CHANIND_RGB_R 0 |
||||
#define JAS_CLRSPC_CHANIND_RGB_G 1 |
||||
#define JAS_CLRSPC_CHANIND_RGB_B 2 |
||||
|
||||
#define JAS_CLRSPC_CHANIND_GRAY_Y 0 |
||||
|
||||
typedef double jas_cmreal_t; |
||||
|
||||
struct jas_cmpxform_s; |
||||
|
||||
typedef struct { |
||||
long *buf; |
||||
int prec; |
||||
int sgnd; |
||||
int width; |
||||
int height; |
||||
} jas_cmcmptfmt_t; |
||||
|
||||
typedef struct { |
||||
int numcmpts; |
||||
jas_cmcmptfmt_t *cmptfmts; |
||||
} jas_cmpixmap_t; |
||||
|
||||
typedef struct { |
||||
void (*destroy)(struct jas_cmpxform_s *pxform); |
||||
int (*apply)(struct jas_cmpxform_s *pxform, jas_cmreal_t *in, jas_cmreal_t *out, int cnt); |
||||
void (*dump)(struct jas_cmpxform_s *pxform); |
||||
} jas_cmpxformops_t; |
||||
|
||||
typedef struct { |
||||
jas_cmreal_t *data; |
||||
int size; |
||||
} jas_cmshapmatlut_t; |
||||
|
||||
typedef struct { |
||||
int mono; |
||||
int order; |
||||
int useluts; |
||||
int usemat; |
||||
jas_cmshapmatlut_t luts[3]; |
||||
jas_cmreal_t mat[3][4]; |
||||
} jas_cmshapmat_t; |
||||
|
||||
typedef struct { |
||||
int order; |
||||
} jas_cmshaplut_t; |
||||
|
||||
typedef struct { |
||||
int inclrspc; |
||||
int outclrspc; |
||||
} jas_cmclrspcconv_t; |
||||
|
||||
#define jas_align_t double |
||||
|
||||
typedef struct jas_cmpxform_s { |
||||
int refcnt; |
||||
jas_cmpxformops_t *ops; |
||||
int numinchans; |
||||
int numoutchans; |
||||
union { |
||||
jas_align_t dummy; |
||||
jas_cmshapmat_t shapmat; |
||||
jas_cmshaplut_t shaplut; |
||||
jas_cmclrspcconv_t clrspcconv; |
||||
} data; |
||||
} jas_cmpxform_t; |
||||
|
||||
typedef struct { |
||||
int numpxforms; |
||||
int maxpxforms; |
||||
jas_cmpxform_t **pxforms; |
||||
} jas_cmpxformseq_t; |
||||
|
||||
typedef struct { |
||||
int numinchans; |
||||
int numoutchans; |
||||
jas_cmpxformseq_t *pxformseq; |
||||
} jas_cmxform_t; |
||||
|
||||
#define JAS_CMPROF_TYPE_DEV 1 |
||||
#define JAS_CMPROF_TYPE_CLRSPC 2 |
||||
|
||||
#define JAS_CMPROF_NUMPXFORMSEQS 13 |
||||
|
||||
typedef struct { |
||||
int clrspc; |
||||
int numchans; |
||||
int refclrspc; |
||||
int numrefchans; |
||||
jas_iccprof_t *iccprof; |
||||
jas_cmpxformseq_t *pxformseqs[JAS_CMPROF_NUMPXFORMSEQS]; |
||||
} jas_cmprof_t; |
||||
|
||||
/* Create a profile. */ |
||||
|
||||
/* Destroy a profile. */ |
||||
void jas_cmprof_destroy(jas_cmprof_t *prof); |
||||
|
||||
#if 0 |
||||
typedef int_fast32_t jas_cmattrname_t; |
||||
typedef int_fast32_t jas_cmattrval_t; |
||||
typedef int_fast32_t jas_cmattrtype_t; |
||||
/* Load a profile. */ |
||||
int jas_cmprof_load(jas_cmprof_t *prof, jas_stream_t *in, int fmt); |
||||
/* Save a profile. */ |
||||
int jas_cmprof_save(jas_cmprof_t *prof, jas_stream_t *out, int fmt); |
||||
/* Set an attribute of a profile. */ |
||||
int jas_cm_prof_setattr(jas_cm_prof_t *prof, jas_cm_attrname_t name, void *val); |
||||
/* Get an attribute of a profile. */ |
||||
void *jas_cm_prof_getattr(jas_cm_prof_t *prof, jas_cm_attrname_t name); |
||||
#endif |
||||
|
||||
jas_cmxform_t *jas_cmxform_create(jas_cmprof_t *inprof, jas_cmprof_t *outprof, |
||||
jas_cmprof_t *proofprof, int op, int intent, int optimize); |
||||
|
||||
void jas_cmxform_destroy(jas_cmxform_t *xform); |
||||
|
||||
/* Apply a transform to data. */ |
||||
int jas_cmxform_apply(jas_cmxform_t *xform, jas_cmpixmap_t *in, |
||||
jas_cmpixmap_t *out); |
||||
|
||||
int jas_cxform_optimize(jas_cmxform_t *xform, int optimize); |
||||
|
||||
int jas_clrspc_numchans(int clrspc); |
||||
jas_cmprof_t *jas_cmprof_createfromiccprof(jas_iccprof_t *iccprof); |
||||
jas_cmprof_t *jas_cmprof_createfromclrspc(int clrspc); |
||||
jas_iccprof_t *jas_iccprof_createfromcmprof(jas_cmprof_t *prof); |
||||
|
||||
#define jas_cmprof_clrspc(prof) ((prof)->clrspc) |
||||
jas_cmprof_t *jas_cmprof_copy(jas_cmprof_t *prof); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,173 +0,0 @@ |
||||
/* src/libjasper/include/jasper/jas_config.h. Generated by configure. */ |
||||
/* src/libjasper/include/jasper/jas_config.h.in. Generated from configure.ac by autoheader. */ |
||||
|
||||
|
||||
/* Avoid problems due to multiple inclusion. */ |
||||
#ifndef JAS_CONFIG_H |
||||
#define JAS_CONFIG_H |
||||
|
||||
/* This preprocessor symbol identifies the version of JasPer. */ |
||||
#define JAS_VERSION "1.900.1" |
||||
/* If configure is being used, this symbol will be defined automatically
|
||||
at this point in the configuration header file. */ |
||||
|
||||
/* The preprocessor symbol JAS_WIN_MSVC_BUILD should not be defined
|
||||
unless the JasPer software is being built under Microsoft Windows |
||||
using Microsoft Visual C. */ |
||||
#if !defined(JAS_WIN_MSVC_BUILD) |
||||
/* A configure-based build is being used. */ |
||||
|
||||
|
||||
|
||||
/* Extra debugging support */ |
||||
/* #undef DEBUG */ |
||||
|
||||
/* Debugging memory allocator */ |
||||
/* #undef DEBUG_MEMALLOC */ |
||||
|
||||
/* Debugging overflow detection */ |
||||
/* #undef DEBUG_OVERFLOW */ |
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */ |
||||
#define HAVE_DLFCN_H 1 |
||||
|
||||
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ |
||||
/* #undef HAVE_DOPRNT */ |
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */ |
||||
#define HAVE_FCNTL_H 1 |
||||
|
||||
/* Define to 1 if you have the `getrusage' function. */ |
||||
#define HAVE_GETRUSAGE 1 |
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */ |
||||
#define HAVE_GETTIMEOFDAY 1 |
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */ |
||||
#define HAVE_INTTYPES_H 1 |
||||
|
||||
/* Define to 1 if you have the <io.h> header file. */ |
||||
/* #undef HAVE_IO_H */ |
||||
|
||||
/* Define to 1 if you have the `m' library (-lm). */ |
||||
#define HAVE_LIBM 1 |
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */ |
||||
#define HAVE_LIMITS_H 1 |
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */ |
||||
#define HAVE_MEMORY_H 1 |
||||
|
||||
/* Define to 1 if you have the <stdbool.h> header file. */ |
||||
#define HAVE_STDBOOL_H 1 |
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */ |
||||
#define HAVE_STDDEF_H 1 |
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */ |
||||
#define HAVE_STDINT_H 1 |
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */ |
||||
#define HAVE_STDLIB_H 1 |
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */ |
||||
#define HAVE_STRINGS_H 1 |
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */ |
||||
#define HAVE_STRING_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */ |
||||
#define HAVE_SYS_STAT_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */ |
||||
#define HAVE_SYS_TIME_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */ |
||||
#define HAVE_SYS_TYPES_H 1 |
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */ |
||||
#define HAVE_UNISTD_H 1 |
||||
|
||||
/* Have variable length arrays */ |
||||
#define HAVE_VLA 1 |
||||
|
||||
/* Define to 1 if you have the `vprintf' function. */ |
||||
#define HAVE_VPRINTF 1 |
||||
|
||||
/* Define to 1 if you have the <windows.h> header file. */ |
||||
/* #undef HAVE_WINDOWS_H */ |
||||
|
||||
/* JasPer configure */ |
||||
#define JAS_CONFIGURE 1 |
||||
|
||||
/* JasPer version */ |
||||
#define JAS_VERSION "1.900.1" |
||||
|
||||
/* Name of package */ |
||||
#define PACKAGE "jasper" |
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */ |
||||
#define PACKAGE_BUGREPORT "" |
||||
|
||||
/* Define to the full name of this package. */ |
||||
#define PACKAGE_NAME "jasper" |
||||
|
||||
/* Define to the full name and version of this package. */ |
||||
#define PACKAGE_STRING "jasper 1.900.1" |
||||
|
||||
/* Define to the one symbol short name of this package. */ |
||||
#define PACKAGE_TARNAME "jasper" |
||||
|
||||
/* Define to the version of this package. */ |
||||
#define PACKAGE_VERSION "1.900.1" |
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */ |
||||
#define STDC_HEADERS 1 |
||||
|
||||
/* Version number of package */ |
||||
#define VERSION "1.900.1" |
||||
|
||||
/* Define to 1 if the X Window System is missing or not being used. */ |
||||
/* #undef X_DISPLAY_MISSING */ |
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */ |
||||
/* #undef const */ |
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */ |
||||
#ifndef __cplusplus |
||||
/* #undef inline */ |
||||
#endif |
||||
|
||||
/* Define to `long long' if <sys/types.h> does not define. */ |
||||
#define longlong long long |
||||
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */ |
||||
/* #undef size_t */ |
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */ |
||||
/* #undef ssize_t */ |
||||
|
||||
/* Define to `unsigned char' if <sys/types.h> does not define. */ |
||||
#define uchar unsigned char |
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */ |
||||
/* #undef uint */ |
||||
|
||||
/* Define to `unsigned long' if <sys/types.h> does not define. */ |
||||
/* #undef ulong */ |
||||
|
||||
/* Define to `unsigned long long' if <sys/types.h> does not define. */ |
||||
#define ulonglong unsigned long long |
||||
|
||||
/* Define to `unsigned short' if <sys/types.h> does not define. */ |
||||
/* #undef ushort */ |
||||
|
||||
|
||||
#else |
||||
/* A configure-based build is not being used. */ |
||||
#include <jasper/jas_config2.h> |
||||
#endif |
||||
|
||||
#endif |
||||
|
@ -1,172 +0,0 @@ |
||||
/* src/libjasper/include/jasper/jas_config.h.in. Generated from configure.ac by autoheader. */ |
||||
|
||||
|
||||
/* Avoid problems due to multiple inclusion. */ |
||||
#ifndef JAS_CONFIG_H |
||||
#define JAS_CONFIG_H |
||||
|
||||
/* This preprocessor symbol identifies the version of JasPer. */ |
||||
#undef JAS_VERSION |
||||
/* If configure is being used, this symbol will be defined automatically
|
||||
at this point in the configuration header file. */ |
||||
|
||||
/* The preprocessor symbol JAS_WIN_MSVC_BUILD should not be defined
|
||||
unless the JasPer software is being built under Microsoft Windows |
||||
using Microsoft Visual C. */ |
||||
#if !defined(JAS_WIN_MSVC_BUILD) |
||||
/* A configure-based build is being used. */ |
||||
|
||||
|
||||
|
||||
/* Extra debugging support */ |
||||
#undef DEBUG |
||||
|
||||
/* Debugging memory allocator */ |
||||
#undef DEBUG_MEMALLOC |
||||
|
||||
/* Debugging overflow detection */ |
||||
#undef DEBUG_OVERFLOW |
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */ |
||||
#undef HAVE_DLFCN_H |
||||
|
||||
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ |
||||
#undef HAVE_DOPRNT |
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */ |
||||
#undef HAVE_FCNTL_H |
||||
|
||||
/* Define to 1 if you have the `getrusage' function. */ |
||||
#undef HAVE_GETRUSAGE |
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */ |
||||
#undef HAVE_GETTIMEOFDAY |
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */ |
||||
#undef HAVE_INTTYPES_H |
||||
|
||||
/* Define to 1 if you have the <io.h> header file. */ |
||||
#undef HAVE_IO_H |
||||
|
||||
/* Define to 1 if you have the `m' library (-lm). */ |
||||
#undef HAVE_LIBM |
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */ |
||||
#undef HAVE_LIMITS_H |
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */ |
||||
#undef HAVE_MEMORY_H |
||||
|
||||
/* Define to 1 if you have the <stdbool.h> header file. */ |
||||
#undef HAVE_STDBOOL_H |
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */ |
||||
#undef HAVE_STDDEF_H |
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */ |
||||
#undef HAVE_STDINT_H |
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */ |
||||
#undef HAVE_STDLIB_H |
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */ |
||||
#undef HAVE_STRINGS_H |
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */ |
||||
#undef HAVE_STRING_H |
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */ |
||||
#undef HAVE_SYS_STAT_H |
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */ |
||||
#undef HAVE_SYS_TIME_H |
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */ |
||||
#undef HAVE_SYS_TYPES_H |
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */ |
||||
#undef HAVE_UNISTD_H |
||||
|
||||
/* Have variable length arrays */ |
||||
#undef HAVE_VLA |
||||
|
||||
/* Define to 1 if you have the `vprintf' function. */ |
||||
#undef HAVE_VPRINTF |
||||
|
||||
/* Define to 1 if you have the <windows.h> header file. */ |
||||
#undef HAVE_WINDOWS_H |
||||
|
||||
/* JasPer configure */ |
||||
#undef JAS_CONFIGURE |
||||
|
||||
/* JasPer version */ |
||||
#undef JAS_VERSION |
||||
|
||||
/* Name of package */ |
||||
#undef PACKAGE |
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */ |
||||
#undef PACKAGE_BUGREPORT |
||||
|
||||
/* Define to the full name of this package. */ |
||||
#undef PACKAGE_NAME |
||||
|
||||
/* Define to the full name and version of this package. */ |
||||
#undef PACKAGE_STRING |
||||
|
||||
/* Define to the one symbol short name of this package. */ |
||||
#undef PACKAGE_TARNAME |
||||
|
||||
/* Define to the version of this package. */ |
||||
#undef PACKAGE_VERSION |
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */ |
||||
#undef STDC_HEADERS |
||||
|
||||
/* Version number of package */ |
||||
#undef VERSION |
||||
|
||||
/* Define to 1 if the X Window System is missing or not being used. */ |
||||
#undef X_DISPLAY_MISSING |
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */ |
||||
#undef const |
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */ |
||||
#ifndef __cplusplus |
||||
#undef inline |
||||
#endif |
||||
|
||||
/* Define to `long long' if <sys/types.h> does not define. */ |
||||
#undef longlong |
||||
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */ |
||||
#undef size_t |
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */ |
||||
#undef ssize_t |
||||
|
||||
/* Define to `unsigned char' if <sys/types.h> does not define. */ |
||||
#undef uchar |
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */ |
||||
#undef uint |
||||
|
||||
/* Define to `unsigned long' if <sys/types.h> does not define. */ |
||||
#undef ulong |
||||
|
||||
/* Define to `unsigned long long' if <sys/types.h> does not define. */ |
||||
#undef ulonglong |
||||
|
||||
/* Define to `unsigned short' if <sys/types.h> does not define. */ |
||||
#undef ushort |
||||
|
||||
|
||||
#else |
||||
/* A configure-based build is not being used. */ |
||||
#include <jasper/jas_config2.h> |
||||
#endif |
||||
|
||||
#endif |
||||
|
@ -1,97 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2002-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
#ifndef JAS_CONFIG2_H |
||||
#define JAS_CONFIG2_H |
||||
|
||||
/*
|
||||
* Configuration for Microsoft Windows and Microsoft Visual C. |
||||
* |
||||
* We are not using a configure-based build. |
||||
* Try to compensate for this here, by specifying the preprocessor symbols |
||||
* normally defined by configure. |
||||
*/ |
||||
|
||||
#define uchar unsigned char |
||||
#define ushort unsigned short |
||||
#define uint unsigned int |
||||
#define ulong unsigned long |
||||
#define longlong long long |
||||
#define ulonglong unsigned long long |
||||
/*#define ssize_t int*/ |
||||
|
||||
#define HAVE_FCNTL_H 1 |
||||
#define HAVE_LIMITS_H 1 |
||||
#define HAVE_IO_H 1 |
||||
#define HAVE_WINDOWS_H 1 |
||||
#define HAVE_SYS_TYPES_H 1 |
||||
#define HAVE_STDLIB_H 1 |
||||
#define HAVE_STDDEF_H 1 |
||||
|
||||
#define EXCLUDE_JPG_SUPPORT 1 |
||||
#define EXCLUDE_MIF_SUPPORT 1 |
||||
#define EXCLUDE_PNM_SUPPORT 1 |
||||
#define EXCLUDE_PNM_SUPPORT 1 |
||||
#define EXCLUDE_RAS_SUPPORT 1 |
||||
#define EXCLUDE_BMP_SUPPORT 1 |
||||
#define EXCLUDE_PGX_SUPPORT 1 |
||||
|
||||
#endif |
@ -1,114 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Debugging-Related Code |
||||
* |
||||
* $Id: jas_debug.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_DEBUG_H |
||||
#define JAS_DEBUG_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <stdio.h> |
||||
|
||||
#include <jasper/jas_config.h> |
||||
#include "jasper/jas_types.h" |
||||
#include "jasper/jas_debug.h" |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Macros and functions. |
||||
\******************************************************************************/ |
||||
|
||||
/* Output debugging information to standard error provided that the debug
|
||||
level is set sufficiently high. */ |
||||
#if defined(DEBUG) |
||||
#define JAS_DBGLOG(n, x) \ |
||||
((jas_getdbglevel() >= (n)) ? (jas_eprintf x) : 0) |
||||
#else |
||||
#define JAS_DBGLOG(n, x) |
||||
#endif |
||||
|
||||
/* Get the library debug level. */ |
||||
int jas_getdbglevel(void); |
||||
|
||||
/* Set the library debug level. */ |
||||
int jas_setdbglevel(int dbglevel); |
||||
|
||||
/* Perform formatted output to standard error. */ |
||||
int jas_eprintf(const char *fmt, ...); |
||||
|
||||
/* Dump memory to a stream. */ |
||||
int jas_memdump(FILE *out, void *data, size_t len); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,358 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Fixed-Point Number Class |
||||
* |
||||
* $Id: jas_fix.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_FIX_H |
||||
#define JAS_FIX_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#include <math.h> |
||||
|
||||
#include <jasper/jas_config.h> |
||||
#include <jasper/jas_types.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Constants. |
||||
\******************************************************************************/ |
||||
|
||||
/* The representation of the value zero. */ |
||||
#define JAS_FIX_ZERO(fix_t, fracbits) \ |
||||
JAS_CAST(fix_t, 0) |
||||
|
||||
/* The representation of the value one. */ |
||||
#define JAS_FIX_ONE(fix_t, fracbits) \ |
||||
(JAS_CAST(fix_t, 1) << (fracbits)) |
||||
|
||||
/* The representation of the value one half. */ |
||||
#define JAS_FIX_HALF(fix_t, fracbits) \ |
||||
(JAS_CAST(fix_t, 1) << ((fracbits) - 1)) |
||||
|
||||
/******************************************************************************\
|
||||
* Conversion operations. |
||||
\******************************************************************************/ |
||||
|
||||
/* Convert an int to a fixed-point number. */ |
||||
#define JAS_INTTOFIX(fix_t, fracbits, x) \ |
||||
JAS_CAST(fix_t, (x) << (fracbits)) |
||||
|
||||
/* Convert a fixed-point number to an int. */ |
||||
#define JAS_FIXTOINT(fix_t, fracbits, x) \ |
||||
JAS_CAST(int, (x) >> (fracbits)) |
||||
|
||||
/* Convert a fixed-point number to a double. */ |
||||
#define JAS_FIXTODBL(fix_t, fracbits, x) \ |
||||
(JAS_CAST(double, x) / (JAS_CAST(fix_t, 1) << (fracbits))) |
||||
|
||||
/* Convert a double to a fixed-point number. */ |
||||
#define JAS_DBLTOFIX(fix_t, fracbits, x) \ |
||||
JAS_CAST(fix_t, ((x) * JAS_CAST(double, JAS_CAST(fix_t, 1) << (fracbits)))) |
||||
|
||||
/******************************************************************************\
|
||||
* Basic arithmetic operations. |
||||
* All other arithmetic operations are synthesized from these basic operations. |
||||
* There are three macros for each type of arithmetic operation. |
||||
* One macro always performs overflow/underflow checking, one never performs |
||||
* overflow/underflow checking, and one is generic with its behavior |
||||
* depending on compile-time flags. |
||||
* Only the generic macros should be invoked directly by application code. |
||||
\******************************************************************************/ |
||||
|
||||
/* Calculate the sum of two fixed-point numbers. */ |
||||
#if !defined(DEBUG_OVERFLOW) |
||||
#define JAS_FIX_ADD JAS_FIX_ADD_FAST |
||||
#else |
||||
#define JAS_FIX_ADD JAS_FIX_ADD_OFLOW |
||||
#endif |
||||
|
||||
/* Calculate the sum of two fixed-point numbers without overflow checking. */ |
||||
#define JAS_FIX_ADD_FAST(fix_t, fracbits, x, y) ((x) + (y)) |
||||
|
||||
/* Calculate the sum of two fixed-point numbers with overflow checking. */ |
||||
#define JAS_FIX_ADD_OFLOW(fix_t, fracbits, x, y) \ |
||||
((x) >= 0) ? \
|
||||
(((y) >= 0) ? ((x) + (y) >= 0 || JAS_FIX_OFLOW(), (x) + (y)) : \
|
||||
((x) + (y))) : \
|
||||
(((y) >= 0) ? ((x) + (y)) : ((x) + (y) < 0 || JAS_FIX_OFLOW(), \
|
||||
(x) + (y))) |
||||
|
||||
/* Calculate the product of two fixed-point numbers. */ |
||||
#if !defined(DEBUG_OVERFLOW) |
||||
#define JAS_FIX_MUL JAS_FIX_MUL_FAST |
||||
#else |
||||
#define JAS_FIX_MUL JAS_FIX_MUL_OFLOW |
||||
#endif |
||||
|
||||
/* Calculate the product of two fixed-point numbers without overflow
|
||||
checking. */ |
||||
#define JAS_FIX_MUL_FAST(fix_t, fracbits, bigfix_t, x, y) \ |
||||
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y)) >> \
|
||||
(fracbits)) |
||||
|
||||
/* Calculate the product of two fixed-point numbers with overflow
|
||||
checking. */ |
||||
#define JAS_FIX_MUL_OFLOW(fix_t, fracbits, bigfix_t, x, y) \ |
||||
((JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> (fracbits)) == \
|
||||
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> \
|
||||
(fracbits))) ? \
|
||||
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) * JAS_CAST(bigfix_t, y) >> \
|
||||
(fracbits))) : JAS_FIX_OFLOW()) |
||||
|
||||
/* Calculate the product of a fixed-point number and an int. */ |
||||
#if !defined(DEBUG_OVERFLOW) |
||||
#define JAS_FIX_MULBYINT JAS_FIX_MULBYINT_FAST |
||||
#else |
||||
#define JAS_FIX_MULBYINT JAS_FIX_MULBYINT_OFLOW |
||||
#endif |
||||
|
||||
/* Calculate the product of a fixed-point number and an int without overflow
|
||||
checking. */ |
||||
#define JAS_FIX_MULBYINT_FAST(fix_t, fracbits, x, y) \ |
||||
JAS_CAST(fix_t, ((x) * (y))) |
||||
|
||||
/* Calculate the product of a fixed-point number and an int with overflow
|
||||
checking. */ |
||||
#define JAS_FIX_MULBYINT_OFLOW(fix_t, fracbits, x, y) \ |
||||
JAS_FIX_MULBYINT_FAST(fix_t, fracbits, x, y) |
||||
|
||||
/* Calculate the quotient of two fixed-point numbers. */ |
||||
#if !defined(DEBUG_OVERFLOW) |
||||
#define JAS_FIX_DIV JAS_FIX_DIV_FAST |
||||
#else |
||||
#define JAS_FIX_DIV JAS_FIX_DIV_UFLOW |
||||
#endif |
||||
|
||||
/* Calculate the quotient of two fixed-point numbers without underflow
|
||||
checking. */ |
||||
#define JAS_FIX_DIV_FAST(fix_t, fracbits, bigfix_t, x, y) \ |
||||
JAS_CAST(fix_t, (JAS_CAST(bigfix_t, x) << (fracbits)) / (y)) |
||||
|
||||
/* Calculate the quotient of two fixed-point numbers with underflow
|
||||
checking. */ |
||||
#define JAS_FIX_DIV_UFLOW(fix_t, fracbits, bigfix_t, x, y) \ |
||||
JAS_FIX_DIV_FAST(fix_t, fracbits, bigfix_t, x, y) |
||||
|
||||
/* Negate a fixed-point number. */ |
||||
#if !defined(DEBUG_OVERFLOW) |
||||
#define JAS_FIX_NEG JAS_FIX_NEG_FAST |
||||
#else |
||||
#define JAS_FIX_NEG JAS_FIX_NEG_OFLOW |
||||
#endif |
||||
|
||||
/* Negate a fixed-point number without overflow checking. */ |
||||
#define JAS_FIX_NEG_FAST(fix_t, fracbits, x) \ |
||||
(-(x)) |
||||
|
||||
/* Negate a fixed-point number with overflow checking. */ |
||||
/* Yes, overflow is actually possible for two's complement representations,
|
||||
although highly unlikely to occur. */ |
||||
#define JAS_FIX_NEG_OFLOW(fix_t, fracbits, x) \ |
||||
(((x) < 0) ? (-(x) > 0 || JAS_FIX_OFLOW(), -(x)) : (-(x))) |
||||
|
||||
/* Perform an arithmetic shift left of a fixed-point number. */ |
||||
#if !defined(DEBUG_OVERFLOW) |
||||
#define JAS_FIX_ASL JAS_FIX_ASL_FAST |
||||
#else |
||||
#define JAS_FIX_ASL JAS_FIX_ASL_OFLOW |
||||
#endif |
||||
|
||||
/* Perform an arithmetic shift left of a fixed-point number without overflow
|
||||
checking. */ |
||||
#define JAS_FIX_ASL_FAST(fix_t, fracbits, x, n) \ |
||||
((x) << (n)) |
||||
|
||||
/* Perform an arithmetic shift left of a fixed-point number with overflow
|
||||
checking. */ |
||||
#define JAS_FIX_ASL_OFLOW(fix_t, fracbits, x, n) \ |
||||
((((x) << (n)) >> (n)) == (x) || JAS_FIX_OFLOW(), (x) << (n)) |
||||
|
||||
/* Perform an arithmetic shift right of a fixed-point number. */ |
||||
#if !defined(DEBUG_OVERFLOW) |
||||
#define JAS_FIX_ASR JAS_FIX_ASR_FAST |
||||
#else |
||||
#define JAS_FIX_ASR JAS_FIX_ASR_UFLOW |
||||
#endif |
||||
|
||||
/* Perform an arithmetic shift right of a fixed-point number without underflow
|
||||
checking. */ |
||||
#define JAS_FIX_ASR_FAST(fix_t, fracbits, x, n) \ |
||||
((x) >> (n)) |
||||
|
||||
/* Perform an arithmetic shift right of a fixed-point number with underflow
|
||||
checking. */ |
||||
#define JAS_FIX_ASR_UFLOW(fix_t, fracbits, x, n) \ |
||||
JAS_FIX_ASR_FAST(fix_t, fracbits, x, n) |
||||
|
||||
/******************************************************************************\
|
||||
* Other basic arithmetic operations. |
||||
\******************************************************************************/ |
||||
|
||||
/* Calculate the difference between two fixed-point numbers. */ |
||||
#define JAS_FIX_SUB(fix_t, fracbits, x, y) \ |
||||
JAS_FIX_ADD(fix_t, fracbits, x, JAS_FIX_NEG(fix_t, fracbits, y)) |
||||
|
||||
/* Add one fixed-point number to another. */ |
||||
#define JAS_FIX_PLUSEQ(fix_t, fracbits, x, y) \ |
||||
((x) = JAS_FIX_ADD(fix_t, fracbits, x, y)) |
||||
|
||||
/* Subtract one fixed-point number from another. */ |
||||
#define JAS_FIX_MINUSEQ(fix_t, fracbits, x, y) \ |
||||
((x) = JAS_FIX_SUB(fix_t, fracbits, x, y)) |
||||
|
||||
/* Multiply one fixed-point number by another. */ |
||||
#define JAS_FIX_MULEQ(fix_t, fracbits, bigfix_t, x, y) \ |
||||
((x) = JAS_FIX_MUL(fix_t, fracbits, bigfix_t, x, y)) |
||||
|
||||
/******************************************************************************\
|
||||
* Miscellaneous operations. |
||||
\******************************************************************************/ |
||||
|
||||
/* Calculate the absolute value of a fixed-point number. */ |
||||
#define JAS_FIX_ABS(fix_t, fracbits, x) \ |
||||
(((x) >= 0) ? (x) : (JAS_FIX_NEG(fix_t, fracbits, x))) |
||||
|
||||
/* Is a fixed-point number an integer? */ |
||||
#define JAS_FIX_ISINT(fix_t, fracbits, x) \ |
||||
(JAS_FIX_FLOOR(fix_t, fracbits, x) == (x)) |
||||
|
||||
/* Get the sign of a fixed-point number. */ |
||||
#define JAS_FIX_SGN(fix_t, fracbits, x) \ |
||||
((x) >= 0 ? 1 : (-1)) |
||||
|
||||
/******************************************************************************\
|
||||
* Relational operations. |
||||
\******************************************************************************/ |
||||
|
||||
/* Compare two fixed-point numbers. */ |
||||
#define JAS_FIX_CMP(fix_t, fracbits, x, y) \ |
||||
((x) > (y) ? 1 : (((x) == (y)) ? 0 : (-1))) |
||||
|
||||
/* Less than. */ |
||||
#define JAS_FIX_LT(fix_t, fracbits, x, y) \ |
||||
((x) < (y)) |
||||
|
||||
/* Less than or equal. */ |
||||
#define JAS_FIX_LTE(fix_t, fracbits, x, y) \ |
||||
((x) <= (y)) |
||||
|
||||
/* Greater than. */ |
||||
#define JAS_FIX_GT(fix_t, fracbits, x, y) \ |
||||
((x) > (y)) |
||||
|
||||
/* Greater than or equal. */ |
||||
#define JAS_FIX_GTE(fix_t, fracbits, x, y) \ |
||||
((x) >= (y)) |
||||
|
||||
/******************************************************************************\
|
||||
* Rounding functions. |
||||
\******************************************************************************/ |
||||
|
||||
/* Round a fixed-point number to the nearest integer. */ |
||||
#define JAS_FIX_ROUND(fix_t, fracbits, x) \ |
||||
(((x) < 0) ? JAS_FIX_FLOOR(fix_t, fracbits, JAS_FIX_ADD(fix_t, fracbits, \
|
||||
(x), JAS_FIX_HALF(fix_t, fracbits))) : \
|
||||
JAS_FIX_NEG(fix_t, fracbits, JAS_FIX_FLOOR(fix_t, fracbits, \
|
||||
JAS_FIX_ADD(fix_t, fracbits, (-(x)), JAS_FIX_HALF(fix_t, fracbits))))) |
||||
|
||||
/* Round a fixed-point number to the nearest integer in the direction of
|
||||
negative infinity (i.e., the floor function). */ |
||||
#define JAS_FIX_FLOOR(fix_t, fracbits, x) \ |
||||
((x) & (~((JAS_CAST(fix_t, 1) << (fracbits)) - 1))) |
||||
|
||||
/* Round a fixed-point number to the nearest integer in the direction
|
||||
of zero. */ |
||||
#define JAS_FIX_TRUNC(fix_t, fracbits, x) \ |
||||
(((x) >= 0) ? JAS_FIX_FLOOR(fix_t, fracbits, x) : \
|
||||
JAS_FIX_CEIL(fix_t, fracbits, x)) |
||||
|
||||
/******************************************************************************\
|
||||
* The below macros are for internal library use only. Do not invoke them |
||||
* directly in application code. |
||||
\******************************************************************************/ |
||||
|
||||
/* Handle overflow. */ |
||||
#define JAS_FIX_OFLOW() \ |
||||
jas_eprintf("overflow error: file %s, line %d\n", __FILE__, __LINE__) |
||||
|
||||
/* Handle underflow. */ |
||||
#define JAS_FIX_UFLOW() \ |
||||
jas_eprintf("underflow error: file %s, line %d\n", __FILE__, __LINE__) |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,131 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Command Line Option Parsing Code |
||||
* |
||||
* $Id: jas_getopt.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_GETOPT_H |
||||
#define JAS_GETOPT_H |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
/******************************************************************************\
|
||||
* Constants. |
||||
\******************************************************************************/ |
||||
|
||||
#define JAS_GETOPT_EOF (-1) |
||||
#define JAS_GETOPT_ERR '?' |
||||
|
||||
/* option flags. */ |
||||
#define JAS_OPT_HASARG 0x01 /* option has argument */ |
||||
|
||||
/******************************************************************************\
|
||||
* Types. |
||||
\******************************************************************************/ |
||||
|
||||
/* Command line option type. */ |
||||
typedef struct { |
||||
|
||||
int id; |
||||
/* The unique identifier for this option. */ |
||||
|
||||
char *name; |
||||
/* The name of this option. */ |
||||
|
||||
int flags; |
||||
/* option flags. */ |
||||
|
||||
} jas_opt_t; |
||||
|
||||
/******************************************************************************\
|
||||
* External data. |
||||
\******************************************************************************/ |
||||
|
||||
/* The current option index. */ |
||||
extern int jas_optind; |
||||
|
||||
/* The current option argument. */ |
||||
extern char *jas_optarg; |
||||
|
||||
/* The debug level. */ |
||||
extern int jas_opterr; |
||||
|
||||
/******************************************************************************\
|
||||
* Prototypes. |
||||
\******************************************************************************/ |
||||
|
||||
/* Get the next option. */ |
||||
int jas_getopt(int argc, char **argv, jas_opt_t *opts); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,407 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2002-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
#ifndef JAS_ICC_H |
||||
#define JAS_ICC_H |
||||
|
||||
#include <jasper/jas_config.h> |
||||
#include <jasper/jas_types.h> |
||||
#include <jasper/jas_stream.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/* Profile file signature. */ |
||||
#define JAS_ICC_MAGIC 0x61637370 |
||||
|
||||
#define JAS_ICC_HDRLEN 128 |
||||
|
||||
/* Profile/device class signatures. */ |
||||
#define JAS_ICC_CLAS_IN 0x73636e72 /* input device */ |
||||
#define JAS_ICC_CLAS_DPY 0x6d6e7472 /* display device */ |
||||
#define JAS_ICC_CLAS_OUT 0x70727472 /* output device */ |
||||
#define JAS_ICC_CLAS_LNK 0x6c696e6b /* device link */ |
||||
#define JAS_ICC_CLAS_CNV 0x73706163 /* color space conversion */ |
||||
#define JAS_ICC_CLAS_ABS 0x61627374 /* abstract */ |
||||
#define JAS_ICC_CLAS_NAM 0x6e6d636c /* named color */ |
||||
|
||||
/* Color space signatures. */ |
||||
#define JAS_ICC_COLORSPC_XYZ 0x58595a20 /* XYZ */ |
||||
#define JAS_ICC_COLORSPC_LAB 0x4c616220 /* LAB */ |
||||
#define JAS_ICC_COLORSPC_LUV 0x4c757620 /* LUV */ |
||||
#define JAS_ICC_COLORSPC_YCBCR 0x59436272 /* YCbCr */ |
||||
#define JAS_ICC_COLORSPC_YXY 0x59787920 /* Yxy */ |
||||
#define JAS_ICC_COLORSPC_RGB 0x52474220 /* RGB */ |
||||
#define JAS_ICC_COLORSPC_GRAY 0x47524159 /* Gray */ |
||||
#define JAS_ICC_COLORSPC_HSV 0x48535620 /* HSV */ |
||||
#define JAS_ICC_COLORSPC_HLS 0x484c5320 /* HLS */ |
||||
#define JAS_ICC_COLORSPC_CMYK 0x434d594b /* CMYK */ |
||||
#define JAS_ICC_COLORSPC_CMY 0x434d5920 /* CMY */ |
||||
#define JAS_ICC_COLORSPC_2 0x32434c52 /* 2 channel color */ |
||||
#define JAS_ICC_COLORSPC_3 0x33434c52 /* 3 channel color */ |
||||
#define JAS_ICC_COLORSPC_4 0x34434c52 /* 4 channel color */ |
||||
#define JAS_ICC_COLORSPC_5 0x35434c52 /* 5 channel color */ |
||||
#define JAS_ICC_COLORSPC_6 0x36434c52 /* 6 channel color */ |
||||
#define JAS_ICC_COLORSPC_7 0x37434c52 /* 7 channel color */ |
||||
#define JAS_ICC_COLORSPC_8 0x38434c52 /* 8 channel color */ |
||||
#define JAS_ICC_COLORSPC_9 0x39434c52 /* 9 channel color */ |
||||
#define JAS_ICC_COLORSPC_10 0x41434c52 /* 10 channel color */ |
||||
#define JAS_ICC_COLORSPC_11 0x42434c52 /* 11 channel color */ |
||||
#define JAS_ICC_COLORSPC_12 0x43434c52 /* 12 channel color */ |
||||
#define JAS_ICC_COLORSPC_13 0x44434c52 /* 13 channel color */ |
||||
#define JAS_ICC_COLORSPC_14 0x45434c52 /* 14 channel color */ |
||||
#define JAS_ICC_COLORSPC_15 0x46434c52 /* 15 channel color */ |
||||
|
||||
/* Profile connection color space (PCS) signatures. */ |
||||
#define JAS_ICC_REFCOLORSPC_XYZ 0x58595a20 /* CIE XYZ */ |
||||
#define JAS_ICC_REFCOLORSPC_LAB 0x4c616220 /* CIE Lab */ |
||||
|
||||
/* Primary platform signatures. */ |
||||
#define JAS_ICC_PLATFORM_APPL 0x4150504c /* Apple Computer */ |
||||
#define JAS_ICC_PLATFORM_MSFT 0x4d534654 /* Microsoft */ |
||||
#define JAS_ICC_PLATFORM_SGI 0x53474920 /* Silicon Graphics */ |
||||
#define JAS_ICC_PLATFORM_SUNW 0x53554e57 /* Sun Microsystems */ |
||||
#define JAS_ICC_PLATFORM_TGNT 0x54474e54 /* Taligent */ |
||||
|
||||
/* Profile flags. */ |
||||
#define JAS_ICC_FLAGS_EMBED 0x01 /* embedded */ |
||||
#define JAS_ICC_FLAGS_NOSEP 0x02 /* no separate use */ |
||||
|
||||
/* Attributes. */ |
||||
#define JAS_ICC_ATTR_TRANS 0x01 /* transparent */ |
||||
#define JAS_ICC_ATTR_MATTE 0x02 /* matte */ |
||||
|
||||
/* Rendering intents. */ |
||||
#define JAS_ICC_INTENT_PER 0 /* perceptual */ |
||||
#define JAS_ICC_INTENT_REL 1 /* relative colorimetric */ |
||||
#define JAS_ICC_INTENT_SAT 2 /* saturation */ |
||||
#define JAS_ICC_INTENT_ABS 3 /* absolute colorimetric */ |
||||
|
||||
/* Tag signatures. */ |
||||
#define JAS_ICC_TAG_ATOB0 0x41324230 /* */ |
||||
#define JAS_ICC_TAG_ATOB1 0x41324231 /* */ |
||||
#define JAS_ICC_TAG_ATOB2 0x41324232 /* */ |
||||
#define JAS_ICC_TAG_BLUMATCOL 0x6258595a /* */ |
||||
#define JAS_ICC_TAG_BLUTRC 0x62545243 /* */ |
||||
#define JAS_ICC_TAG_BTOA0 0x42324130 /* */ |
||||
#define JAS_ICC_TAG_BTOA1 0x42324131 /* */ |
||||
#define JAS_ICC_TAG_BTOA2 0x42324132 /* */ |
||||
#define JAS_ICC_TAG_CALTIME 0x63616c74 /* */ |
||||
#define JAS_ICC_TAG_CHARTARGET 0x74617267 /* */ |
||||
#define JAS_ICC_TAG_CPYRT 0x63707274 /* */ |
||||
#define JAS_ICC_TAG_CRDINFO 0x63726469 /* */ |
||||
#define JAS_ICC_TAG_DEVMAKERDESC 0x646d6e64 /* */ |
||||
#define JAS_ICC_TAG_DEVMODELDESC 0x646d6464 /* */ |
||||
#define JAS_ICC_TAG_DEVSET 0x64657673 /* */ |
||||
#define JAS_ICC_TAG_GAMUT 0x67616d74 /* */ |
||||
#define JAS_ICC_TAG_GRYTRC 0x6b545243 /* */ |
||||
#define JAS_ICC_TAG_GRNMATCOL 0x6758595a /* */ |
||||
#define JAS_ICC_TAG_GRNTRC 0x67545243 /* */ |
||||
#define JAS_ICC_TAG_LUM 0x6c756d69 /* */ |
||||
#define JAS_ICC_TAG_MEASURE 0x6d656173 /* */ |
||||
#define JAS_ICC_TAG_MEDIABLKPT 0x626b7074 /* */ |
||||
#define JAS_ICC_TAG_MEDIAWHIPT 0x77747074 /* */ |
||||
#define JAS_ICC_TAG_NAMCOLR 0x6e636f6c /* */ |
||||
#define JAS_ICC_TAG_NAMCOLR2 0x6e636c32 /* */ |
||||
#define JAS_ICC_TAG_OUTRESP 0x72657370 /* */ |
||||
#define JAS_ICC_TAG_PREVIEW0 0x70726530 /* */ |
||||
#define JAS_ICC_TAG_PREVIEW1 0x70726531 /* */ |
||||
#define JAS_ICC_TAG_PREVIEW2 0x70726532 /* */ |
||||
#define JAS_ICC_TAG_PROFDESC 0x64657363 /* */ |
||||
#define JAS_ICC_TAG_PROFSEQDESC 0x70736571 /* */ |
||||
#define JAS_ICC_TAG_PSDCRD0 0x70736430 /* */ |
||||
#define JAS_ICC_TAG_PSCRDD1 0x70736431 /* */ |
||||
#define JAS_ICC_TAG_PSCRDD2 0x70736432 /* */ |
||||
#define JAS_ICC_TAG_PSCRDD3 0x70736433 /* */ |
||||
#define JAS_ICC_TAG_PS2CSA 0x70733273 /* */ |
||||
#define JAS_ICC_TAG_PS2RENINTENT 0x70733269 /* */ |
||||
#define JAS_ICC_TAG_REDMATCOL 0x7258595a /* */ |
||||
#define JAS_ICC_TAG_REDTRC 0x72545243 /* */ |
||||
#define JAS_ICC_TAG_SCRNGDES 0x73637264 /* */ |
||||
#define JAS_ICC_TAG_SCRNG 0x7363726e /* */ |
||||
#define JAS_ICC_TAG_TECH 0x74656368 /* */ |
||||
#define JAS_ICC_TAG_UCRBG 0x62666420 /* */ |
||||
#define JAS_ICC_TAG_VIEWCONDDESC 0x76756564 /* */ |
||||
#define JAS_ICC_TAG_VIEWCOND 0x76696577 /* */ |
||||
|
||||
/* Type signatures. */ |
||||
#define JAS_ICC_TYPE_CRDINFO 0x63726469 /* CRD information */ |
||||
#define JAS_ICC_TYPE_CURV 0x63757276 /* curve */ |
||||
#define JAS_ICC_TYPE_DATA 0x64617461 /* data */ |
||||
#define JAS_ICC_TYPE_TIME 0x6474696d /* date/time */ |
||||
#define JAS_ICC_TYPE_DEVSET 0x64657673 /* device settings */ |
||||
#define JAS_ICC_TYPE_LUT16 0x6d667432 /* */ |
||||
#define JAS_ICC_TYPE_LUT8 0x6d667431 /* */ |
||||
#define JAS_ICC_TYPE_MEASURE 0x6d656173 /* */ |
||||
#define JAS_ICC_TYPE_NAMCOLR 0x6e636f6c /* */ |
||||
#define JAS_ICC_TYPE_NAMCOLR2 0x6e636c32 /* */ |
||||
#define JAS_ICC_TYPE_PROFSEQDESC 0x70736571 /* profile sequence description */ |
||||
#define JAS_ICC_TYPE_RESPCURVSET16 0x72637332 /* response curve set 16 */ |
||||
#define JAS_ICC_TYPE_SF32 0x73663332 /* signed 32-bit fixed-point */ |
||||
#define JAS_ICC_TYPE_SCRNG 0x7363726e /* screening */ |
||||
#define JAS_ICC_TYPE_SIG 0x73696720 /* signature */ |
||||
#define JAS_ICC_TYPE_TXTDESC 0x64657363 /* text description */ |
||||
#define JAS_ICC_TYPE_TXT 0x74657874 /* text */ |
||||
#define JAS_ICC_TYPE_UF32 0x75663332 /* unsigned 32-bit fixed-point */ |
||||
#define JAS_ICC_TYPE_UCRBG 0x62666420 /* */ |
||||
#define JAS_ICC_TYPE_UI16 0x75693136 /* */ |
||||
#define JAS_ICC_TYPE_UI32 0x75693332 /* */ |
||||
#define JAS_ICC_TYPE_UI8 0x75693038 /* */ |
||||
#define JAS_ICC_TYPE_UI64 0x75693634 /* */ |
||||
#define JAS_ICC_TYPE_VIEWCOND 0x76696577 /* */ |
||||
#define JAS_ICC_TYPE_XYZ 0x58595a20 /* XYZ */ |
||||
|
||||
typedef uint_fast8_t jas_iccuint8_t; |
||||
typedef uint_fast16_t jas_iccuint16_t; |
||||
typedef uint_fast32_t jas_iccuint32_t; |
||||
typedef int_fast32_t jas_iccsint32_t; |
||||
typedef int_fast32_t jas_iccs15fixed16_t; |
||||
typedef uint_fast32_t jas_iccu16fixed16_t; |
||||
typedef uint_fast64_t jas_iccuint64_t; |
||||
typedef uint_fast32_t jas_iccsig_t; |
||||
|
||||
typedef jas_iccsig_t jas_icctagsig_t; |
||||
typedef jas_iccsig_t jas_icctagtype_t; |
||||
typedef jas_iccsig_t jas_iccattrname_t; |
||||
|
||||
/* Date/time type. */ |
||||
typedef struct { |
||||
jas_iccuint16_t year; |
||||
jas_iccuint16_t month; |
||||
jas_iccuint16_t day; |
||||
jas_iccuint16_t hour; |
||||
jas_iccuint16_t min; |
||||
jas_iccuint16_t sec; |
||||
} jas_icctime_t; |
||||
|
||||
/* XYZ type. */ |
||||
typedef struct { |
||||
jas_iccs15fixed16_t x; |
||||
jas_iccs15fixed16_t y; |
||||
jas_iccs15fixed16_t z; |
||||
} jas_iccxyz_t; |
||||
|
||||
/* Curve type. */ |
||||
typedef struct { |
||||
jas_iccuint32_t numents; |
||||
jas_iccuint16_t *ents; |
||||
} jas_icccurv_t; |
||||
|
||||
/* Text description type. */ |
||||
typedef struct { |
||||
jas_iccuint32_t asclen; |
||||
char *ascdata; /* ASCII invariant description */ |
||||
jas_iccuint32_t uclangcode; /* Unicode language code */ |
||||
jas_iccuint32_t uclen; /* Unicode localizable description count */ |
||||
uchar *ucdata; /* Unicode localizable description */ |
||||
jas_iccuint16_t sccode; /* ScriptCode code */ |
||||
jas_iccuint8_t maclen; /* Localizable Macintosh description count */ |
||||
uchar macdata[69]; /* Localizable Macintosh description */ |
||||
} jas_icctxtdesc_t; |
||||
|
||||
/* Text type. */ |
||||
typedef struct { |
||||
char *string; /* ASCII character string */ |
||||
} jas_icctxt_t; |
||||
|
||||
typedef struct { |
||||
jas_iccuint8_t numinchans; |
||||
jas_iccuint8_t numoutchans; |
||||
jas_iccsint32_t e[3][3]; |
||||
jas_iccuint8_t clutlen; |
||||
jas_iccuint8_t *clut; |
||||
jas_iccuint16_t numintabents; |
||||
jas_iccuint8_t **intabs; |
||||
jas_iccuint8_t *intabsbuf; |
||||
jas_iccuint16_t numouttabents; |
||||
jas_iccuint8_t **outtabs; |
||||
jas_iccuint8_t *outtabsbuf; |
||||
} jas_icclut8_t; |
||||
|
||||
typedef struct { |
||||
jas_iccuint8_t numinchans; |
||||
jas_iccuint8_t numoutchans; |
||||
jas_iccsint32_t e[3][3]; |
||||
jas_iccuint8_t clutlen; |
||||
jas_iccuint16_t *clut; |
||||
jas_iccuint16_t numintabents; |
||||
jas_iccuint16_t **intabs; |
||||
jas_iccuint16_t *intabsbuf; |
||||
jas_iccuint16_t numouttabents; |
||||
jas_iccuint16_t **outtabs; |
||||
jas_iccuint16_t *outtabsbuf; |
||||
} jas_icclut16_t; |
||||
|
||||
struct jas_iccattrval_s; |
||||
|
||||
typedef struct { |
||||
void (*destroy)(struct jas_iccattrval_s *); |
||||
int (*copy)(struct jas_iccattrval_s *, struct jas_iccattrval_s *); |
||||
int (*input)(struct jas_iccattrval_s *, jas_stream_t *, int); |
||||
int (*output)(struct jas_iccattrval_s *, jas_stream_t *); |
||||
int (*getsize)(struct jas_iccattrval_s *); |
||||
void (*dump)(struct jas_iccattrval_s *, FILE *); |
||||
} jas_iccattrvalops_t; |
||||
|
||||
/* Attribute value type (type and value information). */ |
||||
typedef struct jas_iccattrval_s { |
||||
int refcnt; /* reference count */ |
||||
jas_iccsig_t type; /* type */ |
||||
jas_iccattrvalops_t *ops; /* type-dependent operations */ |
||||
union { |
||||
jas_iccxyz_t xyz; |
||||
jas_icccurv_t curv; |
||||
jas_icctxtdesc_t txtdesc; |
||||
jas_icctxt_t txt; |
||||
jas_icclut8_t lut8; |
||||
jas_icclut16_t lut16; |
||||
} data; /* value */ |
||||
} jas_iccattrval_t; |
||||
|
||||
/* Header type. */ |
||||
typedef struct { |
||||
jas_iccuint32_t size; /* profile size */ |
||||
jas_iccsig_t cmmtype; /* CMM type signature */ |
||||
jas_iccuint32_t version; /* profile version */ |
||||
jas_iccsig_t clas; /* profile/device class signature */ |
||||
jas_iccsig_t colorspc; /* color space of data */ |
||||
jas_iccsig_t refcolorspc; /* profile connection space */ |
||||
jas_icctime_t ctime; /* creation time */ |
||||
jas_iccsig_t magic; /* profile file signature */ |
||||
jas_iccsig_t platform; /* primary platform */ |
||||
jas_iccuint32_t flags; /* profile flags */ |
||||
jas_iccsig_t maker; /* device manufacturer signature */ |
||||
jas_iccsig_t model; /* device model signature */ |
||||
jas_iccuint64_t attr; /* device setup attributes */ |
||||
jas_iccsig_t intent; /* rendering intent */ |
||||
jas_iccxyz_t illum; /* illuminant */ |
||||
jas_iccsig_t creator; /* profile creator signature */ |
||||
} jas_icchdr_t; |
||||
|
||||
typedef struct { |
||||
jas_iccsig_t name; |
||||
jas_iccattrval_t *val; |
||||
} jas_iccattr_t; |
||||
|
||||
typedef struct { |
||||
int numattrs; |
||||
int maxattrs; |
||||
jas_iccattr_t *attrs; |
||||
} jas_iccattrtab_t; |
||||
|
||||
typedef struct jas_icctagtabent_s { |
||||
jas_iccuint32_t tag; |
||||
jas_iccuint32_t off; |
||||
jas_iccuint32_t len; |
||||
void *data; |
||||
struct jas_icctagtabent_s *first; |
||||
} jas_icctagtabent_t; |
||||
|
||||
typedef struct { |
||||
jas_iccuint32_t numents; |
||||
jas_icctagtabent_t *ents; |
||||
} jas_icctagtab_t; |
||||
|
||||
/* ICC profile type. */ |
||||
typedef struct { |
||||
jas_icchdr_t hdr; |
||||
jas_icctagtab_t tagtab; |
||||
jas_iccattrtab_t *attrtab; |
||||
} jas_iccprof_t; |
||||
|
||||
typedef struct { |
||||
jas_iccuint32_t type; |
||||
jas_iccattrvalops_t ops; |
||||
} jas_iccattrvalinfo_t; |
||||
|
||||
jas_iccprof_t *jas_iccprof_load(jas_stream_t *in); |
||||
int jas_iccprof_save(jas_iccprof_t *prof, jas_stream_t *out); |
||||
void jas_iccprof_destroy(jas_iccprof_t *prof); |
||||
jas_iccattrval_t *jas_iccprof_getattr(jas_iccprof_t *prof, |
||||
jas_iccattrname_t name); |
||||
int jas_iccprof_setattr(jas_iccprof_t *prof, jas_iccattrname_t name, |
||||
jas_iccattrval_t *val); |
||||
void jas_iccprof_dump(jas_iccprof_t *prof, FILE *out); |
||||
jas_iccprof_t *jas_iccprof_copy(jas_iccprof_t *prof); |
||||
int jas_iccprof_gethdr(jas_iccprof_t *prof, jas_icchdr_t *hdr); |
||||
int jas_iccprof_sethdr(jas_iccprof_t *prof, jas_icchdr_t *hdr); |
||||
|
||||
void jas_iccattrval_destroy(jas_iccattrval_t *attrval); |
||||
void jas_iccattrval_dump(jas_iccattrval_t *attrval, FILE *out); |
||||
int jas_iccattrval_allowmodify(jas_iccattrval_t **attrval); |
||||
jas_iccattrval_t *jas_iccattrval_clone(jas_iccattrval_t *attrval); |
||||
jas_iccattrval_t *jas_iccattrval_create(jas_iccuint32_t type); |
||||
|
||||
void jas_iccattrtab_dump(jas_iccattrtab_t *attrtab, FILE *out); |
||||
|
||||
extern uchar jas_iccprofdata_srgb[]; |
||||
extern int jas_iccprofdata_srgblen; |
||||
extern uchar jas_iccprofdata_sgray[]; |
||||
extern int jas_iccprofdata_sgraylen; |
||||
jas_iccprof_t *jas_iccprof_createfrombuf(uchar *buf, int len); |
||||
jas_iccprof_t *jas_iccprof_createfromclrspc(int clrspc); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,564 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Image Class |
||||
* |
||||
* $Id: jas_image.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_IMAGE_H |
||||
#define JAS_IMAGE_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <jasper/jas_config.h> |
||||
#include <jasper/jas_stream.h> |
||||
#include <jasper/jas_seq.h> |
||||
#include <jasper/jas_cm.h> |
||||
#include <stdio.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Constants. |
||||
\******************************************************************************/ |
||||
|
||||
/*
|
||||
* Miscellaneous constants. |
||||
*/ |
||||
|
||||
/* The threshold at which image data is no longer stored in memory. */ |
||||
#define JAS_IMAGE_INMEMTHRESH (16 * 1024 * 1024) |
||||
|
||||
/*
|
||||
* Component types |
||||
*/ |
||||
|
||||
#define JAS_IMAGE_CT_UNKNOWN 0x10000 |
||||
#define JAS_IMAGE_CT_COLOR(n) ((n) & 0x7fff) |
||||
#define JAS_IMAGE_CT_OPACITY 0x08000 |
||||
|
||||
#define JAS_IMAGE_CT_RGB_R 0 |
||||
#define JAS_IMAGE_CT_RGB_G 1 |
||||
#define JAS_IMAGE_CT_RGB_B 2 |
||||
|
||||
#define JAS_IMAGE_CT_YCBCR_Y 0 |
||||
#define JAS_IMAGE_CT_YCBCR_CB 1 |
||||
#define JAS_IMAGE_CT_YCBCR_CR 2 |
||||
|
||||
#define JAS_IMAGE_CT_GRAY_Y 0 |
||||
|
||||
/******************************************************************************\
|
||||
* Simple types. |
||||
\******************************************************************************/ |
||||
|
||||
/* Image coordinate. */ |
||||
typedef int_fast32_t jas_image_coord_t; |
||||
|
||||
/* Color space (e.g., RGB, YCbCr). */ |
||||
typedef int_fast16_t jas_image_colorspc_t; |
||||
|
||||
/* Component type (e.g., color, opacity). */ |
||||
typedef int_fast32_t jas_image_cmpttype_t; |
||||
|
||||
/* Component sample data format (e.g., real/integer, signedness, precision). */ |
||||
typedef int_fast16_t jas_image_smpltype_t; |
||||
|
||||
/******************************************************************************\
|
||||
* Image class and supporting classes. |
||||
\******************************************************************************/ |
||||
|
||||
/* Image component class. */ |
||||
|
||||
typedef struct { |
||||
|
||||
jas_image_coord_t tlx_; |
||||
/* The x-coordinate of the top-left corner of the component. */ |
||||
|
||||
jas_image_coord_t tly_; |
||||
/* The y-coordinate of the top-left corner of the component. */ |
||||
|
||||
jas_image_coord_t hstep_; |
||||
/* The horizontal sampling period in units of the reference grid. */ |
||||
|
||||
jas_image_coord_t vstep_; |
||||
/* The vertical sampling period in units of the reference grid. */ |
||||
|
||||
jas_image_coord_t width_; |
||||
/* The component width in samples. */ |
||||
|
||||
jas_image_coord_t height_; |
||||
/* The component height in samples. */ |
||||
|
||||
#ifdef FIX_ME |
||||
int smpltype_; |
||||
#else |
||||
int prec_; |
||||
/* The precision of the sample data (i.e., the number of bits per
|
||||
sample). If the samples are signed values, this quantity |
||||
includes the sign bit. */ |
||||
|
||||
int sgnd_; |
||||
/* The signedness of the sample data. */ |
||||
#endif |
||||
|
||||
jas_stream_t *stream_; |
||||
/* The stream containing the component data. */ |
||||
|
||||
int cps_; |
||||
/* The number of characters per sample in the stream. */ |
||||
|
||||
jas_image_cmpttype_t type_; |
||||
/* The type of component (e.g., opacity, red, green, blue, luma). */ |
||||
|
||||
} jas_image_cmpt_t; |
||||
|
||||
/* Image class. */ |
||||
|
||||
typedef struct { |
||||
|
||||
jas_image_coord_t tlx_; |
||||
/* The x-coordinate of the top-left corner of the image bounding box. */ |
||||
|
||||
jas_image_coord_t tly_; |
||||
/* The y-coordinate of the top-left corner of the image bounding box. */ |
||||
|
||||
jas_image_coord_t brx_; |
||||
/* The x-coordinate of the bottom-right corner of the image bounding
|
||||
box (plus one). */ |
||||
|
||||
jas_image_coord_t bry_; |
||||
/* The y-coordinate of the bottom-right corner of the image bounding
|
||||
box (plus one). */ |
||||
|
||||
int numcmpts_; |
||||
/* The number of components. */ |
||||
|
||||
int maxcmpts_; |
||||
/* The maximum number of components that this image can have (i.e., the
|
||||
allocated size of the components array). */ |
||||
|
||||
jas_image_cmpt_t **cmpts_; |
||||
/* Per-component information. */ |
||||
|
||||
jas_clrspc_t clrspc_; |
||||
|
||||
jas_cmprof_t *cmprof_; |
||||
|
||||
bool inmem_; |
||||
|
||||
} jas_image_t; |
||||
|
||||
/* Component parameters class. */ |
||||
/* This data type exists solely/mainly for the purposes of the
|
||||
jas_image_create function. */ |
||||
|
||||
typedef struct { |
||||
|
||||
jas_image_coord_t tlx; |
||||
/* The x-coordinate of the top-left corner of the component. */ |
||||
|
||||
jas_image_coord_t tly; |
||||
/* The y-coordinate of the top-left corner of the component. */ |
||||
|
||||
jas_image_coord_t hstep; |
||||
/* The horizontal sampling period in units of the reference grid. */ |
||||
|
||||
jas_image_coord_t vstep; |
||||
/* The vertical sampling period in units of the reference grid. */ |
||||
|
||||
jas_image_coord_t width; |
||||
/* The width of the component in samples. */ |
||||
|
||||
jas_image_coord_t height; |
||||
/* The height of the component in samples. */ |
||||
|
||||
#ifdef FIX_ME |
||||
int smpltype; |
||||
#else |
||||
int prec; |
||||
/* The precision of the component sample data. */ |
||||
|
||||
int sgnd; |
||||
/* The signedness of the component sample data. */ |
||||
#endif |
||||
|
||||
} jas_image_cmptparm_t; |
||||
|
||||
/******************************************************************************\
|
||||
* File format related classes. |
||||
\******************************************************************************/ |
||||
|
||||
#define JAS_IMAGE_MAXFMTS 32 |
||||
/* The maximum number of image data formats supported. */ |
||||
|
||||
/* Image format-dependent operations. */ |
||||
|
||||
typedef struct { |
||||
|
||||
jas_image_t *(*decode)(jas_stream_t *in, char *opts); |
||||
/* Decode image data from a stream. */ |
||||
|
||||
int (*encode)(jas_image_t *image, jas_stream_t *out, char *opts); |
||||
/* Encode image data to a stream. */ |
||||
|
||||
int (*validate)(jas_stream_t *in); |
||||
/* Determine if stream data is in a particular format. */ |
||||
|
||||
} jas_image_fmtops_t; |
||||
|
||||
/* Image format information. */ |
||||
|
||||
typedef struct { |
||||
|
||||
int id; |
||||
/* The ID for this format. */ |
||||
|
||||
char *name; |
||||
/* The name by which this format is identified. */ |
||||
|
||||
char *ext; |
||||
/* The file name extension associated with this format. */ |
||||
|
||||
char *desc; |
||||
/* A brief description of the format. */ |
||||
|
||||
jas_image_fmtops_t ops; |
||||
/* The operations for this format. */ |
||||
|
||||
} jas_image_fmtinfo_t; |
||||
|
||||
/******************************************************************************\
|
||||
* Image operations. |
||||
\******************************************************************************/ |
||||
|
||||
/* Create an image. */ |
||||
jas_image_t *jas_image_create(int numcmpts, |
||||
jas_image_cmptparm_t *cmptparms, jas_clrspc_t clrspc); |
||||
|
||||
/* Create an "empty" image. */ |
||||
jas_image_t *jas_image_create0(void); |
||||
|
||||
/* Clone an image. */ |
||||
jas_image_t *jas_image_copy(jas_image_t *image); |
||||
|
||||
/* Deallocate any resources associated with an image. */ |
||||
void jas_image_destroy(jas_image_t *image); |
||||
|
||||
/* Get the width of the image in units of the image reference grid. */ |
||||
#define jas_image_width(image) \ |
||||
((image)->brx_ - (image)->tlx_) |
||||
|
||||
/* Get the height of the image in units of the image reference grid. */ |
||||
#define jas_image_height(image) \ |
||||
((image)->bry_ - (image)->tly_) |
||||
|
||||
/* Get the x-coordinate of the top-left corner of the image bounding box
|
||||
on the reference grid. */ |
||||
#define jas_image_tlx(image) \ |
||||
((image)->tlx_) |
||||
|
||||
/* Get the y-coordinate of the top-left corner of the image bounding box
|
||||
on the reference grid. */ |
||||
#define jas_image_tly(image) \ |
||||
((image)->tly_) |
||||
|
||||
/* Get the x-coordinate of the bottom-right corner of the image bounding box
|
||||
on the reference grid (plus one). */ |
||||
#define jas_image_brx(image) \ |
||||
((image)->brx_) |
||||
|
||||
/* Get the y-coordinate of the bottom-right corner of the image bounding box
|
||||
on the reference grid (plus one). */ |
||||
#define jas_image_bry(image) \ |
||||
((image)->bry_) |
||||
|
||||
/* Get the number of image components. */ |
||||
#define jas_image_numcmpts(image) \ |
||||
((image)->numcmpts_) |
||||
|
||||
/* Get the color model used by the image. */ |
||||
#define jas_image_clrspc(image) \ |
||||
((image)->clrspc_) |
||||
|
||||
/* Set the color model for an image. */ |
||||
#define jas_image_setclrspc(image, clrspc) \ |
||||
((image)->clrspc_ = (clrspc)) |
||||
|
||||
#define jas_image_cmpttype(image, cmptno) \ |
||||
((image)->cmpts_[(cmptno)]->type_) |
||||
#define jas_image_setcmpttype(image, cmptno, type) \ |
||||
((image)->cmpts_[(cmptno)]->type_ = (type)) |
||||
|
||||
/* Get the width of a component. */ |
||||
#define jas_image_cmptwidth(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->width_) |
||||
|
||||
/* Get the height of a component. */ |
||||
#define jas_image_cmptheight(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->height_) |
||||
|
||||
/* Get the signedness of the sample data for a component. */ |
||||
#define jas_image_cmptsgnd(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->sgnd_) |
||||
|
||||
/* Get the precision of the sample data for a component. */ |
||||
#define jas_image_cmptprec(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->prec_) |
||||
|
||||
/* Get the horizontal subsampling factor for a component. */ |
||||
#define jas_image_cmpthstep(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->hstep_) |
||||
|
||||
/* Get the vertical subsampling factor for a component. */ |
||||
#define jas_image_cmptvstep(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->vstep_) |
||||
|
||||
/* Get the x-coordinate of the top-left corner of a component. */ |
||||
#define jas_image_cmpttlx(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->tlx_) |
||||
|
||||
/* Get the y-coordinate of the top-left corner of a component. */ |
||||
#define jas_image_cmpttly(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->tly_) |
||||
|
||||
/* Get the x-coordinate of the bottom-right corner of a component
|
||||
(plus "one"). */ |
||||
#define jas_image_cmptbrx(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->tlx_ + (image)->cmpts_[cmptno]->width_ * \
|
||||
(image)->cmpts_[cmptno]->hstep_) |
||||
|
||||
/* Get the y-coordinate of the bottom-right corner of a component
|
||||
(plus "one"). */ |
||||
#define jas_image_cmptbry(image, cmptno) \ |
||||
((image)->cmpts_[cmptno]->tly_ + (image)->cmpts_[cmptno]->height_ * \
|
||||
(image)->cmpts_[cmptno]->vstep_) |
||||
|
||||
/* Get the raw size of an image (i.e., the nominal size of the image without
|
||||
any compression. */ |
||||
uint_fast32_t jas_image_rawsize(jas_image_t *image); |
||||
|
||||
/* Create an image from a stream in some specified format. */ |
||||
jas_image_t *jas_image_decode(jas_stream_t *in, int fmt, char *optstr); |
||||
|
||||
/* Write an image to a stream in a specified format. */ |
||||
int jas_image_encode(jas_image_t *image, jas_stream_t *out, int fmt, |
||||
char *optstr); |
||||
|
||||
/* Read a rectangular region of an image component. */ |
||||
/* The position and size of the rectangular region to be read is specified
|
||||
relative to the component's coordinate system. */ |
||||
int jas_image_readcmpt(jas_image_t *image, int cmptno, |
||||
jas_image_coord_t x, jas_image_coord_t y, jas_image_coord_t width, jas_image_coord_t height, |
||||
jas_matrix_t *data); |
||||
|
||||
/* Write a rectangular region of an image component. */ |
||||
int jas_image_writecmpt(jas_image_t *image, int cmptno, |
||||
jas_image_coord_t x, jas_image_coord_t y, jas_image_coord_t width, jas_image_coord_t height, |
||||
jas_matrix_t *data); |
||||
|
||||
/* Delete a component from an image. */ |
||||
void jas_image_delcmpt(jas_image_t *image, int cmptno); |
||||
|
||||
/* Add a component to an image. */ |
||||
int jas_image_addcmpt(jas_image_t *image, int cmptno, |
||||
jas_image_cmptparm_t *cmptparm); |
||||
|
||||
/* Copy a component from one image to another. */ |
||||
int jas_image_copycmpt(jas_image_t *dstimage, int dstcmptno, |
||||
jas_image_t *srcimage, int srccmptno); |
||||
|
||||
#define JAS_IMAGE_CDT_GETSGND(dtype) (((dtype) >> 7) & 1) |
||||
#define JAS_IMAGE_CDT_SETSGND(dtype) (((dtype) & 1) << 7) |
||||
#define JAS_IMAGE_CDT_GETPREC(dtype) ((dtype) & 0x7f) |
||||
#define JAS_IMAGE_CDT_SETPREC(dtype) ((dtype) & 0x7f) |
||||
|
||||
#define jas_image_cmptdtype(image, cmptno) \ |
||||
(JAS_IMAGE_CDT_SETSGND((image)->cmpts_[cmptno]->sgnd_) | JAS_IMAGE_CDT_SETPREC((image)->cmpts_[cmptno]->prec_)) |
||||
|
||||
int jas_image_depalettize(jas_image_t *image, int cmptno, int numlutents, |
||||
int_fast32_t *lutents, int dtype, int newcmptno); |
||||
|
||||
int jas_image_readcmptsample(jas_image_t *image, int cmptno, int x, int y); |
||||
void jas_image_writecmptsample(jas_image_t *image, int cmptno, int x, int y, |
||||
int_fast32_t v); |
||||
|
||||
int jas_image_getcmptbytype(jas_image_t *image, int ctype); |
||||
|
||||
/******************************************************************************\
|
||||
* Image format-related operations. |
||||
\******************************************************************************/ |
||||
|
||||
/* Clear the table of image formats. */ |
||||
void jas_image_clearfmts(void); |
||||
|
||||
/* Add entry to table of image formats. */ |
||||
int jas_image_addfmt(int id, char *name, char *ext, char *desc, |
||||
jas_image_fmtops_t *ops); |
||||
|
||||
/* Get the ID for the image format with the specified name. */ |
||||
int jas_image_strtofmt(char *s); |
||||
|
||||
/* Get the name of the image format with the specified ID. */ |
||||
char *jas_image_fmttostr(int fmt); |
||||
|
||||
/* Lookup image format information by the format ID. */ |
||||
jas_image_fmtinfo_t *jas_image_lookupfmtbyid(int id); |
||||
|
||||
/* Lookup image format information by the format name. */ |
||||
jas_image_fmtinfo_t *jas_image_lookupfmtbyname(const char *name); |
||||
|
||||
/* Guess the format of an image file based on its name. */ |
||||
int jas_image_fmtfromname(char *filename); |
||||
|
||||
/* Get the format of image data in a stream. */ |
||||
int jas_image_getfmt(jas_stream_t *in); |
||||
|
||||
|
||||
#define jas_image_cmprof(image) ((image)->cmprof_) |
||||
int jas_image_ishomosamp(jas_image_t *image); |
||||
int jas_image_sampcmpt(jas_image_t *image, int cmptno, int newcmptno, |
||||
jas_image_coord_t ho, jas_image_coord_t vo, jas_image_coord_t hs, |
||||
jas_image_coord_t vs, int sgnd, int prec); |
||||
int jas_image_writecmpt2(jas_image_t *image, int cmptno, jas_image_coord_t x, |
||||
jas_image_coord_t y, jas_image_coord_t width, jas_image_coord_t height, |
||||
long *buf); |
||||
int jas_image_readcmpt2(jas_image_t *image, int cmptno, jas_image_coord_t x, |
||||
jas_image_coord_t y, jas_image_coord_t width, jas_image_coord_t height, |
||||
long *buf); |
||||
|
||||
#define jas_image_setcmprof(image, cmprof) ((image)->cmprof_ = cmprof) |
||||
jas_image_t *jas_image_chclrspc(jas_image_t *image, jas_cmprof_t *outprof, |
||||
int intent); |
||||
void jas_image_dump(jas_image_t *image, FILE *out); |
||||
|
||||
/******************************************************************************\
|
||||
* Image format-dependent operations. |
||||
\******************************************************************************/ |
||||
|
||||
#if !defined(EXCLUDE_JPG_SUPPORT) |
||||
/* Format-dependent operations for JPG support. */ |
||||
jas_image_t *jpg_decode(jas_stream_t *in, char *optstr); |
||||
int jpg_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int jpg_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#if !defined(EXCLUDE_MIF_SUPPORT) |
||||
/* Format-dependent operations for MIF support. */ |
||||
jas_image_t *mif_decode(jas_stream_t *in, char *optstr); |
||||
int mif_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int mif_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#if !defined(EXCLUDE_PNM_SUPPORT) |
||||
/* Format-dependent operations for PNM support. */ |
||||
jas_image_t *pnm_decode(jas_stream_t *in, char *optstr); |
||||
int pnm_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int pnm_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#if !defined(EXCLUDE_RAS_SUPPORT) |
||||
/* Format-dependent operations for Sun Rasterfile support. */ |
||||
jas_image_t *ras_decode(jas_stream_t *in, char *optstr); |
||||
int ras_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int ras_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#if !defined(EXCLUDE_BMP_SUPPORT) |
||||
/* Format-dependent operations for BMP support. */ |
||||
jas_image_t *bmp_decode(jas_stream_t *in, char *optstr); |
||||
int bmp_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int bmp_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#if !defined(EXCLUDE_JP2_SUPPORT) |
||||
/* Format-dependent operations for JP2 support. */ |
||||
jas_image_t *jp2_decode(jas_stream_t *in, char *optstr); |
||||
int jp2_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int jp2_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#if !defined(EXCLUDE_JPC_SUPPORT) |
||||
/* Format-dependent operations for JPEG-2000 code stream support. */ |
||||
jas_image_t *jpc_decode(jas_stream_t *in, char *optstr); |
||||
int jpc_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int jpc_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#if !defined(EXCLUDE_PGX_SUPPORT) |
||||
/* Format-dependent operations for PGX support. */ |
||||
jas_image_t *pgx_decode(jas_stream_t *in, char *optstr); |
||||
int pgx_encode(jas_image_t *image, jas_stream_t *out, char *optstr); |
||||
int pgx_validate(jas_stream_t *in); |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,83 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
#ifndef JAS_INIT_H |
||||
#define JAS_INIT_H |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Functions. |
||||
\******************************************************************************/ |
||||
|
||||
int jas_init(void); |
||||
|
||||
void jas_cleanup(void); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,124 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Memory Allocator |
||||
* |
||||
* $Id: jas_malloc.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_MALLOC_H |
||||
#define JAS_MALLOC_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#include <stdlib.h> |
||||
#include <stdio.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Hack follows... |
||||
\******************************************************************************/ |
||||
|
||||
#if defined(DEBUG_MEMALLOC) |
||||
/* This is somewhat of a hack, but it's a useful hack. :-) */ |
||||
/* Use my own custom memory allocator for debugging. */ |
||||
#include "../../../../local/src/memalloc.h" |
||||
#define jas_malloc MEMALLOC |
||||
#define jas_free MEMFREE |
||||
#define jas_realloc MEMREALLOC |
||||
#define jas_calloc MEMCALLOC |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Functions. |
||||
\******************************************************************************/ |
||||
|
||||
#if !defined(DEBUG_MEMALLOC) |
||||
|
||||
/* Allocate memory. */ |
||||
void *jas_malloc(size_t size); |
||||
|
||||
/* Free memory. */ |
||||
void jas_free(void *ptr); |
||||
|
||||
/* Resize a block of allocated memory. */ |
||||
void *jas_realloc(void *ptr, size_t size); |
||||
|
||||
/* Allocate a block of memory and initialize the contents to zero. */ |
||||
void *jas_calloc(size_t nmemb, size_t size); |
||||
|
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,117 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Math-Related Code |
||||
* |
||||
* $Id: jas_math.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_MATH_H |
||||
#define JAS_MATH_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes |
||||
\******************************************************************************/ |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#include <assert.h> |
||||
#include <stdio.h> |
||||
#include <string.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Macros |
||||
\******************************************************************************/ |
||||
|
||||
/* Compute the absolute value. */ |
||||
#define JAS_ABS(x) \ |
||||
(((x) >= 0) ? (x) : (-(x))) |
||||
|
||||
/* Compute the minimum of two values. */ |
||||
#define JAS_MIN(x, y) \ |
||||
(((x) < (y)) ? (x) : (y)) |
||||
|
||||
/* Compute the maximum of two values. */ |
||||
#define JAS_MAX(x, y) \ |
||||
(((x) > (y)) ? (x) : (y)) |
||||
|
||||
/* Compute the remainder from division (where division is defined such
|
||||
that the remainder is always nonnegative). */ |
||||
#define JAS_MOD(x, y) \ |
||||
(((x) < 0) ? (((-x) % (y)) ? ((y) - ((-(x)) % (y))) : (0)) : ((x) % (y))) |
||||
|
||||
/* Compute the integer with the specified number of least significant bits
|
||||
set to one. */ |
||||
#define JAS_ONES(n) \ |
||||
((1 << (n)) - 1) |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,301 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Sequence/Matrix Library |
||||
* |
||||
* $Id: jas_seq.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_SEQ_H |
||||
#define JAS_SEQ_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#include <jasper/jas_stream.h> |
||||
#include <jasper/jas_types.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Constants. |
||||
\******************************************************************************/ |
||||
|
||||
/* This matrix is a reference to another matrix. */ |
||||
#define JAS_MATRIX_REF 0x0001 |
||||
|
||||
/******************************************************************************\
|
||||
* Types. |
||||
\******************************************************************************/ |
||||
|
||||
/* An element in a sequence. */ |
||||
typedef int_fast32_t jas_seqent_t; |
||||
|
||||
/* An element in a matrix. */ |
||||
typedef int_fast32_t jas_matent_t; |
||||
|
||||
/* Matrix. */ |
||||
|
||||
typedef struct { |
||||
|
||||
/* Additional state information. */ |
||||
int flags_; |
||||
|
||||
/* The starting horizontal index. */ |
||||
int_fast32_t xstart_; |
||||
|
||||
/* The starting vertical index. */ |
||||
int_fast32_t ystart_; |
||||
|
||||
/* The ending horizontal index. */ |
||||
int_fast32_t xend_; |
||||
|
||||
/* The ending vertical index. */ |
||||
int_fast32_t yend_; |
||||
|
||||
/* The number of rows in the matrix. */ |
||||
int_fast32_t numrows_; |
||||
|
||||
/* The number of columns in the matrix. */ |
||||
int_fast32_t numcols_; |
||||
|
||||
/* Pointers to the start of each row. */ |
||||
jas_seqent_t **rows_; |
||||
|
||||
/* The allocated size of the rows array. */ |
||||
int_fast32_t maxrows_; |
||||
|
||||
/* The matrix data buffer. */ |
||||
jas_seqent_t *data_; |
||||
|
||||
/* The allocated size of the data array. */ |
||||
int_fast32_t datasize_; |
||||
|
||||
} jas_matrix_t; |
||||
|
||||
typedef jas_matrix_t jas_seq2d_t; |
||||
typedef jas_matrix_t jas_seq_t; |
||||
|
||||
/******************************************************************************\
|
||||
* Functions/macros for matrix class. |
||||
\******************************************************************************/ |
||||
|
||||
/* Get the number of rows. */ |
||||
#define jas_matrix_numrows(matrix) \ |
||||
((matrix)->numrows_) |
||||
|
||||
/* Get the number of columns. */ |
||||
#define jas_matrix_numcols(matrix) \ |
||||
((matrix)->numcols_) |
||||
|
||||
/* Get a matrix element. */ |
||||
#define jas_matrix_get(matrix, i, j) \ |
||||
((matrix)->rows_[i][j]) |
||||
|
||||
/* Set a matrix element. */ |
||||
#define jas_matrix_set(matrix, i, j, v) \ |
||||
((matrix)->rows_[i][j] = (v)) |
||||
|
||||
/* Get an element from a matrix that is known to be a row or column vector. */ |
||||
#define jas_matrix_getv(matrix, i) \ |
||||
(((matrix)->numrows_ == 1) ? ((matrix)->rows_[0][i]) : \
|
||||
((matrix)->rows_[i][0])) |
||||
|
||||
/* Set an element in a matrix that is known to be a row or column vector. */ |
||||
#define jas_matrix_setv(matrix, i, v) \ |
||||
(((matrix)->numrows_ == 1) ? ((matrix)->rows_[0][i] = (v)) : \
|
||||
((matrix)->rows_[i][0] = (v))) |
||||
|
||||
/* Get the address of an element in a matrix. */ |
||||
#define jas_matrix_getref(matrix, i, j) \ |
||||
(&(matrix)->rows_[i][j]) |
||||
|
||||
#define jas_matrix_getvref(matrix, i) \ |
||||
(((matrix)->numrows_ > 1) ? jas_matrix_getref(matrix, i, 0) : jas_matrix_getref(matrix, 0, i)) |
||||
|
||||
#define jas_matrix_length(matrix) \ |
||||
(max((matrix)->numrows_, (matrix)->numcols_)) |
||||
|
||||
/* Create a matrix with the specified dimensions. */ |
||||
jas_matrix_t *jas_matrix_create(int numrows, int numcols); |
||||
|
||||
/* Destroy a matrix. */ |
||||
void jas_matrix_destroy(jas_matrix_t *matrix); |
||||
|
||||
/* Resize a matrix. The previous contents of the matrix are lost. */ |
||||
int jas_matrix_resize(jas_matrix_t *matrix, int numrows, int numcols); |
||||
|
||||
int jas_matrix_output(jas_matrix_t *matrix, FILE *out); |
||||
|
||||
/* Create a matrix that references part of another matrix. */ |
||||
void jas_matrix_bindsub(jas_matrix_t *mat0, jas_matrix_t *mat1, int r0, int c0, |
||||
int r1, int c1); |
||||
|
||||
/* Create a matrix that is a reference to a row of another matrix. */ |
||||
#define jas_matrix_bindrow(mat0, mat1, r) \ |
||||
(jas_matrix_bindsub((mat0), (mat1), (r), 0, (r), (mat1)->numcols_ - 1)) |
||||
|
||||
/* Create a matrix that is a reference to a column of another matrix. */ |
||||
#define jas_matrix_bindcol(mat0, mat1, c) \ |
||||
(jas_matrix_bindsub((mat0), (mat1), 0, (c), (mat1)->numrows_ - 1, (c))) |
||||
|
||||
/* Clip the values of matrix elements to the specified range. */ |
||||
void jas_matrix_clip(jas_matrix_t *matrix, jas_seqent_t minval, |
||||
jas_seqent_t maxval); |
||||
|
||||
/* Arithmetic shift left of all elements in a matrix. */ |
||||
void jas_matrix_asl(jas_matrix_t *matrix, int n); |
||||
|
||||
/* Arithmetic shift right of all elements in a matrix. */ |
||||
void jas_matrix_asr(jas_matrix_t *matrix, int n); |
||||
|
||||
/* Almost-but-not-quite arithmetic shift right of all elements in a matrix. */ |
||||
void jas_matrix_divpow2(jas_matrix_t *matrix, int n); |
||||
|
||||
/* Set all elements of a matrix to the specified value. */ |
||||
void jas_matrix_setall(jas_matrix_t *matrix, jas_seqent_t val); |
||||
|
||||
/* The spacing between rows of a matrix. */ |
||||
#define jas_matrix_rowstep(matrix) \ |
||||
(((matrix)->numrows_ > 1) ? ((matrix)->rows_[1] - (matrix)->rows_[0]) : (0)) |
||||
|
||||
/* The spacing between columns of a matrix. */ |
||||
#define jas_matrix_step(matrix) \ |
||||
(((matrix)->numrows_ > 1) ? (jas_matrix_rowstep(matrix)) : (1)) |
||||
|
||||
/* Compare two matrices for equality. */ |
||||
int jas_matrix_cmp(jas_matrix_t *mat0, jas_matrix_t *mat1); |
||||
|
||||
jas_matrix_t *jas_matrix_copy(jas_matrix_t *x); |
||||
|
||||
jas_matrix_t *jas_matrix_input(FILE *); |
||||
|
||||
/******************************************************************************\
|
||||
* Functions/macros for 2-D sequence class. |
||||
\******************************************************************************/ |
||||
|
||||
jas_seq2d_t *jas_seq2d_copy(jas_seq2d_t *x); |
||||
|
||||
jas_matrix_t *jas_seq2d_create(int xstart, int ystart, int xend, int yend); |
||||
|
||||
#define jas_seq2d_destroy(s) \ |
||||
jas_matrix_destroy(s) |
||||
|
||||
#define jas_seq2d_xstart(s) \ |
||||
((s)->xstart_) |
||||
#define jas_seq2d_ystart(s) \ |
||||
((s)->ystart_) |
||||
#define jas_seq2d_xend(s) \ |
||||
((s)->xend_) |
||||
#define jas_seq2d_yend(s) \ |
||||
((s)->yend_) |
||||
#define jas_seq2d_getref(s, x, y) \ |
||||
(jas_matrix_getref(s, (y) - (s)->ystart_, (x) - (s)->xstart_)) |
||||
#define jas_seq2d_get(s, x, y) \ |
||||
(jas_matrix_get(s, (y) - (s)->ystart_, (x) - (s)->xstart_)) |
||||
#define jas_seq2d_rowstep(s) \ |
||||
jas_matrix_rowstep(s) |
||||
#define jas_seq2d_width(s) \ |
||||
((s)->xend_ - (s)->xstart_) |
||||
#define jas_seq2d_height(s) \ |
||||
((s)->yend_ - (s)->ystart_) |
||||
#define jas_seq2d_setshift(s, x, y) \ |
||||
((s)->xstart_ = (x), (s)->ystart_ = (y), \
|
||||
(s)->xend_ = (s)->xstart_ + (s)->numcols_, \
|
||||
(s)->yend_ = (s)->ystart_ + (s)->numrows_) |
||||
|
||||
void jas_seq2d_bindsub(jas_matrix_t *s, jas_matrix_t *s1, int xstart, |
||||
int ystart, int xend, int yend); |
||||
|
||||
/******************************************************************************\
|
||||
* Functions/macros for 1-D sequence class. |
||||
\******************************************************************************/ |
||||
|
||||
#define jas_seq_create(start, end) \ |
||||
(jas_seq2d_create(start, 0, end, 1)) |
||||
|
||||
#define jas_seq_destroy(seq) \ |
||||
(jas_seq2d_destroy(seq)) |
||||
|
||||
#define jas_seq_set(seq, i, v) \ |
||||
((seq)->rows_[0][(i) - (seq)->xstart_] = (v)) |
||||
#define jas_seq_getref(seq, i) \ |
||||
(&(seq)->rows_[0][(i) - (seq)->xstart_]) |
||||
#define jas_seq_get(seq, i) \ |
||||
((seq)->rows_[0][(i) - (seq)->xstart_]) |
||||
#define jas_seq_start(seq) \ |
||||
((seq)->xstart_) |
||||
#define jas_seq_end(seq) \ |
||||
((seq)->xend_) |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,464 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* I/O Stream Class |
||||
* |
||||
* $Id: jas_stream.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_STREAM_H |
||||
#define JAS_STREAM_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#include <stdio.h> |
||||
#if defined(HAVE_FCNTL_H) |
||||
#include <fcntl.h> |
||||
#endif |
||||
#include <string.h> |
||||
#if defined(HAVE_UNISTD_H) |
||||
#include <unistd.h> |
||||
#endif |
||||
#include <jasper/jas_types.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Constants. |
||||
\******************************************************************************/ |
||||
|
||||
/* On most UNIX systems, we probably need to define O_BINARY ourselves. */ |
||||
#ifndef O_BINARY |
||||
#define O_BINARY 0 |
||||
#endif |
||||
|
||||
/*
|
||||
* Stream open flags. |
||||
*/ |
||||
|
||||
/* The stream was opened for reading. */ |
||||
#define JAS_STREAM_READ 0x0001 |
||||
/* The stream was opened for writing. */ |
||||
#define JAS_STREAM_WRITE 0x0002 |
||||
/* The stream was opened for appending. */ |
||||
#define JAS_STREAM_APPEND 0x0004 |
||||
/* The stream was opened in binary mode. */ |
||||
#define JAS_STREAM_BINARY 0x0008 |
||||
/* The stream should be created/truncated. */ |
||||
#define JAS_STREAM_CREATE 0x0010 |
||||
|
||||
|
||||
/*
|
||||
* Stream buffering flags. |
||||
*/ |
||||
|
||||
/* The stream is unbuffered. */ |
||||
#define JAS_STREAM_UNBUF 0x0000 |
||||
/* The stream is line buffered. */ |
||||
#define JAS_STREAM_LINEBUF 0x0001 |
||||
/* The stream is fully buffered. */ |
||||
#define JAS_STREAM_FULLBUF 0x0002 |
||||
/* The buffering mode mask. */ |
||||
#define JAS_STREAM_BUFMODEMASK 0x000f |
||||
|
||||
/* The memory associated with the buffer needs to be deallocated when the
|
||||
stream is destroyed. */ |
||||
#define JAS_STREAM_FREEBUF 0x0008 |
||||
/* The buffer is currently being used for reading. */ |
||||
#define JAS_STREAM_RDBUF 0x0010 |
||||
/* The buffer is currently being used for writing. */ |
||||
#define JAS_STREAM_WRBUF 0x0020 |
||||
|
||||
/*
|
||||
* Stream error flags. |
||||
*/ |
||||
|
||||
/* The end-of-file has been encountered (on reading). */ |
||||
#define JAS_STREAM_EOF 0x0001 |
||||
/* An I/O error has been encountered on the stream. */ |
||||
#define JAS_STREAM_ERR 0x0002 |
||||
/* The read/write limit has been exceeded. */ |
||||
#define JAS_STREAM_RWLIMIT 0x0004 |
||||
/* The error mask. */ |
||||
#define JAS_STREAM_ERRMASK \ |
||||
(JAS_STREAM_EOF | JAS_STREAM_ERR | JAS_STREAM_RWLIMIT) |
||||
|
||||
/*
|
||||
* Other miscellaneous constants. |
||||
*/ |
||||
|
||||
/* The default buffer size (for fully-buffered operation). */ |
||||
#define JAS_STREAM_BUFSIZE 8192 |
||||
/* The default permission mask for file creation. */ |
||||
#define JAS_STREAM_PERMS 0666 |
||||
|
||||
/* The maximum number of characters that can always be put back on a stream. */ |
||||
#define JAS_STREAM_MAXPUTBACK 16 |
||||
|
||||
/******************************************************************************\
|
||||
* Types. |
||||
\******************************************************************************/ |
||||
|
||||
/*
|
||||
* Generic file object. |
||||
*/ |
||||
|
||||
typedef void jas_stream_obj_t; |
||||
|
||||
/*
|
||||
* Generic file object operations. |
||||
*/ |
||||
|
||||
typedef struct { |
||||
|
||||
/* Read characters from a file object. */ |
||||
int (*read_)(jas_stream_obj_t *obj, char *buf, int cnt); |
||||
|
||||
/* Write characters to a file object. */ |
||||
int (*write_)(jas_stream_obj_t *obj, char *buf, int cnt); |
||||
|
||||
/* Set the position for a file object. */ |
||||
long (*seek_)(jas_stream_obj_t *obj, long offset, int origin); |
||||
|
||||
/* Close a file object. */ |
||||
int (*close_)(jas_stream_obj_t *obj); |
||||
|
||||
} jas_stream_ops_t; |
||||
|
||||
/*
|
||||
* Stream object. |
||||
*/ |
||||
|
||||
typedef struct { |
||||
|
||||
/* The mode in which the stream was opened. */ |
||||
int openmode_; |
||||
|
||||
/* The buffering mode. */ |
||||
int bufmode_; |
||||
|
||||
/* The stream status. */ |
||||
int flags_; |
||||
|
||||
/* The start of the buffer area to use for reading/writing. */ |
||||
uchar *bufbase_; |
||||
|
||||
/* The start of the buffer area excluding the extra initial space for
|
||||
character putback. */ |
||||
uchar *bufstart_; |
||||
|
||||
/* The buffer size. */ |
||||
int bufsize_; |
||||
|
||||
/* The current position in the buffer. */ |
||||
uchar *ptr_; |
||||
|
||||
/* The number of characters that must be read/written before
|
||||
the buffer needs to be filled/flushed. */ |
||||
int cnt_; |
||||
|
||||
/* A trivial buffer to be used for unbuffered operation. */ |
||||
uchar tinybuf_[JAS_STREAM_MAXPUTBACK + 1]; |
||||
|
||||
/* The operations for the underlying stream file object. */ |
||||
jas_stream_ops_t *ops_; |
||||
|
||||
/* The underlying stream file object. */ |
||||
jas_stream_obj_t *obj_; |
||||
|
||||
/* The number of characters read/written. */ |
||||
long rwcnt_; |
||||
|
||||
/* The maximum number of characters that may be read/written. */ |
||||
long rwlimit_; |
||||
|
||||
} jas_stream_t; |
||||
|
||||
/*
|
||||
* Regular file object. |
||||
*/ |
||||
|
||||
/*
|
||||
* File descriptor file object. |
||||
*/ |
||||
typedef struct { |
||||
int fd; |
||||
int flags; |
||||
char pathname[L_tmpnam + 1]; |
||||
} jas_stream_fileobj_t; |
||||
|
||||
#define JAS_STREAM_FILEOBJ_DELONCLOSE 0x01 |
||||
#define JAS_STREAM_FILEOBJ_NOCLOSE 0x02 |
||||
|
||||
/*
|
||||
* Memory file object. |
||||
*/ |
||||
|
||||
typedef struct { |
||||
|
||||
/* The data associated with this file. */ |
||||
uchar *buf_; |
||||
|
||||
/* The allocated size of the buffer for holding file data. */ |
||||
int bufsize_; |
||||
|
||||
/* The length of the file. */ |
||||
int_fast32_t len_; |
||||
|
||||
/* The seek position. */ |
||||
int_fast32_t pos_; |
||||
|
||||
/* Is the buffer growable? */ |
||||
int growable_; |
||||
|
||||
/* Was the buffer allocated internally? */ |
||||
int myalloc_; |
||||
|
||||
} jas_stream_memobj_t; |
||||
|
||||
/******************************************************************************\
|
||||
* Macros/functions for opening and closing streams. |
||||
\******************************************************************************/ |
||||
|
||||
/* Open a file as a stream. */ |
||||
jas_stream_t *jas_stream_fopen(const char *filename, const char *mode); |
||||
|
||||
/* Open a memory buffer as a stream. */ |
||||
jas_stream_t *jas_stream_memopen(char *buf, int bufsize); |
||||
|
||||
/* Open a file descriptor as a stream. */ |
||||
jas_stream_t *jas_stream_fdopen(int fd, const char *mode); |
||||
|
||||
/* Open a stdio stream as a stream. */ |
||||
jas_stream_t *jas_stream_freopen(const char *path, const char *mode, FILE *fp); |
||||
|
||||
/* Open a temporary file as a stream. */ |
||||
jas_stream_t *jas_stream_tmpfile(void); |
||||
|
||||
/* Close a stream. */ |
||||
int jas_stream_close(jas_stream_t *stream); |
||||
|
||||
/******************************************************************************\
|
||||
* Macros/functions for getting/setting the stream state. |
||||
\******************************************************************************/ |
||||
|
||||
/* Get the EOF indicator for a stream. */ |
||||
#define jas_stream_eof(stream) \ |
||||
(((stream)->flags_ & JAS_STREAM_EOF) != 0) |
||||
|
||||
/* Get the error indicator for a stream. */ |
||||
#define jas_stream_error(stream) \ |
||||
(((stream)->flags_ & JAS_STREAM_ERR) != 0) |
||||
|
||||
/* Clear the error indicator for a stream. */ |
||||
#define jas_stream_clearerr(stream) \ |
||||
((stream)->flags_ &= ~(JAS_STREAM_ERR | JAS_STREAM_EOF)) |
||||
|
||||
/* Get the read/write limit for a stream. */ |
||||
#define jas_stream_getrwlimit(stream) \ |
||||
(((const jas_stream_t *)(stream))->rwlimit_) |
||||
|
||||
/* Set the read/write limit for a stream. */ |
||||
int jas_stream_setrwlimit(jas_stream_t *stream, long rwlimit); |
||||
|
||||
/* Get the read/write count for a stream. */ |
||||
#define jas_stream_getrwcount(stream) \ |
||||
(((const jas_stream_t *)(stream))->rwcnt_) |
||||
|
||||
/* Set the read/write count for a stream. */ |
||||
long jas_stream_setrwcount(jas_stream_t *stream, long rwcnt); |
||||
|
||||
/******************************************************************************\
|
||||
* Macros/functions for I/O. |
||||
\******************************************************************************/ |
||||
|
||||
/* Read a character from a stream. */ |
||||
#if defined(DEBUG) |
||||
#define jas_stream_getc(stream) jas_stream_getc_func(stream) |
||||
#else |
||||
#define jas_stream_getc(stream) jas_stream_getc_macro(stream) |
||||
#endif |
||||
|
||||
/* Write a character to a stream. */ |
||||
#if defined(DEBUG) |
||||
#define jas_stream_putc(stream, c) jas_stream_putc_func(stream, c) |
||||
#else |
||||
#define jas_stream_putc(stream, c) jas_stream_putc_macro(stream, c) |
||||
#endif |
||||
|
||||
/* Read characters from a stream into a buffer. */ |
||||
int jas_stream_read(jas_stream_t *stream, void *buf, int cnt); |
||||
|
||||
/* Write characters from a buffer to a stream. */ |
||||
int jas_stream_write(jas_stream_t *stream, const void *buf, int cnt); |
||||
|
||||
/* Write formatted output to a stream. */ |
||||
int jas_stream_printf(jas_stream_t *stream, const char *fmt, ...); |
||||
|
||||
/* Write a string to a stream. */ |
||||
int jas_stream_puts(jas_stream_t *stream, const char *s); |
||||
|
||||
/* Read a line of input from a stream. */ |
||||
char *jas_stream_gets(jas_stream_t *stream, char *buf, int bufsize); |
||||
|
||||
/* Look at the next character to be read from a stream without actually
|
||||
removing it from the stream. */ |
||||
#define jas_stream_peekc(stream) \ |
||||
(((stream)->cnt_ <= 0) ? jas_stream_fillbuf(stream, 0) : \
|
||||
((int)(*(stream)->ptr_))) |
||||
|
||||
/* Put a character back on a stream. */ |
||||
int jas_stream_ungetc(jas_stream_t *stream, int c); |
||||
|
||||
/******************************************************************************\
|
||||
* Macros/functions for getting/setting the stream position. |
||||
\******************************************************************************/ |
||||
|
||||
/* Is it possible to seek on this stream? */ |
||||
int jas_stream_isseekable(jas_stream_t *stream); |
||||
|
||||
/* Set the current position within the stream. */ |
||||
long jas_stream_seek(jas_stream_t *stream, long offset, int origin); |
||||
|
||||
/* Get the current position within the stream. */ |
||||
long jas_stream_tell(jas_stream_t *stream); |
||||
|
||||
/* Seek to the beginning of a stream. */ |
||||
int jas_stream_rewind(jas_stream_t *stream); |
||||
|
||||
/******************************************************************************\
|
||||
* Macros/functions for flushing. |
||||
\******************************************************************************/ |
||||
|
||||
/* Flush any pending output to a stream. */ |
||||
int jas_stream_flush(jas_stream_t *stream); |
||||
|
||||
/******************************************************************************\
|
||||
* Miscellaneous macros/functions. |
||||
\******************************************************************************/ |
||||
|
||||
/* Copy data from one stream to another. */ |
||||
int jas_stream_copy(jas_stream_t *dst, jas_stream_t *src, int n); |
||||
|
||||
/* Display stream contents (for debugging purposes). */ |
||||
int jas_stream_display(jas_stream_t *stream, FILE *fp, int n); |
||||
|
||||
/* Consume (i.e., discard) characters from stream. */ |
||||
int jas_stream_gobble(jas_stream_t *stream, int n); |
||||
|
||||
/* Write a character multiple times to a stream. */ |
||||
int jas_stream_pad(jas_stream_t *stream, int n, int c); |
||||
|
||||
/* Get the size of the file associated with the specified stream.
|
||||
The specified stream must be seekable. */ |
||||
long jas_stream_length(jas_stream_t *stream); |
||||
|
||||
/******************************************************************************\
|
||||
* Internal functions. |
||||
\******************************************************************************/ |
||||
|
||||
/* The following functions are for internal use only! If you call them
|
||||
directly, you will die a horrible, miserable, and painful death! */ |
||||
|
||||
/* Read a character from a stream. */ |
||||
#define jas_stream_getc_macro(stream) \ |
||||
((!((stream)->flags_ & (JAS_STREAM_ERR | JAS_STREAM_EOF | \
|
||||
JAS_STREAM_RWLIMIT))) ? \
|
||||
(((stream)->rwlimit_ >= 0 && (stream)->rwcnt_ >= (stream)->rwlimit_) ? \
|
||||
(stream->flags_ |= JAS_STREAM_RWLIMIT, EOF) : \
|
||||
jas_stream_getc2(stream)) : EOF) |
||||
#define jas_stream_getc2(stream) \ |
||||
((--(stream)->cnt_ < 0) ? jas_stream_fillbuf(stream, 1) : \
|
||||
(++(stream)->rwcnt_, (int)(*(stream)->ptr_++))) |
||||
|
||||
/* Write a character to a stream. */ |
||||
#define jas_stream_putc_macro(stream, c) \ |
||||
((!((stream)->flags_ & (JAS_STREAM_ERR | JAS_STREAM_EOF | \
|
||||
JAS_STREAM_RWLIMIT))) ? \
|
||||
(((stream)->rwlimit_ >= 0 && (stream)->rwcnt_ >= (stream)->rwlimit_) ? \
|
||||
(stream->flags_ |= JAS_STREAM_RWLIMIT, EOF) : \
|
||||
jas_stream_putc2(stream, c)) : EOF) |
||||
#define jas_stream_putc2(stream, c) \ |
||||
(((stream)->bufmode_ |= JAS_STREAM_WRBUF, --(stream)->cnt_ < 0) ? \
|
||||
jas_stream_flushbuf((stream), (uchar)(c)) : \
|
||||
(++(stream)->rwcnt_, (int)(*(stream)->ptr_++ = (c)))) |
||||
|
||||
/* These prototypes need to be here for the sake of the stream_getc and
|
||||
stream_putc macros. */ |
||||
int jas_stream_fillbuf(jas_stream_t *stream, int getflag); |
||||
int jas_stream_flushbuf(jas_stream_t *stream, int c); |
||||
int jas_stream_getc_func(jas_stream_t *stream); |
||||
int jas_stream_putc_func(jas_stream_t *stream, int c); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,95 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* String Library |
||||
* |
||||
* $Id: jas_string.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_STRING_H |
||||
#define JAS_STRING_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <jasper/jas_config.h> |
||||
#include <string.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Functions. |
||||
\******************************************************************************/ |
||||
|
||||
/* Copy a string (a la strdup). */ |
||||
char *jas_strdup(const char *); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,103 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2004 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
#ifndef JAS_TMR_H |
||||
#define JAS_TMR_H |
||||
|
||||
#include<time.h> |
||||
#include <jasper/jas_config.h> |
||||
#if defined(HAVE_SYS_TIME_H) |
||||
#include <sys/time.h> |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#if defined(HAVE_GETTIMEOFDAY) |
||||
|
||||
typedef struct { |
||||
struct timeval start; |
||||
struct timeval stop; |
||||
} jas_tmr_t; |
||||
|
||||
#elif defined(HAVE_GETRUSAGE) |
||||
|
||||
typedef struct { |
||||
struct rusage start; |
||||
struct rusage stop; |
||||
} jas_tmr_t; |
||||
|
||||
#else |
||||
|
||||
typedef int jas_tmr_t; |
||||
|
||||
#endif |
||||
|
||||
void jas_tmr_start(jas_tmr_t *tmr); |
||||
void jas_tmr_stop(jas_tmr_t *tmr); |
||||
double jas_tmr_get(jas_tmr_t *tmr); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,151 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2001-2002 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Tag/Value Parser |
||||
* |
||||
* $Id: jas_tvp.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_TVP_H |
||||
#define JAS_TVP_H |
||||
|
||||
/******************************************************************************\
|
||||
* Includes. |
||||
\******************************************************************************/ |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Types. |
||||
\******************************************************************************/ |
||||
|
||||
/* Tag information type. */ |
||||
|
||||
typedef struct { |
||||
|
||||
int id; |
||||
/* The ID for the tag. */ |
||||
|
||||
char *name; |
||||
/* The name of the tag. */ |
||||
|
||||
} jas_taginfo_t; |
||||
|
||||
/* Tag-value parser type. */ |
||||
|
||||
typedef struct { |
||||
|
||||
char *buf; |
||||
/* The parsing buffer. */ |
||||
|
||||
char *tag; |
||||
/* The current tag name. */ |
||||
|
||||
char *val; |
||||
/* The current value. */ |
||||
|
||||
char *pos; |
||||
/* The current position in the parsing buffer. */ |
||||
|
||||
} jas_tvparser_t; |
||||
|
||||
/******************************************************************************\
|
||||
* Tag information functions. |
||||
\******************************************************************************/ |
||||
|
||||
/* Lookup a tag by name. */ |
||||
jas_taginfo_t *jas_taginfos_lookup(jas_taginfo_t *taginfos, const char *name); |
||||
|
||||
/* This function returns a pointer to the specified taginfo object if it
|
||||
exists (i.e., the pointer is nonnull); otherwise, a pointer to a dummy |
||||
object is returned. This is useful in some situations to avoid checking |
||||
for a null pointer. */ |
||||
jas_taginfo_t *jas_taginfo_nonull(jas_taginfo_t *taginfo); |
||||
|
||||
/******************************************************************************\
|
||||
* Tag-value parser functions. |
||||
\******************************************************************************/ |
||||
|
||||
/* Create a tag-value parser for the specified string. */ |
||||
jas_tvparser_t *jas_tvparser_create(const char *s); |
||||
|
||||
/* Destroy a tag-value parser. */ |
||||
void jas_tvparser_destroy(jas_tvparser_t *tvparser); |
||||
|
||||
/* Get the next tag-value pair. */ |
||||
int jas_tvparser_next(jas_tvparser_t *tvparser); |
||||
|
||||
/* Get the tag name for the current tag-value pair. */ |
||||
char *jas_tvparser_gettag(jas_tvparser_t *tvparser); |
||||
|
||||
/* Get the value for the current tag-value pair. */ |
||||
char *jas_tvparser_getval(jas_tvparser_t *tvparser); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,228 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* Primitive Types |
||||
* |
||||
* $Id: jas_types.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_TYPES_H |
||||
#define JAS_TYPES_H |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#if !defined(JAS_CONFIGURE) |
||||
|
||||
#if defined(WIN32) || defined(HAVE_WINDOWS_H) |
||||
/*
|
||||
We are dealing with Microsoft Windows and most likely Microsoft |
||||
Visual C (MSVC). (Heaven help us.) Sadly, MSVC does not correctly |
||||
define some of the standard types specified in ISO/IEC 9899:1999. |
||||
In particular, it does not define the "long long" and "unsigned long |
||||
long" types. So, we work around this problem by using the "INT64" |
||||
and "UINT64" types that are defined in the header file "windows.h". |
||||
*/ |
||||
#include <windows.h> |
||||
#undef longlong |
||||
#define longlong INT64 |
||||
#undef ulonglong |
||||
#define ulonglong UINT64 |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
#if defined(HAVE_STDLIB_H) |
||||
#undef false |
||||
#undef true |
||||
#include <stdlib.h> |
||||
#endif |
||||
#if defined(HAVE_STDDEF_H) |
||||
#include <stddef.h> |
||||
#endif |
||||
#if defined(HAVE_SYS_TYPES_H) |
||||
#include <sys/types.h> |
||||
#endif |
||||
|
||||
#ifndef __cplusplus |
||||
#if defined(HAVE_STDBOOL_H) |
||||
/*
|
||||
* The C language implementation does correctly provide the standard header |
||||
* file "stdbool.h". |
||||
*/ |
||||
#include <stdbool.h> |
||||
#else |
||||
|
||||
/*
|
||||
* The C language implementation does not provide the standard header file |
||||
* "stdbool.h" as required by ISO/IEC 9899:1999. Try to compensate for this |
||||
* braindamage below. |
||||
*/ |
||||
#if !defined(bool) |
||||
#define bool int |
||||
#endif |
||||
#if !defined(true) |
||||
#define true 1 |
||||
#endif |
||||
#if !defined(false) |
||||
#define false 0 |
||||
#endif |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
#if defined(HAVE_STDINT_H) |
||||
/*
|
||||
* The C language implementation does correctly provide the standard header |
||||
* file "stdint.h". |
||||
*/ |
||||
#include <stdint.h> |
||||
#else |
||||
/*
|
||||
* The C language implementation does not provide the standard header file |
||||
* "stdint.h" as required by ISO/IEC 9899:1999. Try to compensate for this |
||||
* braindamage below. |
||||
*/ |
||||
#include <limits.h> |
||||
/**********/ |
||||
#if !defined(INT_FAST8_MIN) |
||||
typedef signed char int_fast8_t; |
||||
#define INT_FAST8_MIN (-127) |
||||
#define INT_FAST8_MAX 128 |
||||
#endif |
||||
/**********/ |
||||
#if !defined(UINT_FAST8_MAX) |
||||
typedef unsigned char uint_fast8_t; |
||||
#define UINT_FAST8_MAX 255 |
||||
#endif |
||||
/**********/ |
||||
#if !defined(INT_FAST16_MIN) |
||||
typedef short int_fast16_t; |
||||
#define INT_FAST16_MIN SHRT_MIN |
||||
#define INT_FAST16_MAX SHRT_MAX |
||||
#endif |
||||
/**********/ |
||||
#if !defined(UINT_FAST16_MAX) |
||||
typedef unsigned short uint_fast16_t; |
||||
#define UINT_FAST16_MAX USHRT_MAX |
||||
#endif |
||||
/**********/ |
||||
#if !defined(INT_FAST32_MIN) |
||||
typedef int int_fast32_t; |
||||
#define INT_FAST32_MIN INT_MIN |
||||
#define INT_FAST32_MAX INT_MAX |
||||
#endif |
||||
/**********/ |
||||
#if !defined(UINT_FAST32_MAX) |
||||
typedef unsigned int uint_fast32_t; |
||||
#define UINT_FAST32_MAX UINT_MAX |
||||
#endif |
||||
/**********/ |
||||
#if !defined(INT_FAST64_MIN) |
||||
typedef longlong int_fast64_t; |
||||
#define INT_FAST64_MIN LLONG_MIN |
||||
#define INT_FAST64_MAX LLONG_MAX |
||||
#endif |
||||
/**********/ |
||||
#if !defined(UINT_FAST64_MAX) |
||||
typedef ulonglong uint_fast64_t; |
||||
#define UINT_FAST64_MAX ULLONG_MAX |
||||
#endif |
||||
/**********/ |
||||
#endif |
||||
|
||||
/* Hopefully, these macro definitions will fix more problems than they cause. */ |
||||
#if !defined(uchar) |
||||
#define uchar unsigned char |
||||
#endif |
||||
#if !defined(ushort) |
||||
#define ushort unsigned short |
||||
#endif |
||||
#if !defined(uint) |
||||
#define uint unsigned int |
||||
#endif |
||||
#if !defined(ulong) |
||||
#define ulong unsigned long |
||||
#endif |
||||
#if !defined(longlong) |
||||
#define longlong long long |
||||
#endif |
||||
#if !defined(ulonglong) |
||||
#define ulonglong unsigned long long |
||||
#endif |
||||
|
||||
/* The below macro is intended to be used for type casts. By using this
|
||||
macro, type casts can be easily located in the source code with |
||||
tools like "grep". */ |
||||
#define JAS_CAST(t, e) \ |
||||
((t) (e)) |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,120 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 1999-2000 Image Power, Inc. and the University of |
||||
* British Columbia. |
||||
* Copyright (c) 2001-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
/*
|
||||
* $Id: jas_version.h,v 1.2 2008-05-26 09:41:51 vp153 Exp $ |
||||
*/ |
||||
|
||||
#ifndef JAS_VERSION_H |
||||
#define JAS_VERSION_H |
||||
|
||||
#include <jasper/jas_config.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/******************************************************************************\
|
||||
* Constants and types. |
||||
\******************************************************************************/ |
||||
|
||||
#if !defined(JAS_VERSION) |
||||
/* The version information below should match that specified in
|
||||
the "configure.in" file! */ |
||||
#define JAS_VERSION "unknown" |
||||
#endif |
||||
|
||||
#define JAS_COPYRIGHT \ |
||||
"Copyright (c) 2001-2006 Michael David Adams.\n" \
|
||||
"Copyright (c) 1999-2000 Image Power, Inc. and the University of\n" \
|
||||
" British Columbia.\n" \
|
||||
"All rights reserved.\n" |
||||
|
||||
#define JAS_NOTES \ |
||||
"For more information about this software, please visit the following\n" \
|
||||
"web sites/pages:\n" \
|
||||
" http://www.ece.uvic.ca/~mdadams/jasper\n" \
|
||||
" http://www.jpeg.org/software\n" \
|
||||
"To be added to the (moderated) JasPer software announcements\n" \
|
||||
"mailing list, send an email to:\n" \
|
||||
" jasper-announce-subscribe@yahoogroups.com\n" \
|
||||
"To be added to the (unmoderated) JasPer software discussion\n" \
|
||||
"mailing list, send an email to:\n" \
|
||||
" jasper-discussion-subscribe@yahoogroups.com\n" \
|
||||
"Please send any bug reports to:\n" \
|
||||
" mdadams@ieee.org\n" |
||||
|
||||
/******************************************************************************\
|
||||
* Functions. |
||||
\******************************************************************************/ |
||||
|
||||
const char *jas_getversion(void); |
||||
/* Get the version information for the JasPer library. */ |
||||
/* Note: Since libjasper can be built as a shared library, the version
|
||||
returned by this function may not necessarily correspond to JAS_VERSION. */ |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -1,93 +0,0 @@ |
||||
/*
|
||||
* Copyright (c) 2001-2003 Michael David Adams. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer License Version 2.0 |
||||
*
|
||||
* Copyright (c) 2001-2006 Michael David Adams |
||||
* Copyright (c) 1999-2000 Image Power, Inc. |
||||
* Copyright (c) 1999-2000 The University of British Columbia |
||||
*
|
||||
* All rights reserved. |
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the |
||||
* "User") obtaining a copy of this software and associated documentation |
||||
* files (the "Software"), to deal in the Software without restriction, |
||||
* including without limitation the rights to use, copy, modify, merge, |
||||
* publish, distribute, and/or sell copies of the Software, and to permit |
||||
* persons to whom the Software is furnished to do so, subject to the |
||||
* following conditions: |
||||
*
|
||||
* 1. The above copyright notices and this permission notice (which |
||||
* includes the disclaimer below) shall be included in all copies or |
||||
* substantial portions of the Software. |
||||
*
|
||||
* 2. The name of a copyright holder shall not be used to endorse or |
||||
* promote products derived from the Software without specific prior |
||||
* written permission. |
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS |
||||
* LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER |
||||
* THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS |
||||
* "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
||||
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO |
||||
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE |
||||
* PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE |
||||
* THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. |
||||
* EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS |
||||
* BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL |
||||
* PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS |
||||
* GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE |
||||
* ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE |
||||
* IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL |
||||
* SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, |
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL |
||||
* SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH |
||||
* THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, |
||||
* PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH |
||||
* RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY |
||||
* EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. |
||||
*
|
||||
* __END_OF_JASPER_LICENSE__ |
||||
*/ |
||||
|
||||
#ifndef JAS_JASPER_H |
||||
#define JAS_JASPER_H |
||||
|
||||
#include <jasper/jas_config.h> |
||||
#include <jasper/jas_types.h> |
||||
#include <jasper/jas_version.h> |
||||
|
||||
#include <jasper/jas_init.h> |
||||
#include <jasper/jas_cm.h> |
||||
#include <jasper/jas_icc.h> |
||||
#include <jasper/jas_fix.h> |
||||
#include <jasper/jas_debug.h> |
||||
#include <jasper/jas_getopt.h> |
||||
#include <jasper/jas_image.h> |
||||
#include <jasper/jas_icc.h> |
||||
#include <jasper/jas_math.h> |
||||
#include <jasper/jas_malloc.h> |
||||
#include <jasper/jas_seq.h> |
||||
#include <jasper/jas_stream.h> |
||||
#include <jasper/jas_string.h> |
||||
#include <jasper/jas_tmr.h> |
||||
#include <jasper/jas_tvp.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,8 @@ |
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/include") |
||||
set(deps zlib) |
||||
if(ZLIB_FOUND) |
||||
include_directories(${ZLIB_INCUDE_DIR}) |
||||
set(deps ${ZLIB_LIBRARIES}) |
||||
else() |
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/zlib") |
||||
set(deps zlib) |
||||
endif() |
||||
define_opencv_module(core ${deps}) |
||||
|
Loading…
Reference in new issue