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

Reply via email to