This patch adds libjpeg-turbo 1.1.1 and adjusts all packages depending on libjpeg to instead depend on libjpeg-turbo. Packages built against the current jpeg-6gb in the tree will need to be rebuilt. If you want a drop-in replacement for the current tree, remove the "--with-jpeg8" line from the configure section.
Libjpeg-turbo is a fork of jpeg-6b, which includes MMX, SSE and NEON acceleration and other performance enhancements. It is meant to be ABI/API compatible with the Independent JPEG Group's (IJG) jpeg implementation. Since its initial release, it also emulates jpeg 7 or 8, and has been adopted as the system jpeg library of Fedora, and an option in Gentoo. The SIMD acceleration provides a 2-4x speedup. On non-SIMD machines the enhancements provides up to a 25% improvement. Signed-off-by: Ian Leonard <antonla...@gmail.com> --- The Makefile disables SIMD support, as I believe the only platform OpenWRT supports them might be the Geode. I don't have one to test. Before enabling, an assembler will need to be added (nasm?). I have not checked the size in comparison to the IJG's jpeg or checked the performance improvements. Numbers above are as reported by the developer. I also have not checked the compatibility with every application I adjusted the dependencies for. It does work for me with minidlna and libgd. Testers welcome. After the New Year, my ability to work on this will be severely limited. If there is something extensive, someone else will need to invest the time in correcting it. Does OpenWRT wish to switch libjpeg providers? Is there a better way to replace libjpeg? --- Index: packages/utils/hplip/Makefile =================================================================== --- packages/utils/hplip/Makefile (revision 29504) +++ packages/utils/hplip/Makefile (working copy) @@ -25,7 +25,7 @@ CATEGORY:=Utilities TITLE:=HP Linux Imaging and Printing URL:=http://sourceforge.net/projects/hplip/ - DEPENDS+=+libjpeg +libtiff +libusb +cups +sane-libs + DEPENDS+=+libjpeg-turbo +libtiff +libusb +cups +sane-libs endef define Package/hplip/description Index: packages/utils/sane-backends/Makefile =================================================================== --- packages/utils/sane-backends/Makefile (revision 29504) +++ packages/utils/sane-backends/Makefile (working copy) @@ -47,7 +47,7 @@ $(call Package/sane-backends/Default) SECTION:=libs CATEGORY:=Libraries - DEPENDS:=+libjpeg +libtiff +libusb + DEPENDS:=+libjpeg-turbo +libtiff +libusb TITLE+= (libraries) endef Index: packages/lang/python-imaging-library/Makefile =================================================================== --- packages/lang/python-imaging-library/Makefile (revision 29504) +++ packages/lang/python-imaging-library/Makefile (working copy) @@ -27,7 +27,7 @@ SUBMENU:=Python TITLE:=Python Imaging Library (PIL) URL:=http://www.pythonware.com/products/pil/ - DEPENDS:=+python +libfreetype +libjpeg +zlib + DEPENDS:=+python +libfreetype +libjpeg-turbo +zlib endef define Package/python-imaging-library/description Index: packages/net/cups/Makefile =================================================================== --- packages/net/cups/Makefile (revision 29504) +++ packages/net/cups/Makefile (working copy) @@ -25,7 +25,7 @@ define Package/cups SECTION:=net CATEGORY:=Network - DEPENDS:=+zlib +libpthread +libpng +libjpeg +libstdcpp + DEPENDS:=+zlib +libpthread +libpng +libjpeg-turbo +libstdcpp TITLE:=Common UNIX Printing System URL:=http://www.cups.org/ endef Index: packages/net/vnc-reflector/Makefile =================================================================== --- packages/net/vnc-reflector/Makefile (revision 29504) +++ packages/net/vnc-reflector/Makefile (working copy) @@ -22,7 +22,7 @@ define Package/vnc-reflector SECTION:=net CATEGORY:=Network - DEPENDS:=+libjpeg +zlib + DEPENDS:=+libjpeg-turbo +zlib TITLE:=VNC proxy for multiple clients URL:=http://sourceforge.net/projects/vnc-reflector endef Index: packages/net/freeswitch/Makefile =================================================================== --- packages/net/freeswitch/Makefile (revision 29504) +++ packages/net/freeswitch/Makefile (working copy) @@ -761,7 +761,7 @@ $(eval $(call BuildPlugin,snmp,Simple Network Management Protocol,mod_snmp,,+libnetsnmp)) $(eval $(call BuildPlugin,snom,SNOM specific features,mod_snom,,)) $(eval $(call BuildPlugin,sofia,SIP,mod_sofia,,)) -$(eval $(call BuildPlugin,spandsp,Span DSP,mod_spandsp,,+libjpeg)) +$(eval $(call BuildPlugin,spandsp,Span DSP,mod_spandsp,,+libjpeg-turbo)) $(eval $(call BuildPlugin,speex,Speex codec,mod_speex,,)) $(eval $(call BuildPlugin,spidermonkey,JavaScript,mod_spidermonkey,,@BROKEN)) # fails in js $(eval $(call BuildPlugin,spidermonkey-core_db,JavaScript DB,mod_spidermonkey_core_db,,@BROKEN)) Index: packages/libs/tiff/Makefile =================================================================== --- packages/libs/tiff/Makefile (revision 29504) +++ packages/libs/tiff/Makefile (working copy) @@ -35,7 +35,7 @@ SECTION:=libs CATEGORY:=Libraries TITLE+= library - DEPENDS:=+zlib +libjpeg + DEPENDS:=+zlib +libjpeg-turbo endef define Package/libtiffxx Index: packages/libs/vips/Makefile =================================================================== --- packages/libs/vips/Makefile (revision 29504) +++ packages/libs/vips/Makefile (working copy) @@ -27,7 +27,7 @@ CATEGORY:=Multimedia TITLE:=An image manipulation library URL:=http://www.vips.ecs.soton.ac.uk/ - DEPENDS:=+glib2 +libexif +libjpeg +libpng +libxml2 $(INTL_DEPENDS) + DEPENDS:=+glib2 +libexif +libjpeg-turbo +libpng +libxml2 $(INTL_DEPENDS) endef TARGET_LDFLAGS+= \ Index: packages/libs/libdirectfb/Makefile =================================================================== --- packages/libs/libdirectfb/Makefile (revision 29504) +++ packages/libs/libdirectfb/Makefile (working copy) @@ -25,7 +25,7 @@ SECTION:=libs CATEGORY:=Libraries URL:=http://directfb.org - DEPENDS:=+libpng +libjpeg +libpthread +libfreetype + DEPENDS:=+libpng +libjpeg-turbo +libpthread +libfreetype endef define Package/directfb/description Index: packages/libs/gd/Makefile =================================================================== --- packages/libs/gd/Makefile (revision 29504) +++ packages/libs/gd/Makefile (working copy) @@ -25,7 +25,7 @@ define Package/libgd SECTION:=libs CATEGORY:=Libraries - DEPENDS:=+libjpeg +libpng + DEPENDS:=+libjpeg-turbo +libpng TITLE:=The GD graphics library URL:=http://www.libgd.org/ endef Index: packages/libs/libjpeg-turbo/Makefile =================================================================== --- packages/libs/libjpeg-turbo/Makefile (revision 0) +++ packages/libs/libjpeg-turbo/Makefile (revision 0) @@ -0,0 +1,82 @@ +# +# Copyright (C) 20011 OpenWrt.org +# +# This is free software, licensed under the wxWindows Library Licence, Version 3.1. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=libjpeg-turbo +PKG_VERSION:=1.1.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/libjpeg-turbo +PKG_MD5SUM:=03b9c1406c7bfdc204313c2917ce6962 + +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/package.mk + +define Package/libjpeg-turbo/Default + TITLE:=Fork of libjpeg with performance improvements + URL:=http://libjpeg-turbo.virtualgl.org/ +endef + +define Package/libjpeg-turbo + $(call Package/libjpeg-turbo/Default) + SECTION:=libs + CATEGORY:=Libraries + TITLE+= runtime library +endef + +define Package/jpeg-tools + $(call Package/libjpeg-turbo/Default) + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+libjpeg-turbo + TITLE+= manipulation tools +endef + +TARGET_CFLAGS += $(FPIC) + +CONFIGURE_ARGS += \ + --enable-shared \ + --enable-static \ + --with-jpeg8 \ + --without-simd \ + +# +# libjpegturbo.{a,so} provides the TurboJPEG/OSS interface. +# No known use in OpenWRT at this time. 14/11/11 +# + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_BUILD_DIR)/jpeglib.h $(1)/usr/include/ + $(CP) $(PKG_BUILD_DIR)/jpegint.h $(1)/usr/include/ + $(CP) $(PKG_BUILD_DIR)/j{config,error,morecfg}.h $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_BUILD_DIR)/.libs/libjpeg.{a,so*} $(1)/usr/lib/ +# $(CP) $(PKG_BUILD_DIR)/.libs/libturbojpeg.{a,so*} $(1)/usr/lib/ +endef + +define Package/libjpeg-turbo/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_BUILD_DIR)/.libs/libjpeg.{a,so*} $(1)/usr/lib/ +# $(CP) $(PKG_BUILD_DIR)/.libs/libturbojpeg.{a,so*} $(1)/usr/lib/ +endef + +define Package/jpeg-tools/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/.libs/{c,d}jpeg $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/.libs/jpeg{tran,gut} $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/.libs/{rd,wr}jpgcom $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/.libs/jpgtest $(1)/usr/bin/ +endef + +$(eval $(call HostBuild)) +$(eval $(call BuildPackage,libjpeg-turbo)) +$(eval $(call BuildPackage,jpeg-tools)) Index: packages/libs/libtwin/Makefile =================================================================== --- packages/libs/libtwin/Makefile (revision 29504) +++ packages/libs/libtwin/Makefile (working copy) @@ -23,7 +23,7 @@ define Package/libtwin SECTION:=libs CATEGORY:=Libraries - DEPENDS:=+zlib +libpng +libjpeg +libfreetype + DEPENDS:=+zlib +libpng +libjpeg-turbo +libfreetype TITLE:=The tiny windowing system library URL:=http://ozlabs.org/~jk/projects/petitboot/ MAINTAINER:=Geoff Levand <geoffrey.lev...@am.sony.com> Index: packages/libs/libgphoto2/Makefile =================================================================== --- packages/libs/libgphoto2/Makefile (revision 29504) +++ packages/libs/libgphoto2/Makefile (working copy) @@ -30,7 +30,7 @@ define Package/libgphoto2 $(call Package/libgphoto2/Default) - DEPENDS:=+libusb +libexif +libjpeg +libpthread +libltdl $(ICONV_DEPENDS) + DEPENDS:=+libusb +libexif +libjpeg-turbo +libpthread +libltdl $(ICONV_DEPENDS) TITLE:=The basic library of the gphoto2 program. MENU:=1 endef Index: packages/libs/leptonica/Makefile =================================================================== --- packages/libs/leptonica/Makefile (revision 29504) +++ packages/libs/leptonica/Makefile (working copy) @@ -25,7 +25,7 @@ CATEGORY:=Libraries TITLE:=A library for efficient image processing and image analysis operations URL:=http://leptonica.googlecode.com/ - DEPENDS:=+giflib +libjpeg +libpng +libtiff +zlib + DEPENDS:=+giflib +libjpeg-turbo +libpng +libtiff +zlib endef TARGET_CFLAGS += $(FPIC) Index: packages/multimedia/imagemagick/Makefile =================================================================== --- packages/multimedia/imagemagick/Makefile (revision 29504) +++ packages/multimedia/imagemagick/Makefile (working copy) @@ -42,7 +42,7 @@ define Package/imagemagick-jpeg $(call Package/imagemagick/Default) TITLE+= (jpeg) - DEPENDS:=+imagemagick +libjpeg +zlib + DEPENDS:=+imagemagick +libjpeg-turbo +zlib endef define Package/imagemagick-jpeg/description Index: packages/multimedia/motion/Makefile =================================================================== --- packages/multimedia/motion/Makefile (revision 29504) +++ packages/multimedia/motion/Makefile (working copy) @@ -23,7 +23,7 @@ define Package/motion SECTION:=multimedia CATEGORY:=Multimedia - DEPENDS:=+libjpeg +libpthread + DEPENDS:=+libjpeg-turbo +libpthread TITLE:=webcam motion sensing and logging URL:=http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome endef Index: packages/multimedia/kissdx/Makefile =================================================================== --- packages/multimedia/kissdx/Makefile (revision 29504) +++ packages/multimedia/kissdx/Makefile (working copy) @@ -23,7 +23,7 @@ define Package/kissdx SECTION:=multimedia CATEGORY:=Multimedia - DEPENDS:=+libjpeg +libdvdread $(ICONV_DEPENDS) + DEPENDS:=+libjpeg-turbo +libdvdread $(ICONV_DEPENDS) TITLE:=PC-Link clone for KiSS media players URL:=http://kissdx.vidartysse.net endef Index: packages/multimedia/minidlna/Makefile =================================================================== --- packages/multimedia/minidlna/Makefile (revision 29504) +++ packages/multimedia/minidlna/Makefile (working copy) @@ -26,7 +26,7 @@ CATEGORY:=Multimedia TITLE:=UPnP A/V & DLNA Media Server URL:=http://minidlna.sourceforge.net/ - DEPENDS:= +libpthread +libexif +libjpeg +libsqlite3 +libffmpeg \ + DEPENDS:= +libpthread +libexif +libjpeg-turbo +libsqlite3 +libffmpeg \ +libid3tag +libflac +libvorbis +libuuid \ $(ICONV_DEPENDS) $(INTL_DEPENDS) endef Index: packages/multimedia/ffmpeg/Makefile =================================================================== --- packages/multimedia/ffmpeg/Makefile (revision 29504) +++ packages/multimedia/ffmpeg/Makefile (working copy) @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ffmpeg -PKG_VERSION:=0.8.5 +PKG_VERSION:=0.8.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://ffmpeg.org/releases/ -PKG_MD5SUM:=726877b19ece7ea64def8b7e6727e182 +PKG_MD5SUM:=31da4d5610d7138761e23fab8fe3a84d FFMPEG_CUSTOM_ENCODERS:= \ ac3 \ Index: packages/multimedia/palantir/Makefile =================================================================== --- packages/multimedia/palantir/Makefile (revision 29504) +++ packages/multimedia/palantir/Makefile (working copy) @@ -15,12 +15,12 @@ PKG_SOURCE_URL:=http://www.fastpath.it/products/palantir/pub/ PKG_MD5SUM:=3a5b1fb340857f6d8e357bf39b77583e -PKG_BUILD_DEPENDS:=libjpeg +PKG_BUILD_DEPENDS:=libjpeg-turbo define Package/palantir SECTION:=multimedia CATEGORY:=Multimedia - DEPENDS:=+libjpeg +libpthread + DEPENDS:=+libjpeg-turbo +libpthread TITLE:=A multichannel interactive streaming solution URL:=http://www.fastpath.it/products/palantir/ endef Index: packages/multimedia/graphicsmagick/Makefile =================================================================== --- packages/multimedia/graphicsmagick/Makefile (revision 29504) +++ packages/multimedia/graphicsmagick/Makefile (working copy) @@ -40,7 +40,7 @@ define Package/GraphicsMagick-jpeg $(call Package/GraphicsMagick/Default) TITLE+= (jpeg) - DEPENDS:=+GraphicsMagick +libjpeg +zlib + DEPENDS:=+GraphicsMagick +libjpeg-turbo +zlib endef define Package/GraphicsMagick-jpeg/description Index: packages/multimedia/mjpg-streamer/Makefile =================================================================== --- packages/multimedia/mjpg-streamer/Makefile (revision 29504) +++ packages/multimedia/mjpg-streamer/Makefile (working copy) @@ -24,7 +24,7 @@ SECTION:=multimedia CATEGORY:=Multimedia TITLE:=MJPG-streamer - DEPENDS:=+libpthread +libjpeg + DEPENDS:=+libpthread +libjpeg-turbo URL:=http://mjpg-streamer.wiki.sourceforge.net/ endef _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel