[package] vips: update to 7.26.3
git-svn-id: svn://svn.openwrt.org/openwrt/packages@28533 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
c0a6ff6b47
commit
4fe2418d0e
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=vips
|
||||
PKG_VERSION:=7.26.1
|
||||
PKG_VERSION:=7.26.3
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://www.vips.ecs.soton.ac.uk/supported/7.26/
|
||||
PKG_MD5SUM:=518c5a2d4813afc097a17f3fca9f4532
|
||||
PKG_MD5SUM:=1fbf164ef0da8e835a036c56ff659e8e
|
||||
PKG_FIXUP = libtool
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
@ -30,7 +30,7 @@ define Package/vips
|
||||
$(call Package/vips/Default)
|
||||
SECTION:=multimedia
|
||||
CATEGORY:=Multimedia
|
||||
DEPENDS:=+libjpeg +glib2 +libxml2 +libfreetype $(INTL_DEPENDS)
|
||||
DEPENDS:=+libjpeg +glib2 +libxml2 $(INTL_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/vips/description
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -u --recursive vips-7.26.1-vanilla/configure.in vips-7.26.1/configure.in
|
||||
--- vips-7.26.1-vanilla/configure.in 2011-08-10 21:31:05.386968954 -0500
|
||||
+++ vips-7.26.1/configure.in 2011-08-10 21:31:50.747488580 -0500
|
||||
diff -u --recursive vips-7.26.3-vanilla/configure.in vips-7.26.3/configure.in
|
||||
--- vips-7.26.3-vanilla/configure.in 2011-10-07 20:43:26.474844552 -0500
|
||||
+++ vips-7.26.3/configure.in 2011-10-07 21:00:33.633107256 -0500
|
||||
@@ -142,7 +142,6 @@
|
||||
AC_PROG_AWK
|
||||
AC_PROG_CC
|
||||
@ -9,7 +9,61 @@ diff -u --recursive vips-7.26.1-vanilla/configure.in vips-7.26.1/configure.in
|
||||
AC_C_CONST
|
||||
AC_C_RESTRICT
|
||||
AC_PROG_RANLIB
|
||||
@@ -604,7 +603,6 @@
|
||||
@@ -150,45 +149,6 @@
|
||||
AC_PROG_LN_S
|
||||
AM_WITH_DMALLOC
|
||||
|
||||
-# vips_PROG_CXX_WORKS
|
||||
-# Check whether the C++ compiler works.
|
||||
-AC_DEFUN([vips_PROG_CXX_WORKS],
|
||||
- [AC_REQUIRE([AC_PROG_CXX])dnl
|
||||
- AC_CACHE_CHECK([whether the C++ compiler works],
|
||||
- [vips_cv_prog_cxx_works],
|
||||
- [AC_LANG_PUSH([C++])
|
||||
- AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
||||
- [vips_cv_prog_cxx_works=yes],
|
||||
- [vips_cv_prog_cxx_works=no])
|
||||
- AC_LANG_POP([C++])])
|
||||
-])
|
||||
-
|
||||
-# option to build without C++
|
||||
-# handy for some embedded applications
|
||||
-# also, including C++ source causes link problems on some
|
||||
-# platforms, so have an option to disable it
|
||||
-AC_ARG_ENABLE(cxx,
|
||||
- AS_HELP_STRING([--enable-cxx], [build C++ components (default: test)]))
|
||||
-
|
||||
-if test x"$enable_cxx" != x"no"; then
|
||||
- vips_PROG_CXX_WORKS
|
||||
- if test x"$vips_cv_prog_cxx_works" = x"yes"; then
|
||||
- AC_DEFINE(ENABLE_CXX,1,[build C++ components])
|
||||
- AM_CONDITIONAL(ENABLE_CXX, true)
|
||||
- # need -lstdc++ for (eg.) the C++ format loaders
|
||||
- # this gets added to vips-7.xx.pc to help mingw and friends link programs
|
||||
- # using libvips
|
||||
- VIPS_CXX_LIBS="-lstdc++"
|
||||
- enable_cxx=yes
|
||||
- fi
|
||||
-fi
|
||||
-
|
||||
-if test x"$enable_cxx" != x"yes"; then
|
||||
- AM_CONDITIONAL(ENABLE_CXX, false)
|
||||
- VIPS_CXX_LIBS=""
|
||||
- enable_cxx=no
|
||||
-fi
|
||||
-
|
||||
# we need a fully expanded version of $libdir
|
||||
# without this we get something like
|
||||
# define VIPS_LIBDIR ${exec_prefix}/lib
|
||||
@@ -614,7 +574,6 @@
|
||||
AC_SUBST(VIPS_CFLAGS)
|
||||
AC_SUBST(VIPS_INCLUDES)
|
||||
AC_SUBST(VIPS_LIBS)
|
||||
-AC_SUBST(VIPS_CXX_LIBS)
|
||||
AC_SUBST(PACKAGES_USED)
|
||||
|
||||
# you'd think we could have
|
||||
@@ -622,7 +581,6 @@
|
||||
# in AC_OUTPUT, but that seems to break for some combinations of sh/m4
|
||||
AC_OUTPUT([
|
||||
vips-7.26.pc
|
||||
@ -17,7 +71,7 @@ diff -u --recursive vips-7.26.1-vanilla/configure.in vips-7.26.1/configure.in
|
||||
Makefile
|
||||
libvips/include/vips/version.h
|
||||
libvips/include/Makefile
|
||||
@@ -612,7 +610,6 @@
|
||||
@@ -630,7 +588,6 @@
|
||||
libvips/Makefile
|
||||
libvips/arithmetic/Makefile
|
||||
libvips/boolean/Makefile
|
||||
@ -25,7 +79,7 @@ diff -u --recursive vips-7.26.1-vanilla/configure.in vips-7.26.1/configure.in
|
||||
libvips/colour/Makefile
|
||||
libvips/conversion/Makefile
|
||||
libvips/convolution/Makefile
|
||||
@@ -629,9 +626,6 @@
|
||||
@@ -647,9 +604,6 @@
|
||||
libvips/relational/Makefile
|
||||
libvips/resample/Makefile
|
||||
libvips/video/Makefile
|
||||
@ -35,7 +89,7 @@ diff -u --recursive vips-7.26.1-vanilla/configure.in vips-7.26.1/configure.in
|
||||
tools/Makefile
|
||||
tools/batch_crop
|
||||
tools/batch_image_convert
|
||||
@@ -639,7 +633,6 @@
|
||||
@@ -657,7 +611,6 @@
|
||||
tools/light_correct
|
||||
tools/shrink_width
|
||||
swig/Makefile
|
||||
@ -43,9 +97,9 @@ diff -u --recursive vips-7.26.1-vanilla/configure.in vips-7.26.1/configure.in
|
||||
swig/python/setup.py
|
||||
man/Makefile
|
||||
doc/Makefile
|
||||
diff -u --recursive vips-7.26.1-vanilla/libvips/Makefile.am vips-7.26.1/libvips/Makefile.am
|
||||
--- vips-7.26.1-vanilla/libvips/Makefile.am 2011-08-10 21:31:05.982949772 -0500
|
||||
+++ vips-7.26.1/libvips/Makefile.am 2011-08-10 21:32:37.969906173 -0500
|
||||
diff -u --recursive vips-7.26.3-vanilla/libvips/Makefile.am vips-7.26.3/libvips/Makefile.am
|
||||
--- vips-7.26.3-vanilla/libvips/Makefile.am 2011-10-07 20:43:26.909839013 -0500
|
||||
+++ vips-7.26.3/libvips/Makefile.am 2011-10-07 20:45:25.074274823 -0500
|
||||
@@ -1,14 +1,3 @@
|
||||
-# only build in the cimg dir if C++ is enabled
|
||||
-if ENABLE_CXX
|
||||
@ -69,17 +123,22 @@ diff -u --recursive vips-7.26.1-vanilla/libvips/Makefile.am vips-7.26.1/libvips/
|
||||
format \
|
||||
freq_filt \
|
||||
histograms_lut \
|
||||
@@ -35,9 +23,6 @@
|
||||
lib_LTLIBRARIES = libvips.la
|
||||
@@ -37,14 +25,6 @@
|
||||
# empty means default to C linking
|
||||
libvips_la_SOURCES =
|
||||
|
||||
libvips_la_SOURCES = dummy.c
|
||||
-# if we have C++ components enabled, make sure we link the top-level with c++
|
||||
-#
|
||||
-# sadly the if/enndif isn't enough to stop automake detecting a c++ link even
|
||||
-# when c++ is disabled ... comment out this line if you have linking problems
|
||||
-if ENABLE_CXX
|
||||
-libvips_la_SOURCES += dummy2.cc
|
||||
-nodist_EXTRA_libvips_la_SOURCES = cimg/dummy2.cxx
|
||||
-endif
|
||||
|
||||
-
|
||||
# DLLs need dependant libs there too ... put @VIPS_LIBS@ at the end
|
||||
libvips_la_LIBADD = \
|
||||
@@ -48,7 +33,6 @@
|
||||
resample/libresample.la \
|
||||
@@ -54,7 +34,6 @@
|
||||
conversion/libconversion.la \
|
||||
convolution/libconvolution.la \
|
||||
deprecated/libdeprecated.la \
|
||||
@ -87,7 +146,7 @@ diff -u --recursive vips-7.26.1-vanilla/libvips/Makefile.am vips-7.26.1/libvips/
|
||||
format/libformat.la \
|
||||
freq_filt/libfreq_filt.la \
|
||||
histograms_lut/libhistograms_lut.la \
|
||||
@@ -62,13 +46,6 @@
|
||||
@@ -68,13 +47,6 @@
|
||||
video/libvideo.la \
|
||||
@VIPS_LIBS@
|
||||
|
||||
@ -101,9 +160,9 @@ diff -u --recursive vips-7.26.1-vanilla/libvips/Makefile.am vips-7.26.1/libvips/
|
||||
-
|
||||
-EXTRA_DIST = \
|
||||
- $(C_DIST_DIR)
|
||||
diff -u --recursive vips-7.26.1-vanilla/libvips/resample/Makefile.am vips-7.26.1/libvips/resample/Makefile.am
|
||||
--- vips-7.26.1-vanilla/libvips/resample/Makefile.am 2011-08-10 21:31:06.658928005 -0500
|
||||
+++ vips-7.26.1/libvips/resample/Makefile.am 2011-08-10 21:32:59.648166658 -0500
|
||||
diff -u --recursive vips-7.26.3-vanilla/libvips/resample/Makefile.am vips-7.26.3/libvips/resample/Makefile.am
|
||||
--- vips-7.26.3-vanilla/libvips/resample/Makefile.am 2011-10-07 20:43:27.173835707 -0500
|
||||
+++ vips-7.26.3/libvips/resample/Makefile.am 2011-10-07 20:45:49.360933471 -0500
|
||||
@@ -2,22 +2,6 @@
|
||||
# you'd think we could just define a couple of variables, but that seems to
|
||||
# confuse libtool and make it link the library with g++
|
||||
@ -143,3 +202,180 @@ diff -u --recursive vips-7.26.1-vanilla/libvips/resample/Makefile.am vips-7.26.1
|
||||
noinst_LTLIBRARIES = libresample.la
|
||||
|
||||
INCLUDES = -I${top_srcdir}/libvips/include @VIPS_CFLAGS@ @VIPS_INCLUDES@
|
||||
diff -u --recursive vips-7.26.3-vanilla/Makefile.am vips-7.26.3/Makefile.am
|
||||
--- vips-7.26.3-vanilla/Makefile.am 2011-10-07 20:43:26.476844503 -0500
|
||||
+++ vips-7.26.3/Makefile.am 2011-10-07 22:31:54.034586656 -0500
|
||||
@@ -1,43 +1,17 @@
|
||||
-
|
||||
-# turn off libvipsCC if C++ is disabled
|
||||
-if ENABLE_CXX
|
||||
-C_COMPILE_DIR = libvipsCC
|
||||
-C_DIST_DIR =
|
||||
-C_PKGCONFIG = vipsCC-7.${VIPS_MINOR_VERSION}.pc
|
||||
-
|
||||
-# turn on Python if we can (requires C++)
|
||||
-if HAVE_PYTHON
|
||||
-P_COMPILE_DIR = swig
|
||||
-P_DIST_DIR =
|
||||
-endif
|
||||
-
|
||||
-else
|
||||
-C_COMPILE_DIR =
|
||||
-C_DIST_DIR = libvipsCC
|
||||
-C_PKGCONFIG =
|
||||
-P_COMPILE_DIR =
|
||||
-P_DIST_DIR = swig
|
||||
-endif
|
||||
-
|
||||
SUBDIRS = \
|
||||
libvips \
|
||||
tools \
|
||||
po \
|
||||
man \
|
||||
- doc \
|
||||
- $(C_COMPILE_DIR) \
|
||||
- $(P_COMPILE_DIR)
|
||||
+ doc
|
||||
|
||||
EXTRA_DIST = \
|
||||
m4 \
|
||||
benchmark \
|
||||
bootstrap.sh \
|
||||
vips-7.${VIPS_MINOR_VERSION}.pc.in \
|
||||
- vipsCC-7.${VIPS_MINOR_VERSION}.pc.in \
|
||||
acinclude.m4 \
|
||||
- depcomp \
|
||||
- $(C_DIST_DIR) \
|
||||
- $(P_DIST_DIR)
|
||||
+ depcomp
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = vips-7.${VIPS_MINOR_VERSION}.pc $(C_PKGCONFIG)
|
||||
diff -u --recursive vips-7.26.3-vanilla/Makefile.in vips-7.26.3/Makefile.in
|
||||
--- vips-7.26.3-vanilla/Makefile.in 2011-10-07 20:43:26.766840803 -0500
|
||||
+++ vips-7.26.3/Makefile.in 2011-10-07 22:30:18.980820947 -0500
|
||||
@@ -37,7 +37,6 @@
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
- $(srcdir)/vips-7.26.pc.in $(srcdir)/vipsCC-7.26.pc.in \
|
||||
$(top_srcdir)/configure $(top_srcdir)/swig/python/setup.py.in \
|
||||
AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO \
|
||||
config.guess config.sub depcomp install-sh ltmain.sh missing \
|
||||
@@ -51,7 +50,7 @@
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
-CONFIG_CLEAN_FILES = vips-7.26.pc vipsCC-7.26.pc swig/python/setup.py
|
||||
+CONFIG_CLEAN_FILES = vips-7.26.pc swig/python/setup.py
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
@@ -92,7 +91,7 @@
|
||||
distdir dist dist-all distcheck
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
-DIST_SUBDIRS = libvips tools po man doc libvipsCC swig
|
||||
+DIST_SUBDIRS = libvips tools po man doc swig
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
@@ -146,10 +145,6 @@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
-CXX = @CXX@
|
||||
-CXXCPP = @CXXCPP@
|
||||
-CXXDEPMODE = @CXXDEPMODE@
|
||||
-CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATADIRNAME = @DATADIRNAME@
|
||||
DEFS = @DEFS@
|
||||
@@ -262,7 +257,6 @@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
VIPS_CFLAGS = @VIPS_CFLAGS@
|
||||
-VIPS_CXX_LIBS = @VIPS_CXX_LIBS@
|
||||
VIPS_EXEEXT = @VIPS_EXEEXT@
|
||||
VIPS_INCLUDES = @VIPS_INCLUDES@
|
||||
VIPS_LIBDIR = @VIPS_LIBDIR@
|
||||
@@ -285,7 +279,6 @@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
-ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
@@ -337,39 +330,21 @@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
-@ENABLE_CXX_FALSE@C_COMPILE_DIR =
|
||||
|
||||
-# turn off libvipsCC if C++ is disabled
|
||||
-@ENABLE_CXX_TRUE@C_COMPILE_DIR = libvipsCC
|
||||
-@ENABLE_CXX_FALSE@C_DIST_DIR = libvipsCC
|
||||
-@ENABLE_CXX_TRUE@C_DIST_DIR =
|
||||
-@ENABLE_CXX_FALSE@C_PKGCONFIG =
|
||||
-@ENABLE_CXX_TRUE@C_PKGCONFIG = vipsCC-7.${VIPS_MINOR_VERSION}.pc
|
||||
-@ENABLE_CXX_FALSE@P_COMPILE_DIR =
|
||||
-
|
||||
-# turn on Python if we can (requires C++)
|
||||
-@ENABLE_CXX_TRUE@@HAVE_PYTHON_TRUE@P_COMPILE_DIR = swig
|
||||
-@ENABLE_CXX_FALSE@P_DIST_DIR = swig
|
||||
-@ENABLE_CXX_TRUE@@HAVE_PYTHON_TRUE@P_DIST_DIR =
|
||||
SUBDIRS = \
|
||||
libvips \
|
||||
tools \
|
||||
po \
|
||||
man \
|
||||
doc \
|
||||
- $(C_COMPILE_DIR) \
|
||||
- $(P_COMPILE_DIR)
|
||||
|
||||
EXTRA_DIST = \
|
||||
m4 \
|
||||
benchmark \
|
||||
bootstrap.sh \
|
||||
vips-7.${VIPS_MINOR_VERSION}.pc.in \
|
||||
- vipsCC-7.${VIPS_MINOR_VERSION}.pc.in \
|
||||
acinclude.m4 \
|
||||
depcomp \
|
||||
- $(C_DIST_DIR) \
|
||||
- $(P_DIST_DIR)
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = vips-7.${VIPS_MINOR_VERSION}.pc $(C_PKGCONFIG)
|
||||
@@ -431,8 +406,6 @@
|
||||
-rm -f config.h stamp-h1
|
||||
vips-7.26.pc: $(top_builddir)/config.status $(srcdir)/vips-7.26.pc.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
-vipsCC-7.26.pc: $(top_builddir)/config.status $(srcdir)/vipsCC-7.26.pc.in
|
||||
- cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
swig/python/setup.py: $(top_builddir)/config.status $(top_srcdir)/swig/python/setup.py.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
|
||||
diff -u --recursive vips-7.26.3-vanilla/tools/Makefile.am vips-7.26.3/tools/Makefile.am
|
||||
--- vips-7.26.3-vanilla/tools/Makefile.am 2011-10-07 20:43:26.495844193 -0500
|
||||
+++ vips-7.26.3/tools/Makefile.am 2011-10-07 22:34:56.215304397 -0500
|
||||
@@ -16,9 +16,6 @@
|
||||
INCLUDES = -I${top_srcdir}/libvips/include @VIPS_CFLAGS@ @VIPS_INCLUDES@
|
||||
AM_LDFLAGS = @LDFLAGS@
|
||||
LDADD = @VIPS_CFLAGS@ ${top_builddir}/libvips/libvips.la @VIPS_LIBS@
|
||||
-if ENABLE_CXX
|
||||
-LDADD += @VIPS_CXX_LIBS@
|
||||
-endif
|
||||
|
||||
bin_SCRIPTS = \
|
||||
light_correct \
|
||||
diff -u --recursive vips-7.26.3-vanilla/vips-7.26.pc.in vips-7.26.3/vips-7.26.pc.in
|
||||
--- vips-7.26.3-vanilla/vips-7.26.pc.in 2011-10-07 20:43:26.769840766 -0500
|
||||
+++ vips-7.26.3/vips-7.26.pc.in 2011-10-07 22:25:21.633810254 -0500
|
||||
@@ -7,5 +7,5 @@
|
||||
Description: Image processing library
|
||||
Version: @VERSION@
|
||||
Requires: @PACKAGES_USED@
|
||||
-Libs: -L${libdir} -lvips @VIPS_LIBS@ @VIPS_CXX_LIBS@
|
||||
+Libs: -L${libdir} -lvips @VIPS_LIBS@
|
||||
Cflags: -I${includedir}
|
||||
|
@ -1,293 +0,0 @@
|
||||
Index: libs/vips/patches/002-im_bufjpeg2vips.patch
|
||||
===================================================================
|
||||
--- libs/vips/patches/002-im_bufjpeg2vips.patch (revision 0)
|
||||
+++ libs/vips/patches/002-im_bufjpeg2vips.patch (revision 0)
|
||||
@@ -0,0 +1,288 @@
|
||||
+diff -u --recursive vips-7.24.5-vanilla/libvips/format/im_jpeg2vips.c vips-7.24.5/libvips/format/im_jpeg2vips.c
|
||||
+--- vips-7.24.5-vanilla/libvips/format/im_jpeg2vips.c 2011-07-04 09:23:04.437730278 -0500
|
||||
++++ vips-7.24.5/libvips/format/im_jpeg2vips.c 2011-07-04 09:27:46.972274128 -0500
|
||||
+@@ -30,6 +30,8 @@
|
||||
+ * - gtkdoc
|
||||
+ * 4/12/10
|
||||
+ * - attach the jpeg thumbnail and multiscan fields (thanks Mike)
|
||||
++ * 20/4/2011
|
||||
++ * - added im_bufjpeg2vips()
|
||||
+ */
|
||||
+
|
||||
+ /*
|
||||
+@@ -683,7 +685,7 @@
|
||||
+ fail_on_warn = TRUE;
|
||||
+ }
|
||||
+
|
||||
+- /* Make jpeg compression object.
|
||||
++ /* Make jpeg dcompression object.
|
||||
+ */
|
||||
+ cinfo.err = jpeg_std_error( &eman.pub );
|
||||
+ eman.pub.error_exit = new_error_exit;
|
||||
+@@ -737,6 +739,227 @@
|
||||
+ return( result );
|
||||
+ }
|
||||
+
|
||||
++/* Just like the above, but we read from a memory buffer.
|
||||
++ */
|
||||
++typedef struct {
|
||||
++ /* Public jpeg fields.
|
||||
++ */
|
||||
++ struct jpeg_source_mgr pub;
|
||||
++
|
||||
++ /* Private stuff during read.
|
||||
++ */
|
||||
++ gboolean start_of_file; /* have we gotten any data yet? */
|
||||
++ JOCTET *buf;
|
||||
++ size_t len;
|
||||
++} InputBuffer;
|
||||
++
|
||||
++/*
|
||||
++ * Initialize source --- called by jpeg_read_header
|
||||
++ * before any data is actually read.
|
||||
++ */
|
||||
++
|
||||
++static void
|
||||
++init_source (j_decompress_ptr cinfo)
|
||||
++{
|
||||
++ InputBuffer *src = (InputBuffer *) cinfo->src;
|
||||
++
|
||||
++ /* We reset the empty-input-file flag for each image,
|
||||
++ * but we don't clear the input buffer.
|
||||
++ * This is correct behavior for reading a series of images from one source.
|
||||
++ */
|
||||
++ src->start_of_file = TRUE;
|
||||
++}
|
||||
++
|
||||
++/*
|
||||
++ * Fill the input buffer --- called whenever buffer is emptied.
|
||||
++ *
|
||||
++ * In typical applications, this should read fresh data into the buffer
|
||||
++ * (ignoring the current state of next_input_byte & bytes_in_buffer),
|
||||
++ * reset the pointer & count to the start of the buffer, and return TRUE
|
||||
++ * indicating that the buffer has been reloaded. It is not necessary to
|
||||
++ * fill the buffer entirely, only to obtain at least one more byte.
|
||||
++ *
|
||||
++ * There is no such thing as an EOF return. If the end of the file has been
|
||||
++ * reached, the routine has a choice of ERREXIT() or inserting fake data into
|
||||
++ * the buffer. In most cases, generating a warning message and inserting a
|
||||
++ * fake EOI marker is the best course of action --- this will allow the
|
||||
++ * decompressor to output however much of the image is there. However,
|
||||
++ * the resulting error message is misleading if the real problem is an empty
|
||||
++ * input file, so we handle that case specially.
|
||||
++ *
|
||||
++ * In applications that need to be able to suspend compression due to input
|
||||
++ * not being available yet, a FALSE return indicates that no more data can be
|
||||
++ * obtained right now, but more may be forthcoming later. In this situation,
|
||||
++ * the decompressor will return to its caller (with an indication of the
|
||||
++ * number of scanlines it has read, if any). The application should resume
|
||||
++ * decompression after it has loaded more data into the input buffer. Note
|
||||
++ * that there are substantial restrictions on the use of suspension --- see
|
||||
++ * the documentation.
|
||||
++ *
|
||||
++ * When suspending, the decompressor will back up to a convenient restart point
|
||||
++ * (typically the start of the current MCU). next_input_byte & bytes_in_buffer
|
||||
++ * indicate where the restart point will be if the current call returns FALSE.
|
||||
++ * Data beyond this point must be rescanned after resumption, so move it to
|
||||
++ * the front of the buffer rather than discarding it.
|
||||
++ */
|
||||
++
|
||||
++static boolean
|
||||
++fill_input_buffer (j_decompress_ptr cinfo)
|
||||
++{
|
||||
++ InputBuffer *src = (InputBuffer *) cinfo->src;
|
||||
++ size_t nbytes;
|
||||
++
|
||||
++ if (src->start_of_file) {
|
||||
++ nbytes = src->len;
|
||||
++ }
|
||||
++ else {
|
||||
++ WARNMS(cinfo, JWRN_JPEG_EOF);
|
||||
++ /* Insert a fake EOI marker */
|
||||
++ src->buf[0] = (JOCTET) 0xFF;
|
||||
++ src->buf[1] = (JOCTET) JPEG_EOI;
|
||||
++ nbytes = 2;
|
||||
++ }
|
||||
++
|
||||
++ src->pub.next_input_byte = src->buf;
|
||||
++ src->pub.bytes_in_buffer = nbytes;
|
||||
++ src->start_of_file = FALSE;
|
||||
++
|
||||
++ return TRUE;
|
||||
++}
|
||||
++
|
||||
++/*
|
||||
++ * Skip data --- used to skip over a potentially large amount of
|
||||
++ * uninteresting data (such as an APPn marker).
|
||||
++ *
|
||||
++ * Writers of suspendable-input applications must note that skip_input_data
|
||||
++ * is not granted the right to give a suspension return. If the skip extends
|
||||
++ * beyond the data currently in the buffer, the buffer can be marked empty so
|
||||
++ * that the next read will cause a fill_input_buffer call that can suspend.
|
||||
++ * Arranging for additional bytes to be discarded before reloading the input
|
||||
++ * buffer is the application writer's problem.
|
||||
++ */
|
||||
++
|
||||
++static void
|
||||
++skip_input_data (j_decompress_ptr cinfo, long num_bytes)
|
||||
++{
|
||||
++ InputBuffer *src = (InputBuffer *) cinfo->src;
|
||||
++
|
||||
++ /* Just skip fwd.
|
||||
++ */
|
||||
++ if (num_bytes > 0) {
|
||||
++ src->pub.next_input_byte += (size_t) num_bytes;
|
||||
++ src->pub.bytes_in_buffer -= (size_t) num_bytes;
|
||||
++ }
|
||||
++}
|
||||
++
|
||||
++/*
|
||||
++ * An additional method that can be provided by data source modules is the
|
||||
++ * resync_to_restart method for error recovery in the presence of RST markers.
|
||||
++ * For the moment, this source module just uses the default resync method
|
||||
++ * provided by the JPEG library. That method assumes that no backtracking
|
||||
++ * is possible.
|
||||
++ */
|
||||
++
|
||||
++/*
|
||||
++ * Terminate source --- called by jpeg_finish_decompress
|
||||
++ * after all data has been read. Often a no-op.
|
||||
++ *
|
||||
++ * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding
|
||||
++ * application must deal with any cleanup that should happen even
|
||||
++ * for error exit.
|
||||
++ */
|
||||
++
|
||||
++static void
|
||||
++term_source (j_decompress_ptr cinfo)
|
||||
++{
|
||||
++ /* no work necessary here */
|
||||
++}
|
||||
++
|
||||
++/*
|
||||
++ * Prepare for input from a memory buffer. The caller needs to free the
|
||||
++ * buffer after decompress is done, we don't take ownership.
|
||||
++ */
|
||||
++
|
||||
++static void
|
||||
++buf_source (j_decompress_ptr cinfo, void *buf, size_t len)
|
||||
++{
|
||||
++ InputBuffer *src;
|
||||
++
|
||||
++ /* The source object and input buffer are made permanent so that a series
|
||||
++ * of JPEG images can be read from the same file by calling jpeg_stdio_src
|
||||
++ * only before the first one. (If we discarded the buffer at the end of
|
||||
++ * one image, we'd likely lose the start of the next one.)
|
||||
++ * This makes it unsafe to use this manager and a different source
|
||||
++ * manager serially with the same JPEG object. Caveat programmer.
|
||||
++ */
|
||||
++ if (cinfo->src == NULL) { /* first time for this JPEG object? */
|
||||
++ cinfo->src = (struct jpeg_source_mgr *)
|
||||
++ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
|
||||
++ sizeof(InputBuffer));
|
||||
++ src = (InputBuffer *) cinfo->src;
|
||||
++ src->buf = buf;
|
||||
++ src->len = len;
|
||||
++ }
|
||||
++
|
||||
++ src = (InputBuffer *) cinfo->src;
|
||||
++ src->pub.init_source = init_source;
|
||||
++ src->pub.fill_input_buffer = fill_input_buffer;
|
||||
++ src->pub.skip_input_data = skip_input_data;
|
||||
++ src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */
|
||||
++ src->pub.term_source = term_source;
|
||||
++ src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */
|
||||
++ src->pub.next_input_byte = NULL; /* until buffer loaded */
|
||||
++}
|
||||
++
|
||||
++/* Read a JPEG memory buffer into a VIPS image.
|
||||
++ */
|
||||
++static int
|
||||
++bufjpeg2vips( void *buf, size_t len, IMAGE *out )
|
||||
++{
|
||||
++ char *p, *q;
|
||||
++ struct jpeg_decompress_struct cinfo;
|
||||
++ ErrorManager eman;
|
||||
++ int result;
|
||||
++ gboolean invert_pels;
|
||||
++ gboolean header_only = FALSE;
|
||||
++
|
||||
++ /* Make jpeg dcompression object.
|
||||
++ */
|
||||
++ cinfo.err = jpeg_std_error( &eman.pub );
|
||||
++ eman.pub.error_exit = new_error_exit;
|
||||
++ eman.pub.output_message = new_output_message;
|
||||
++ eman.fp = NULL;
|
||||
++ if( setjmp( eman.jmp ) ) {
|
||||
++ /* Here for longjmp() from new_error_exit().
|
||||
++ */
|
||||
++ jpeg_destroy_decompress( &cinfo );
|
||||
++
|
||||
++ return( -1 );
|
||||
++ }
|
||||
++ jpeg_create_decompress( &cinfo );
|
||||
++
|
||||
++ /* Make input.
|
||||
++ */
|
||||
++ buf_source( &cinfo, buf, len );
|
||||
++
|
||||
++ /* Need to read in APP1 (EXIF metadata) and APP2 (ICC profile).
|
||||
++ */
|
||||
++ jpeg_save_markers( &cinfo, JPEG_APP0 + 1, 0xffff );
|
||||
++ jpeg_save_markers( &cinfo, JPEG_APP0 + 2, 0xffff );
|
||||
++
|
||||
++ /* Convert!
|
||||
++ */
|
||||
++ result = read_jpeg_header( &cinfo, out, &invert_pels, 1 );
|
||||
++ if( !header_only && !result )
|
||||
++ result = read_jpeg_image( &cinfo, out, invert_pels );
|
||||
++
|
||||
++ /* Close and tidy.
|
||||
++ */
|
||||
++ jpeg_destroy_decompress( &cinfo );
|
||||
++
|
||||
++ return( result );
|
||||
++}
|
||||
++
|
||||
+ /**
|
||||
+ * im_jpeg2vips:
|
||||
+ * @filename: file to load
|
||||
+@@ -803,6 +1026,27 @@
|
||||
+ return( jpeg2vips( filename, out, FALSE ) );
|
||||
+ }
|
||||
+
|
||||
++/**
|
||||
++ * im_bufjpeg2vips:
|
||||
++ * @buf: memory area to load
|
||||
++ * @len: size of memory area
|
||||
++ * @out: image to write
|
||||
++ *
|
||||
++ * Read a JPEG-formatted memory block into a VIPS image. It can read most
|
||||
++ * 8-bit JPEG images, including CMYK and YCbCr.
|
||||
++ *
|
||||
++ * This function is handy for processing JPEG image thumbnails.
|
||||
++ *
|
||||
++ * See also: #VipsFormat, im_jpeg2vips().
|
||||
++ *
|
||||
++ * Returns: 0 on success, -1 on error.
|
||||
++ */
|
||||
++int
|
||||
++im_bufjpeg2vips( void *buf, size_t len, IMAGE *out )
|
||||
++{
|
||||
++ return( bufjpeg2vips( buf, len, out ) );
|
||||
++}
|
||||
++
|
||||
+ static int
|
||||
+ isjpeg( const char *filename )
|
||||
+ {
|
||||
+diff -u --recursive vips-7.24.5-vanilla/libvips/include/vips/format.h vips-7.24.5/libvips/include/vips/format.h
|
||||
+--- vips-7.24.5-vanilla/libvips/include/vips/format.h 2011-07-04 09:23:04.643721945 -0500
|
||||
++++ vips-7.24.5/libvips/include/vips/format.h 2011-07-04 09:26:21.870724494 -0500
|
||||
+@@ -122,6 +122,7 @@
|
||||
+ /* Low-level read/write operations.
|
||||
+ */
|
||||
+ int im_jpeg2vips( const char *filename, IMAGE *out );
|
||||
++int im_bufjpeg2vips( void *buf, size_t len, IMAGE *out );
|
||||
+ int im_vips2jpeg( IMAGE *in, const char *filename );
|
||||
+ int im_vips2mimejpeg( IMAGE *in, int qfac );
|
||||
+ int im_vips2bufjpeg( IMAGE *in, IMAGE *out, int qfac, char **obuf, int *olen );
|
@ -1,31 +0,0 @@
|
||||
diff -u --recursive vips-7.26.1-vanilla/libvips/format/fits.c vips-7.26.1/libvips/format/fits.c
|
||||
--- vips-7.26.1-vanilla/libvips/format/fits.c 2011-08-10 21:31:05.971950126 -0500
|
||||
+++ vips-7.26.1/libvips/format/fits.c 2011-08-10 22:12:08.478853668 -0500
|
||||
@@ -56,8 +56,6 @@
|
||||
#endif /*HAVE_CONFIG_H*/
|
||||
#include <vips/intl.h>
|
||||
|
||||
-#ifdef HAVE_CFITSIO
|
||||
-
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
@@ -67,6 +65,18 @@
|
||||
#include <vips/internal.h>
|
||||
#include <vips/debug.h>
|
||||
|
||||
+#ifndef HAVE_CFITSIO
|
||||
+
|
||||
+int
|
||||
+im_fits2vips( const char *filename, IMAGE *im )
|
||||
+{
|
||||
+ im_error( "im_fits2vips", "%s",
|
||||
+ _( "FITS support disabled" ) );
|
||||
+ return( -1 );
|
||||
+}
|
||||
+
|
||||
+#else /* HAVE_CFITSIO */
|
||||
+
|
||||
#include <fitsio.h>
|
||||
|
||||
#ifdef WITH_DMALLOC
|
Loading…
x
Reference in New Issue
Block a user