From 43939e66b1d4eeb2f3799c124f3598756755005a Mon Sep 17 00:00:00 2001 From: giraffedata Date: Sun, 27 Sep 2009 21:44:29 +0000 Subject: Rebase Stable series to current Advanced: 10.47.04 git-svn-id: http://svn.code.sf.net/p/netpbm/code/stable@995 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- converter/other/jpeg2000/Makefile | 8 +- converter/other/jpeg2000/jpeg2ktopam.c | 1 + converter/other/jpeg2000/libjasper/Makefile | 4 +- converter/other/jpeg2000/libjasper/Makefile.common | 40 ------- converter/other/jpeg2000/libjasper/base/Makefile | 4 +- .../other/jpeg2000/libjasper/base/jas_stream.c | 71 +++--------- converter/other/jpeg2000/libjasper/common.mk | 39 +++++++ converter/other/jpeg2000/libjasper/jp2/Makefile | 4 +- converter/other/jpeg2000/libjasper/jpc/Makefile | 4 +- converter/other/jpeg2000/libjasper/jpc/jpc_math.c | 128 +++++++++++---------- converter/other/jpeg2000/libjasper/jpc/jpc_qmfb.c | 34 ------ converter/other/jpeg2000/pamtojpeg2k.c | 1 + 12 files changed, 141 insertions(+), 197 deletions(-) delete mode 100644 converter/other/jpeg2000/libjasper/Makefile.common create mode 100644 converter/other/jpeg2000/libjasper/common.mk (limited to 'converter/other/jpeg2000') diff --git a/converter/other/jpeg2000/Makefile b/converter/other/jpeg2000/Makefile index bf3f5e4a..f4fee87f 100644 --- a/converter/other/jpeg2000/Makefile +++ b/converter/other/jpeg2000/Makefile @@ -7,11 +7,11 @@ VPATH=.:$(SRCDIR)/$(SUBDIR) SUBDIRS = libjasper -include $(BUILDDIR)/Makefile.config +include $(BUILDDIR)/config.mk -INCLUDES = +EXTERN_INCLUDES = ifneq ($(JASPERHDR_DIR),NONE) - INCLUDES += -I$(JASPERHDR_DIR) + EXTERN_INCLUDES += -I$(JASPERHDR_DIR) endif @@ -55,7 +55,7 @@ MERGEBINARIES = $(BINARIES) .PHONY: all all: $(BINARIES) -include $(SRCDIR)/Makefile.common +include $(SRCDIR)/common.mk LIBOPTS = $(shell $(LIBOPT) $(NETPBMLIB) $(JASPERLIB_USE)) diff --git a/converter/other/jpeg2000/jpeg2ktopam.c b/converter/other/jpeg2000/jpeg2ktopam.c index e11e9fb4..e6db7658 100644 --- a/converter/other/jpeg2000/jpeg2ktopam.c +++ b/converter/other/jpeg2000/jpeg2ktopam.c @@ -13,6 +13,7 @@ #define _XOPEN_SOURCE 600 #include +#include "pm_c_util.h" #include "pam.h" #include "shhopt.h" #include "nstring.h" diff --git a/converter/other/jpeg2000/libjasper/Makefile b/converter/other/jpeg2000/libjasper/Makefile index 965f15ad..ddbd148a 100644 --- a/converter/other/jpeg2000/libjasper/Makefile +++ b/converter/other/jpeg2000/libjasper/Makefile @@ -5,7 +5,7 @@ endif SUBDIR = converter/other/jpeg2000/libjasper VPATH=.:$(SRCDIR)/$(SUBDIR) -include $(BUILDDIR)/Makefile.config +include $(BUILDDIR)/config.mk SUBDIRS = base jp2 jpc LIB_OBJECTS = @@ -17,7 +17,7 @@ JASPERSRCDIR = $(SRCDIR)/$(SUBDIR) all: libjasper.a -include $(SRCDIR)/$(SUBDIR)/Makefile.common +include $(SRCDIR)/$(SUBDIR)/common.mk # We cheat a bit here -- the real dependencies are all the .o files listed # in the part list, but since we don't know what those are, we just do a diff --git a/converter/other/jpeg2000/libjasper/Makefile.common b/converter/other/jpeg2000/libjasper/Makefile.common deleted file mode 100644 index 525e9c2d..00000000 --- a/converter/other/jpeg2000/libjasper/Makefile.common +++ /dev/null @@ -1,40 +0,0 @@ -# -*-makefile-*- <-- an Emacs control -# This is common rules for the libjasper subdirectories. -# -# Set the following variables before including this: -# -# SUBDIRS: Subdirectory names -# LIB_OBJECTS: List of object files from this directory that go into -# libjasper. -# JASPERSRCDIR: libjasper source directory - -all: $(LIB_OBJECTS) partlist - -partlist: $(SUBDIRS:%=%/partlist) - cat /dev/null $(SUBDIRS:%=%/partlist) >$@ - echo $(LIB_OBJECTS:%=$(CURDIR)/%) >>$@ - -.PHONY: $(SUBDIRS:%=%/partlist) -$(SUBDIRS:%=%/partlist): %/partlist: $(CURDIR)/% - $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \ - SRCDIR=$(SRCDIR) BUILDDIR=$(BUILDDIR) $(notdir $@) - -INCLUDES = -I$(JASPERSRCDIR)/include -Iimportinc - -include $(SRCDIR)/Makefile.common - -DEFS = -DHAVE_LIBM=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STDDEF_H=1 -DEXCLUDE_BMP_SUPPORT -DEXCLUDE_RAS_SUPPORT -DEXCLUDE_MIF_SUPPORT -DEXCLUDE_JPG_SUPPORT -DEXCLUDE_PGX_SUPPORT -DEXCLUDE_PNM_SUPPORT - -$(LIB_OBJECTS):%.o:%.c - $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(CADD) $< - -$(LIB_OBJECTS): importinc - -thisdirclean: localclean - -.PHONY: localclean -localclean: - rm -f partlist - -.PHONY: FORCE -FORCE: diff --git a/converter/other/jpeg2000/libjasper/base/Makefile b/converter/other/jpeg2000/libjasper/base/Makefile index 0ee65b5e..ad84f043 100644 --- a/converter/other/jpeg2000/libjasper/base/Makefile +++ b/converter/other/jpeg2000/libjasper/base/Makefile @@ -7,7 +7,7 @@ VPATH=.:$(SRCDIR)/$(SUBDIR) JASPERSRCDIR=$(SRCDIR)/$(SUBDIR)/.. -include $(BUILDDIR)/Makefile.config +include $(BUILDDIR)/config.mk LIB_OBJECTS = jas_debug.o jas_getopt.o jas_image.o jas_init.o \ jas_malloc.o jas_seq.o jas_stream.o jas_string.o \ @@ -17,5 +17,5 @@ MERGE_OBJECTS = all: partlist $(LIB_OBJECTS) -include $(JASPERSRCDIR)/Makefile.common +include $(JASPERSRCDIR)/common.mk diff --git a/converter/other/jpeg2000/libjasper/base/jas_stream.c b/converter/other/jpeg2000/libjasper/base/jas_stream.c index f450aabf..4c84e6c2 100644 --- a/converter/other/jpeg2000/libjasper/base/jas_stream.c +++ b/converter/other/jpeg2000/libjasper/base/jas_stream.c @@ -130,6 +130,8 @@ #include #endif +#include "pm.h" + #include "jasper/jas_types.h" #include "jasper/jas_stream.h" #include "jasper/jas_malloc.h" @@ -380,51 +382,6 @@ jas_stream_t *jas_stream_freopen(const char *path, const char *mode, FILE *fp) } -static int -tmpfilex(void) { -/*---------------------------------------------------------------------------- - This is a copy of pm_tmpfile() without the libnetpbm dependencies - and returning a file descriptor instead of stream. ------------------------------------------------------------------------------*/ - const char libname[] = "jasper"; - - int fd; - char buf[FILENAME_MAX]; - const char * tbuf; - unsigned int fnamelen; - - fnamelen = strlen(libname) + 10; /* "/" + "_XXXXXX\0" */ - - tbuf = getenv("TMPDIR"); - - if ((tbuf != NULL) && (strlen(tbuf) > FILENAME_MAX - fnamelen)) - /* length of TMPDIR value too big for buf */ - tbuf = NULL; - - buf[FILENAME_MAX - fnamelen -1] = 0; - - if ((tbuf == NULL) || (strlen(tbuf) == 0)) - /* environment variable not suitable to construct file name. - Use default. - */ - strncpy(buf, TMPDIR, sizeof(buf) - fnamelen); - else - strncpy(buf, tbuf, sizeof(buf) - fnamelen); - - if (buf[strlen(buf) - 1] != '/') - strcat (buf, "/"); - - strcat(buf, libname); - strcat(buf, "_XXXXXX"); - - fd = mkstemp(buf); - - if (fd >= 0) - unlink(buf); - - return fd; -} - jas_stream_t *jas_stream_tmpfile() { jas_stream_t *stream; @@ -444,13 +401,23 @@ jas_stream_t *jas_stream_tmpfile() return 0; } stream->obj_ = obj; - - /* This is a Netpbm enhancement. Original Jasper library uses - tmpnam(), which is unsafe. - */ - if ((*obj = tmpfilex()) < 0) { - jas_stream_destroy(stream); - return 0; + + { + /* This is a Netpbm enhancement. Original Jasper library uses + tmpnam(), which is unsafe. + */ + jmp_buf jmpbuf; + int rc; + + rc = setjmp(jmpbuf); + if (rc == 0) { + pm_setjmpbuf(&jmpbuf); + *obj = pm_tmpfile_fd(); + } else { + /* pm_tmpfile_fd() threw an error */ + jas_stream_destroy(stream); + return 0; + } } /* Use full buffering. */ jas_stream_initbuf(stream, JAS_STREAM_FULLBUF, 0, 0); diff --git a/converter/other/jpeg2000/libjasper/common.mk b/converter/other/jpeg2000/libjasper/common.mk new file mode 100644 index 00000000..687a9f3f --- /dev/null +++ b/converter/other/jpeg2000/libjasper/common.mk @@ -0,0 +1,39 @@ +# This is common rules for the libjasper subdirectories. +# +# Set the following variables before including this: +# +# SUBDIRS: Subdirectory names +# LIB_OBJECTS: List of object files from this directory that go into +# libjasper. +# JASPERSRCDIR: libjasper source directory + +all: $(LIB_OBJECTS) partlist + +partlist: $(SUBDIRS:%=%/partlist) + cat /dev/null $(SUBDIRS:%=%/partlist) >$@ + echo $(LIB_OBJECTS:%=$(CURDIR)/%) >>$@ + +.PHONY: $(SUBDIRS:%=%/partlist) +$(SUBDIRS:%=%/partlist): %/partlist: $(CURDIR)/% + $(MAKE) -C $(dir $@) -f $(SRCDIR)/$(SUBDIR)/$(dir $@)Makefile \ + SRCDIR=$(SRCDIR) BUILDDIR=$(BUILDDIR) $(notdir $@) + +include $(SRCDIR)/common.mk + +INCLUDES = -I$(JASPERSRCDIR)/include -Iimportinc + +DEFS = -DHAVE_LIBM=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STDDEF_H=1 -DEXCLUDE_BMP_SUPPORT -DEXCLUDE_RAS_SUPPORT -DEXCLUDE_MIF_SUPPORT -DEXCLUDE_JPG_SUPPORT -DEXCLUDE_PGX_SUPPORT -DEXCLUDE_PNM_SUPPORT + +$(LIB_OBJECTS):%.o:%.c + $(CC) -c $(INCLUDES) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(CADD) $< + +$(LIB_OBJECTS): importinc + +thisdirclean: localclean + +.PHONY: localclean +localclean: + rm -f partlist + +.PHONY: FORCE +FORCE: diff --git a/converter/other/jpeg2000/libjasper/jp2/Makefile b/converter/other/jpeg2000/libjasper/jp2/Makefile index 254b7f56..65838cc2 100644 --- a/converter/other/jpeg2000/libjasper/jp2/Makefile +++ b/converter/other/jpeg2000/libjasper/jp2/Makefile @@ -7,7 +7,7 @@ VPATH=.:$(SRCDIR)/$(SUBDIR) JASPERSRCDIR=$(SRCDIR)/$(SUBDIR)/.. -include $(BUILDDIR)/Makefile.config +include $(BUILDDIR)/config.mk LIB_OBJECTS = jp2_cod.o jp2_dec.o jp2_enc.o @@ -15,5 +15,5 @@ MERGE_OBJECTS = all: partlist $(LIB_OBJECTS) -include $(JASPERSRCDIR)/Makefile.common +include $(JASPERSRCDIR)/common.mk diff --git a/converter/other/jpeg2000/libjasper/jpc/Makefile b/converter/other/jpeg2000/libjasper/jpc/Makefile index e176bd48..ffc4c64f 100644 --- a/converter/other/jpeg2000/libjasper/jpc/Makefile +++ b/converter/other/jpeg2000/libjasper/jpc/Makefile @@ -7,7 +7,7 @@ VPATH=.:$(SRCDIR)/$(SUBDIR) JASPERSRCDIR=$(SRCDIR)/$(SUBDIR)/.. -include $(BUILDDIR)/Makefile.config +include $(BUILDDIR)/config.mk LIB_OBJECTS = jpc_bs.o jpc_cs.o jpc_dec.o jpc_enc.o \ jpc_math.o jpc_mct.o jpc_mqcod.o jpc_mqdec.o jpc_mqenc.o \ @@ -18,5 +18,5 @@ MERGE_OBJECTS = all: partlist $(LIB_OBJECTS) -include $(JASPERSRCDIR)/Makefile.common +include $(JASPERSRCDIR)/common.mk diff --git a/converter/other/jpeg2000/libjasper/jpc/jpc_math.c b/converter/other/jpeg2000/libjasper/jpc/jpc_math.c index d860847d..72e3ac37 100644 --- a/converter/other/jpeg2000/libjasper/jpc/jpc_math.c +++ b/converter/other/jpeg2000/libjasper/jpc/jpc_math.c @@ -1,3 +1,72 @@ +#include +#include +#include +#include +#include +#include + +#include "jpc_math.h" + + + +/* Calculate the integer quantity floor(log2(x)), where x is a positive + integer. */ +int +jpc_floorlog2(int const arg) { + + int y; + int x; + + assert(arg > 0); + + y = 0; + x = arg; + while (x > 1) { + x >>= 1; + ++y; + } + return y; +} + + + +/* + jpc_floorlog2() and jpc_firstone() do the same thing. + The only difference is how input 0 is handled. + +n : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +ceil(log2(n)) : x 0 1 2 2 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 +floor(log2(n)) : x 0 1 1 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 +31-__builtin_clz(n): x 0 1 1 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 +jpc_floorlog2(n) : x 0 1 1 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 +jpc_firstone(n) :-1 0 1 1 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 + +*/ + + + +int +jpc_firstone(int const arg) { +/*---------------------------------------------------------------------------- + Calculate the bit position of the first leading one in a nonnegative + integer. +-----------------------------------------------------------------------------*/ + int n; + int x; + + assert(arg >= 0); + + n = -1; + x = arg; + while (x > 0) { + x >>= 1; + ++n; + } + return n; +} + + + /* * Copyright (c) 1999-2000 Image Power, Inc. and the University of * British Columbia. @@ -109,62 +178,3 @@ * * __END_OF_JASPER_LICENSE__ */ - -/* - * Math Library - * - * $Id$ - */ - -/******************************************************************************\ -* Includes -\******************************************************************************/ - -#include -#include -#include -#include -#include -#include - -#include "jpc_math.h" - -/******************************************************************************\ -* Miscellaneous Functions -\******************************************************************************/ - -/* Calculate the integer quantity floor(log2(x)), where x is a positive - integer. */ -int jpc_floorlog2(int x) -{ - int y; - - /* The argument must be positive. */ - assert(x > 0); - - y = 0; - while (x > 1) { - x >>= 1; - ++y; - } - return y; -} - -/* Calculate the bit position of the first leading one in a nonnegative - integer. */ -/* This function is the basically the same as ceillog2(x), except that the - allowable range for x is slightly different. */ -int jpc_firstone(int x) -{ - int n; - - /* The argument must be nonnegative. */ - assert(x >= 0); - - n = -1; - while (x > 0) { - x >>= 1; - ++n; - } - return n; -} diff --git a/converter/other/jpeg2000/libjasper/jpc/jpc_qmfb.c b/converter/other/jpeg2000/libjasper/jpc/jpc_qmfb.c index 1ed0dd90..1d41d5c5 100644 --- a/converter/other/jpeg2000/libjasper/jpc/jpc_qmfb.c +++ b/converter/other/jpeg2000/libjasper/jpc/jpc_qmfb.c @@ -205,16 +205,6 @@ static void jpc_qmfb1d_split(jpc_fix_t *startptr, int startind, int endind, llen = lendind - lstartind; hlen = hendind - hstartind; -#if defined(WIN32) - /* Get a buffer. */ - if (bufsize > QMFB_SPLITBUFSIZE) { - if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide in this case. */ - abort(); - } - } -#endif - if (hstartind < lstartind) { /* The first sample in the input signal is to appear in the highpass subband signal. */ @@ -294,13 +284,6 @@ static void jpc_qmfb1d_split(jpc_fix_t *startptr, int startind, int endind, hptr -= step; } } - -#if defined(WIN32) - /* If the split buffer was allocated on the heap, free this memory. */ - if (buf != splitbuf) { - jas_free(buf); - } -#endif } static void jpc_qmfb1d_join(jpc_fix_t *startptr, int startind, int endind, @@ -320,16 +303,6 @@ static void jpc_qmfb1d_join(jpc_fix_t *startptr, int startind, int endind, register int n; int state; -#if defined(WIN32) - /* Allocate memory for the join buffer from the heap. */ - if (bufsize > QMFB_JOINBUFSIZE) { - if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { - /* We have no choice but to commit suicide. */ - abort(); - } - } -#endif - twostep = step << 1; llen = lendind - lstartind; hlen = hendind - hstartind; @@ -414,13 +387,6 @@ static void jpc_qmfb1d_join(jpc_fix_t *startptr, int startind, int endind, state ^= 1; } } - -#if defined(WIN32) - /* If the join buffer was allocated on the heap, free this memory. */ - if (buf != joinbuf) { - jas_free(buf); - } -#endif } /******************************************************************************\ diff --git a/converter/other/jpeg2000/pamtojpeg2k.c b/converter/other/jpeg2000/pamtojpeg2k.c index 851d2bf9..70774725 100644 --- a/converter/other/jpeg2000/pamtojpeg2k.c +++ b/converter/other/jpeg2000/pamtojpeg2k.c @@ -13,6 +13,7 @@ #define _XOPEN_SOURCE 600 #include +#include "pm_c_util.h" #include "pam.h" #include "shhopt.h" #include "nstring.h" -- cgit 1.4.1