JasPer library base headers, for JPEG2000 Translator contributed by Shard
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2773 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
824f2204d0
commit
8c714454f0
161
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_debug.h
Executable file
161
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_debug.h
Executable file
@ -0,0 +1,161 @@
|
||||
/*
|
||||
* Copyright (c) 2001-2002 Michael David Adams.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Debugging-Related Code
|
||||
*
|
||||
* $Id: jas_debug.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_DEBUG_H
|
||||
#define JAS_DEBUG_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "jasper/jas_types.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();
|
||||
|
||||
/* 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
|
406
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_fix.h
Executable file
406
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_fix.h
Executable file
@ -0,0 +1,406 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Fixed-Point Number Class
|
||||
*
|
||||
* $Id: jas_fix.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_FIX_H
|
||||
#define JAS_FIX_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.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() \
|
||||
fprintf(stderr, "overflow error: file %s, line %d\n", __FILE__, __LINE__)
|
||||
|
||||
/* Handle underflow. */
|
||||
#define JAS_FIX_UFLOW() \
|
||||
fprintf(stderr, "underflow error: file %s, line %d\n", __FILE__, __LINE__)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
178
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_getopt.h
Executable file
178
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_getopt.h
Executable file
@ -0,0 +1,178 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Command Line Option Parsing Code
|
||||
*
|
||||
* $Id: jas_getopt.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_GETOPT_H
|
||||
#define JAS_GETOPT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************\
|
||||
* 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
|
588
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_image.h
Executable file
588
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_image.h
Executable file
@ -0,0 +1,588 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Image Class
|
||||
*
|
||||
* $Id: jas_image.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_IMAGE_H
|
||||
#define JAS_IMAGE_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#include <jasper/jas_stream.h>
|
||||
#include <jasper/jas_seq.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)
|
||||
|
||||
/*
|
||||
* Color models.
|
||||
*/
|
||||
|
||||
#define JAS_IMAGE_CS_UNKNOWN 0 /* Unknown */
|
||||
#define JAS_IMAGE_CS_GRAY 1 /* Standard Gray */
|
||||
#define JAS_IMAGE_CS_RGB 2 /* Standard RGB */
|
||||
#define JAS_IMAGE_CS_YCBCR 3 /* Standard YCC */
|
||||
/*#define JAS_IMAGE_CM_ICC 4 /* ICC Profile */
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
/******************************************************************************\
|
||||
* Image class and supporting classes.
|
||||
\******************************************************************************/
|
||||
|
||||
/* Image component class. */
|
||||
|
||||
typedef struct {
|
||||
|
||||
uint_fast32_t tlx_;
|
||||
/* The x-coordinate of the top-left corner of the component. */
|
||||
|
||||
uint_fast32_t tly_;
|
||||
/* The y-coordinate of the top-left corner of the component. */
|
||||
|
||||
uint_fast32_t hstep_;
|
||||
/* The horizontal sampling period in units of the reference grid. */
|
||||
|
||||
uint_fast32_t vstep_;
|
||||
/* The vertical sampling period in units of the reference grid. */
|
||||
|
||||
uint_fast32_t width_;
|
||||
/* The component width in samples. */
|
||||
|
||||
uint_fast32_t height_;
|
||||
/* The component height in samples. */
|
||||
|
||||
uint_fast16_t 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. */
|
||||
|
||||
uint_fast8_t sgnd_;
|
||||
/* The signedness of the sample data. */
|
||||
|
||||
jas_stream_t *stream_;
|
||||
/* The stream containing the component data. */
|
||||
|
||||
int cps_;
|
||||
/* The number of characters per sample in the stream. */
|
||||
|
||||
uint_fast32_t type_;
|
||||
/* The type of component (e.g., opacity, red, green, blue, luma). */
|
||||
|
||||
} jas_image_cmpt_t;
|
||||
|
||||
/* Image class. */
|
||||
|
||||
typedef struct {
|
||||
|
||||
uint_fast32_t tlx_;
|
||||
/* The x-coordinate of the top-left corner of the image bounding box. */
|
||||
|
||||
uint_fast32_t tly_;
|
||||
/* The y-coordinate of the top-left corner of the image bounding box. */
|
||||
|
||||
uint_fast32_t brx_;
|
||||
/* The x-coordinate of the bottom-right corner of the image bounding
|
||||
box (plus one). */
|
||||
|
||||
uint_fast32_t bry_;
|
||||
/* The y-coordinate of the bottom-right corner of the image bounding
|
||||
box (plus one). */
|
||||
|
||||
uint_fast16_t numcmpts_;
|
||||
/* The number of components. */
|
||||
|
||||
uint_fast16_t 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. */
|
||||
|
||||
int colorspace_;
|
||||
/* The color space used (e.g., RGB, YCbCr, gray). This field is only
|
||||
of particular relevance in the case of a multi-component image. */
|
||||
|
||||
jpr_uchar_t *iccp_;
|
||||
/* ICC profile information. */
|
||||
|
||||
int iccplen_;
|
||||
|
||||
JPR_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 {
|
||||
|
||||
uint_fast32_t tlx;
|
||||
/* The x-coordinate of the top-left corner of the component. */
|
||||
|
||||
uint_fast32_t tly;
|
||||
/* The y-coordinate of the top-left corner of the component. */
|
||||
|
||||
uint_fast32_t hstep;
|
||||
/* The horizontal sampling period in units of the reference grid. */
|
||||
|
||||
uint_fast32_t vstep;
|
||||
/* The vertical sampling period in units of the reference grid. */
|
||||
|
||||
uint_fast32_t width;
|
||||
/* The width of the component in samples. */
|
||||
|
||||
uint_fast32_t height;
|
||||
/* The height of the component in samples. */
|
||||
|
||||
uint_fast16_t prec;
|
||||
/* The precision of the component sample data. */
|
||||
|
||||
JPR_BOOL sgnd;
|
||||
/* The signedness of the component sample data. */
|
||||
|
||||
} 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(uint_fast16_t numcmpts,
|
||||
jas_image_cmptparm_t *cmptparms, int colorspace);
|
||||
|
||||
/* Create an "empty" image. */
|
||||
jas_image_t *jas_image_create0();
|
||||
|
||||
/* 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_colorspace(image) \
|
||||
((image)->colorspace_)
|
||||
|
||||
/* Set the color model for an image. */
|
||||
#define jas_image_setcolorspace(image, colorspace) \
|
||||
((image)->colorspace_ = (colorspace))
|
||||
|
||||
#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, uint_fast16_t cmptno,
|
||||
uint_fast32_t x, uint_fast32_t y, uint_fast32_t width, uint_fast32_t height,
|
||||
jas_matrix_t *data);
|
||||
|
||||
/* Write a rectangular region of an image component. */
|
||||
int jas_image_writecmpt(jas_image_t *image, uint_fast16_t cmptno,
|
||||
uint_fast32_t x, uint_fast32_t y, uint_fast32_t width, uint_fast32_t height,
|
||||
jas_matrix_t *data);
|
||||
|
||||
/* Delete a component from an image. */
|
||||
void jas_image_delcmpt(jas_image_t *image, uint_fast16_t cmptno);
|
||||
|
||||
/* Add a component to an image. */
|
||||
int jas_image_addcmpt(jas_image_t *image, uint_fast16_t 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);
|
||||
|
||||
#if 0
|
||||
int_fast64_t jas_image_readcmpt1(jas_image_t *image, uint_fast16_t cmptno,
|
||||
uint_fast32_t x, uint_fast32_t y);
|
||||
#endif
|
||||
|
||||
#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();
|
||||
|
||||
/* 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);
|
||||
|
||||
/******************************************************************************\
|
||||
* 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
|
128
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_init.h
Executable file
128
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_init.h
Executable file
@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (c) 2001-2002 Michael David Adams.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
#ifndef JAS_INIT_H
|
||||
#define JAS_INIT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************\
|
||||
* Functions.
|
||||
\******************************************************************************/
|
||||
|
||||
extern int jas_init(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
171
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_malloc.h
Executable file
171
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_malloc.h
Executable file
@ -0,0 +1,171 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Memory Allocator
|
||||
*
|
||||
* $Id: jas_malloc.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_MALLOC_H
|
||||
#define JAS_MALLOC_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#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
|
164
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_math.h
Executable file
164
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_math.h
Executable file
@ -0,0 +1,164 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Math-Related Code
|
||||
*
|
||||
* $Id: jas_math.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_MATH_H
|
||||
#define JAS_MATH_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes
|
||||
\******************************************************************************/
|
||||
|
||||
#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
|
344
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_seq.h
Executable file
344
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_seq.h
Executable file
@ -0,0 +1,344 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Sequence/Matrix Library
|
||||
*
|
||||
* $Id: jas_seq.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_SEQ_H
|
||||
#define JAS_SEQ_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#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);
|
||||
|
||||
/******************************************************************************\
|
||||
* 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
|
498
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_stream.h
Executable file
498
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_stream.h
Executable file
@ -0,0 +1,498 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* I/O Stream Class
|
||||
*
|
||||
* $Id: jas_stream.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_STREAM_H
|
||||
#define JAS_STREAM_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#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
|
||||
|
||||
#define JAS_STREAM_NOCLOSE 0x0020
|
||||
|
||||
/*
|
||||
* 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. */
|
||||
jpr_uchar_t *bufbase_;
|
||||
|
||||
/* The start of the buffer area excluding the extra initial space for
|
||||
character putback. */
|
||||
jpr_uchar_t *bufstart_;
|
||||
|
||||
/* The buffer size. */
|
||||
int bufsize_;
|
||||
|
||||
/* The current position in the buffer. */
|
||||
jpr_uchar_t *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. */
|
||||
jpr_uchar_t 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.
|
||||
*/
|
||||
|
||||
/* Note: This is simply a file descriptor. */
|
||||
typedef int jas_stream_fileobj_t;
|
||||
|
||||
/*
|
||||
* Memory file object.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
|
||||
/* The data associated with this file. */
|
||||
jpr_uchar_t *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();
|
||||
|
||||
/* 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);
|
||||
|
||||
/* 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), (jpr_uchar_t)(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
|
143
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_string.h
Executable file
143
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_string.h
Executable file
@ -0,0 +1,143 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* String Library
|
||||
*
|
||||
* $Id: jas_string.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_STRING_H
|
||||
#define JAS_STRING_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************\
|
||||
* Functions.
|
||||
\******************************************************************************/
|
||||
|
||||
/* Copy a string (a la strdup). */
|
||||
char *jas_strdup(const char *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
198
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_tvp.h
Executable file
198
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_tvp.h
Executable file
@ -0,0 +1,198 @@
|
||||
/*
|
||||
* Copyright (c) 2001-2002 Michael David Adams.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
/* __START_OF_JASPER_LICENSE__
|
||||
*
|
||||
* JasPer Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Tag/Value Parser
|
||||
*
|
||||
* $Id: jas_tvp.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_TVP_H
|
||||
#define JAS_TVP_H
|
||||
|
||||
/******************************************************************************\
|
||||
* Includes.
|
||||
\******************************************************************************/
|
||||
|
||||
#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
|
304
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_types.h
Executable file
304
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_types.h
Executable file
@ -0,0 +1,304 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* Primitive Types
|
||||
*
|
||||
* $Id: jas_types.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_TYPES_H
|
||||
#define JAS_TYPES_H
|
||||
|
||||
// <mwilber>
|
||||
|
||||
/* Define if you have the vprintf function. */
|
||||
#define HAVE_VPRINTF 1
|
||||
/* Define if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
/* Define if the X Window System is missing or not being used. */
|
||||
#define X_DISPLAY_MISSING 1
|
||||
#define JAS_CONFIGURE 1
|
||||
#define longlong long long
|
||||
#define ulonglong unsigned long long
|
||||
/* The number of bytes in a int. */
|
||||
#define SIZEOF_INT 4
|
||||
/* The number of bytes in a long. */
|
||||
#define SIZEOF_LONG 4
|
||||
/* The number of bytes in a long long. */
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
/* The number of bytes in a short. */
|
||||
#define SIZEOF_SHORT 2
|
||||
/* The number of bytes in a unsigned int. */
|
||||
#define SIZEOF_UNSIGNED_INT 4
|
||||
/* The number of bytes in a unsigned long. */
|
||||
#define SIZEOF_UNSIGNED_LONG 4
|
||||
/* The number of bytes in a unsigned long long. */
|
||||
#define SIZEOF_UNSIGNED_LONG_LONG 8
|
||||
/* The number of bytes in a unsigned short. */
|
||||
#define SIZEOF_UNSIGNED_SHORT 2
|
||||
/* Define if you have the <dlfcn.h> header file. */
|
||||
/* #undef HAVE_DLFCN_H */
|
||||
/* Define if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
/* Define if you have the <io.h> header file. */
|
||||
/* #undef HAVE_IO_H */
|
||||
/* Define if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
/* Define if you have the <stdbool.h> header file. */
|
||||
/* #undef HAVE_STDBOOL_H */
|
||||
/* Define if you have the <stddef.h> header file. */
|
||||
#define HAVE_STDDEF_H 1
|
||||
/* Define if you have the <stdint.h> header file. */
|
||||
/* #undef HAVE_STDINT_H */
|
||||
/* Define if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
/* Define if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
typedef unsigned char jpr_uchar_t;
|
||||
// </mwilber>
|
||||
|
||||
#if !defined(JAS_CONFIGURE)
|
||||
|
||||
/*
|
||||
We are not using a configure-based build. Try to compensate for
|
||||
this here, by defining the types normally defined by configure.
|
||||
Note: These types should match those specified in the configure.in file.
|
||||
*/
|
||||
#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
|
||||
|
||||
#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)
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#if defined(HAVE_STDDEF_H)
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
#if defined(HAVE_SYS_TYPES_H)
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
// <mwilber>
|
||||
// I removed the entire "#if defined(HAVE_STDBOOL_H)" block in favor
|
||||
// of defining jpr_bool_t so it would not be confused with Be's bool type
|
||||
|
||||
#define JPR_BOOL int
|
||||
#define JPR_TRUE 1
|
||||
#define JPR_FALSE 0
|
||||
|
||||
// </mwilber>
|
||||
|
||||
#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_MIN)
|
||||
typedef unsigned char uint_fast8_t;
|
||||
#define UINT_FAST8_MIN 0
|
||||
#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_MIN)
|
||||
typedef unsigned short uint_fast16_t;
|
||||
#define UINT_FAST16_MIN USHRT_MIN
|
||||
#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_MIN)
|
||||
typedef unsigned int uint_fast32_t;
|
||||
#define UINT_FAST32_MIN UINT_MIN
|
||||
#define UINT_FAST32_MAX UINT_MAX
|
||||
#endif
|
||||
/**********/
|
||||
#if !defined(INT_FAST64_MIN)
|
||||
typedef long long int_fast64_t;
|
||||
#define INT_FAST64_MIN LLONG_MIN
|
||||
#define INT_FAST64_MAX LLONG_MAX
|
||||
#endif
|
||||
/**********/
|
||||
#if !defined(UINT_FAST64_MIN)
|
||||
typedef unsigned long long uint_fast64_t;
|
||||
#define UINT_FAST64_MIN ULLONG_MIN
|
||||
#define UINT_FAST64_MAX ULLONG_MAX
|
||||
#endif
|
||||
/**********/
|
||||
#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
|
167
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_version.h
Executable file
167
src/add-ons/translators/jpeg2000translator/libjasper/jasper/jas_version.h
Executable file
@ -0,0 +1,167 @@
|
||||
/*
|
||||
* 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 Software License
|
||||
*
|
||||
* IMAGE POWER JPEG-2000 PUBLIC LICENSE
|
||||
* ************************************
|
||||
*
|
||||
* GRANT:
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person (the "User")
|
||||
* obtaining a copy of this software and associated documentation, to deal
|
||||
* in the JasPer Software without restriction, including without limitation
|
||||
* the right to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the JasPer Software (in source and binary forms),
|
||||
* and to permit persons to whom the JasPer Software is furnished to do so,
|
||||
* provided further that the License Conditions below are met.
|
||||
*
|
||||
* License Conditions
|
||||
* ******************
|
||||
*
|
||||
* A. Redistributions of source code must retain the above copyright notice,
|
||||
* and this list of conditions, and the following disclaimer.
|
||||
*
|
||||
* B. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, and this list of conditions, and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* C. Neither the name of Image Power, Inc. nor any other contributor
|
||||
* (including, but not limited to, the University of British Columbia and
|
||||
* Michael David Adams) may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* D. User agrees that it shall not commence any action against Image Power,
|
||||
* Inc., the University of British Columbia, Michael David Adams, or any
|
||||
* other contributors (collectively "Licensors") for infringement of any
|
||||
* intellectual property rights ("IPR") held by the User in respect of any
|
||||
* technology that User owns or has a right to license or sublicense and
|
||||
* which is an element required in order to claim compliance with ISO/IEC
|
||||
* 15444-1 (i.e., JPEG-2000 Part 1). "IPR" means all intellectual property
|
||||
* rights worldwide arising under statutory or common law, and whether
|
||||
* or not perfected, including, without limitation, all (i) patents and
|
||||
* patent applications owned or licensable by User; (ii) rights associated
|
||||
* with works of authorship including copyrights, copyright applications,
|
||||
* copyright registrations, mask work rights, mask work applications,
|
||||
* mask work registrations; (iii) rights relating to the protection of
|
||||
* trade secrets and confidential information; (iv) any right analogous
|
||||
* to those set forth in subsections (i), (ii), or (iii) and any other
|
||||
* proprietary rights relating to intangible property (other than trademark,
|
||||
* trade dress, or service mark rights); and (v) divisions, continuations,
|
||||
* renewals, reissues and extensions of the foregoing (as and to the extent
|
||||
* applicable) now existing, hereafter filed, issued or acquired.
|
||||
*
|
||||
* E. If User commences an infringement action against any Licensor(s) then
|
||||
* such Licensor(s) shall have the right to terminate User's license and
|
||||
* all sublicenses that have been granted hereunder by User to other parties.
|
||||
*
|
||||
* F. This software is for use only in hardware or software products that
|
||||
* are compliant with ISO/IEC 15444-1 (i.e., JPEG-2000 Part 1). No license
|
||||
* or right to this Software is granted for products that do not comply
|
||||
* with ISO/IEC 15444-1. The JPEG-2000 Part 1 standard can be purchased
|
||||
* from the ISO.
|
||||
*
|
||||
* THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
|
||||
* NO USE OF THE JASPER SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
||||
* THIS DISCLAIMER. THE JASPER SOFTWARE IS PROVIDED BY THE LICENSORS AND
|
||||
* CONTRIBUTORS UNDER THIS LICENSE ON AN ``AS-IS'' BASIS, WITHOUT WARRANTY
|
||||
* OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
|
||||
* WARRANTIES THAT THE JASPER SOFTWARE IS FREE OF DEFECTS, IS MERCHANTABLE,
|
||||
* IS FIT FOR A PARTICULAR PURPOSE OR IS NON-INFRINGING. THOSE INTENDING
|
||||
* TO USE THE JASPER SOFTWARE OR MODIFICATIONS THEREOF FOR USE IN HARDWARE
|
||||
* OR SOFTWARE PRODUCTS ARE ADVISED THAT THEIR USE MAY INFRINGE EXISTING
|
||||
* PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER INTELLECTUAL PROPERTY RIGHTS.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE JASPER SOFTWARE
|
||||
* IS WITH THE USER. SHOULD ANY PART OF THE JASPER SOFTWARE PROVE DEFECTIVE
|
||||
* IN ANY RESPECT, THE USER (AND NOT THE INITIAL DEVELOPERS, THE UNIVERSITY
|
||||
* OF BRITISH COLUMBIA, IMAGE POWER, INC., MICHAEL DAVID ADAMS, OR ANY
|
||||
* OTHER CONTRIBUTOR) SHALL ASSUME THE COST OF ANY NECESSARY SERVICING,
|
||||
* REPAIR OR CORRECTION. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
||||
* WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE
|
||||
* INITIAL DEVELOPER, THE UNIVERSITY OF BRITISH COLUMBIA, IMAGE POWER, INC.,
|
||||
* MICHAEL DAVID ADAMS, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE
|
||||
* JASPER SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO
|
||||
* THE USER OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
|
||||
* CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
|
||||
* DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
|
||||
* MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
|
||||
* SUCH PARTY HAD BEEN INFORMED, OR OUGHT TO HAVE KNOWN, OF THE POSSIBILITY
|
||||
* OF SUCH DAMAGES. THE JASPER SOFTWARE AND UNDERLYING TECHNOLOGY ARE NOT
|
||||
* FAULT-TOLERANT AND ARE NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE OR
|
||||
* RESALE AS ON-LINE CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING
|
||||
* FAIL-SAFE PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES,
|
||||
* AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT
|
||||
* LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
|
||||
* JASPER SOFTWARE OR UNDERLYING TECHNOLOGY OR PRODUCT COULD LEAD DIRECTLY
|
||||
* TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE
|
||||
* ("HIGH RISK ACTIVITIES"). LICENSOR SPECIFICALLY DISCLAIMS ANY EXPRESS
|
||||
* OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. USER WILL NOT
|
||||
* KNOWINGLY USE, DISTRIBUTE OR RESELL THE JASPER SOFTWARE OR UNDERLYING
|
||||
* TECHNOLOGY OR PRODUCTS FOR HIGH RISK ACTIVITIES AND WILL ENSURE THAT ITS
|
||||
* CUSTOMERS AND END-USERS OF ITS PRODUCTS ARE PROVIDED WITH A COPY OF THE
|
||||
* NOTICE SPECIFIED IN THIS SECTION.
|
||||
*
|
||||
* __END_OF_JASPER_LICENSE__
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id: jas_version.h,v 1.1 2003/02/20 02:58:14 mwilber Exp $
|
||||
*/
|
||||
|
||||
#ifndef JAS_VERSION_H
|
||||
#define JAS_VERSION_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 "1.600.0"
|
||||
#endif
|
||||
|
||||
#define JAS_COPYRIGHT \
|
||||
"Copyright (c) 1999-2000 Image Power, Inc. and the University of\n" \
|
||||
" British Columbia.\n" \
|
||||
"Copyright (c) 2001-2002 Michael David Adams.\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.ubc.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();
|
||||
/* 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
|
Loading…
Reference in New Issue
Block a user