Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add partial decode support to the TurboJPEG API #1

Closed
dcommander opened this issue Jul 27, 2015 · 4 comments
Closed

Add partial decode support to the TurboJPEG API #1

dcommander opened this issue Jul 27, 2015 · 4 comments

Comments

@dcommander
Copy link
Member

Thanks in part to a code contribution from Google, the libjpeg API in the evolving libjpeg-turbo 1.5 code base (master branch) can now partially decode JPEG images (more specifically, it can skip ranges of scanlines.)

It would be straightforward to expose this functionality in the TurboJPEG API as well, which might be beneficial for applications needing to decode subsets of large JPEG images, or for mobile applications that need to conserve memory. However, extending the TurboJPEG API to include this functionality will require significant time and effort. In addition to extending the C and Java APIs (and documenting the extensions), it would be necessary to add appropriate unit tests and performance tests.

@dcommander
Copy link
Member Author

Slipped 1.6. Re-adding funding needed tag.

@dcommander dcommander added this to the libjpeg-turbo 2.1 milestone Apr 13, 2018
Thinstation pushed a commit to Thinstation/thinstation that referenced this issue Nov 19, 2018
	modified:   ts/bin/install_chroot
	modified:   ts/bin/newpython
	modified:   ts/build/boot-images/templates/syslinux/installer/menu/normal.cfg
	modified:   ts/build/conf/devstation/build.conf.example
	modified:   ts/build/conf/devstation/thinstation.conf.buildtime
	modified:   ts/build/conf/installer/build.conf.example
	modified:   ts/build/conf/installer/thinstation.conf.buildtime
	new file:   ts/build/machine/allfirmware/firmware.list
	new file:   ts/build/machine/allfirmware/module.list
	modified:   ts/build/packages/base/etc/rc0.d/80fastboot
	modified:   ts/build/packages/devstation/bin/devcmd
	modified:   ts/build/packages/devstation/dependencies
	new file:   ts/build/packages/devstation/etc/sudoers.d/devstation
	modified:   ts/build/packages/devstation/lib/menu/1build
	new file:   ts/build/packages/gtk-3.0/build/extra/etc/gtk-3.0/settings.ini
	new file:   ts/build/packages/icons-hicolor/build/extra/lib/icons/hicolor/scalable/apps/terminal.svg
	modified:   ts/build/packages/installer/README
	new file:   ts/build/packages/installer/README.html
	modified:   ts/build/packages/installer/bin/install.sh
	modified:   ts/build/packages/installer/bin/installer
	new file:   ts/build/packages/installer/build/finalize
	modified:   ts/build/packages/installer/dependencies
	deleted:    ts/build/packages/installer/lib/indexed-locale.tab
	deleted:    ts/build/packages/installer/lib/indexed-zone.tab
	new file:   ts/build/packages/installer/lib/locale.tab
	new file:   ts/build/packages/sudo/.dna
	new file:   ts/build/packages/sudo/build/install
	new file:   ts/build/packages/sudo/build/remove
	new file:   ts/build/packages/sudo/dependencies
	new file:   ts/build/packages/system-config-printer/build/extra/bin/install-printerdriver
	new file:   ts/build/packages/system-config-printer/build/extra/bin/scp-dbus-service
	new file:   ts/build/packages/system-config-printer/build/extra/bin/system-config-printer
	new file:   ts/build/packages/system-config-printer/build/extra/bin/system-config-printer-applet
	new file:   ts/build/packages/tzupdate/.dna
	new file:   ts/build/packages/tzupdate/build/install
	new file:   ts/build/packages/tzupdate/build/remove
	new file:   ts/build/packages/tzupdate/dependencies
	new file:   ts/build/packages/webkit2gtk/.dna
	new file:   ts/build/packages/webkit2gtk/build/install
	new file:   ts/build/packages/webkit2gtk/build/remove
	new file:   ts/build/packages/webkit2gtk/dependencies
	modified:   ts/build/packages/zenity/dependencies
	deleted:    ts/ports/binary-core/intel-microcode/intel-microcode#20170511-1.pkg.tar.xz
	renamed:    ts/ports/components/gtkdialog-vte/.footprint -> ts/ports/broken/gtkdialog-vte/.footprint
	renamed:    ts/ports/components/gtkdialog-vte/.md5sum -> ts/ports/broken/gtkdialog-vte/.md5sum
	new file:   ts/ports/broken/gtkdialog-vte/Pkgfile
	modified:   ts/ports/components/colord/.footprint
	modified:   ts/ports/components/colord/colord#1.3.2-1.pkg.tar.xz
	modified:   ts/ports/components/eekboard/.footprint
	modified:   ts/ports/components/eekboard/Pkgfile
	modified:   ts/ports/components/eekboard/eekboard#1.0.8-1.pkg.tar.xz
	modified:   ts/ports/components/geoclue/.footprint
	modified:   ts/ports/components/geoclue/geoclue#2.4.3-2.pkg.tar.xz
	modified:   ts/ports/components/gstreamer-compat/gstreamer-compat#0.10.36-3.pkg.tar.xz
	deleted:    ts/ports/components/gtkdialog-vte/Pkgfile
	deleted:    ts/ports/components/gtkdialog-vte/gtkdialog-vte#0.8.3-2.pkg.tar.gz
	modified:   ts/ports/components/ibus/.footprint
	modified:   ts/ports/components/ibus/.md5sum
	modified:   ts/ports/components/ibus/Pkgfile
	new file:   ts/ports/components/ibus/README
	deleted:    ts/ports/components/ibus/ibus#1.5.14-1.pkg.tar.xz
	new file:   ts/ports/components/ibus/ibus#1.5.17-3.pkg.tar.xz
	new file:   ts/ports/components/ibus/post-install
	modified:   ts/ports/components/inkcut/Pkgfile
	deleted:    ts/ports/components/inkcut/inkcut#1.0-1.pkg.tar.gz
	new file:   ts/ports/components/inkcut/inkcut#1.0-1.pkg.tar.xz
	modified:   ts/ports/components/libcanberra/libcanberra#0.30-1.pkg.tar.xz
	modified:   ts/ports/components/libgusb/libgusb#0.2.9-1.pkg.tar.xz
	modified:   ts/ports/components/libimobiledevice/libimobiledevice#1.2.0-1.pkg.tar.xz
	modified:   ts/ports/components/libmbim/libmbim#1.12.2-1.pkg.tar.xz
	modified:   ts/ports/components/libqmi/libqmi#1.12.6-1.pkg.tar.xz
	modified:   ts/ports/components/libuser/libuser#0.62-1.pkg.tar.xz
	modified:   ts/ports/components/libvirt-glib/libvirt-glib#1.0.0-1.pkg.tar.xz
	modified:   ts/ports/components/libvirt/libvirt#1.3.5-1.pkg.tar.xz
	modified:   ts/ports/components/libwacom/libwacom#0.21-1.pkg.tar.xz
	modified:   ts/ports/components/motif/motif#2.3.6-1.pkg.tar.xz
	modified:   ts/ports/components/open-vm-tools/open-vm-tools#10.1.5-1.pkg.tar.xz
	modified:   ts/ports/components/opencryptoki/opencryptoki#3.7.0-1.pkg.tar.xz
	modified:   ts/ports/components/pidgin-sipe/pidgin-sipe#1.21.1-1.pkg.tar.xz
	modified:   ts/ports/components/TigerVNC/tigervnc#1.8.0-1.pkg.tar.xz
	modified:   ts/ports/components/udisks/.footprint
	modified:   ts/ports/components/udisks/udisks#2.1.3-1.pkg.tar.xz
	modified:   ts/ports/components/usbmuxd/.footprint
	modified:   ts/ports/components/usbmuxd/usbmuxd#1.1.0-1.pkg.tar.xz
	modified:   ts/ports/components/virt-viewer/virt-viewer#5.0-1.pkg.tar.xz
	modified:   ts/ports/components/windowmaker/windowmaker#0.95.5-git.pkg.tar.xz
	modified:   ts/ports/contrib/boost/boost#1.63.0-1.pkg.tar.xz
	modified:   ts/ports/contrib/gcr/gcr#3.20.0-1.pkg.tar.xz
	modified:   ts/ports/contrib/geany-plugins/.footprint
	modified:   ts/ports/contrib/geany-plugins/Pkgfile
	modified:   ts/ports/contrib/geany-plugins/geany-plugins#git-1.pkg.tar.xz
	modified:   ts/ports/contrib/geany/.footprint
	modified:   ts/ports/contrib/geany/.md5sum
	modified:   ts/ports/contrib/geany/Pkgfile
	deleted:    ts/ports/contrib/geany/geany#1.29-1.pkg.tar.xz
	new file:   ts/ports/contrib/geany/geany#1.32-1.pkg.tar.xz
	modified:   ts/ports/contrib/glib-networking/glib-networking#2.48.2-1.pkg.tar.xz
	modified:   ts/ports/contrib/gtkspell/gtkspell#2.0.16-1.pkg.tar.xz
	modified:   ts/ports/contrib/inkscape/inkscape#0.92.1-3.pkg.tar.xz
	modified:   ts/ports/contrib/libfm/libfm#git-1.pkg.tar.xz
	modified:   ts/ports/contrib/libsoup/libsoup#2.54.1-1.pkg.tar.xz
	deleted:    ts/ports/contrib/openjpeg/.signature
	modified:   ts/ports/contrib/pidgin/pidgin#2.11.0-1.pkg.tar.xz
	modified:   ts/ports/contrib/rest/rest#0.8.0-1.pkg.tar.xz
	modified:   ts/ports/contrib/spice-gtk/spice-gtk#0.33-1.pkg.tar.xz
	modified:   ts/ports/contrib/spice/spice#0.13.3-1.pkg.tar.xz
	modified:   ts/ports/contrib/vala/vala#0.29.2-1.pkg.tar.xz
	deleted:    ts/ports/contrib/webkit-gtk2/.signature
	modified:   ts/ports/contrib/webkit-gtk2/webkit-gtk2#2.4.11-1.pkg.tar.xz
	modified:   ts/ports/contrib/webkit-gtk3/webkit-gtk3#2.4.11-1.pkg.tar.xz
	new file:   ts/ports/contrib/yelp/.footprint
	new file:   ts/ports/contrib/yelp/.md5sum
	new file:   ts/ports/contrib/yelp/Pkgfile
	new file:   ts/ports/contrib/yelp/yelp#3.22-1.pkg.tar.xz
	deleted:    ts/ports/core/exim/.signature
	modified:   ts/ports/core/libtool/.footprint
	modified:   ts/ports/core/libtool/.md5sum
	modified:   ts/ports/core/libtool/Pkgfile
	deleted:    ts/ports/core/libtool/libtool#2.4.2-1.pkg.tar.gz
	new file:   ts/ports/core/libtool/libtool#2.4.6-2.pkg.tar.xz
	modified:   ts/ports/core/perl/perl#5.20.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/at-spi2-atk/at-spi2-atk#2.20.1-1.pkg.tar.xz
	modified:   ts/ports/gnome/at-spi2-core/at-spi2-core#2.20.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/evince/evince#3.24.1-1.pkg.tar.xz
	modified:   ts/ports/gnome/file-roller/file-roller#3.20.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/gconf/.footprint
	modified:   ts/ports/gnome/gconf/gconf#3.2.6-1.pkg.tar.xz
	modified:   ts/ports/gnome/gdk-pixbuf/gdk-pixbuf#2.34.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/geocode-glib/geocode-glib#3.20.1-2.pkg.tar.xz
	modified:   ts/ports/gnome/glib/.footprint
	modified:   ts/ports/gnome/glib/.md5sum
	modified:   ts/ports/gnome/glib/Pkgfile
	deleted:    ts/ports/gnome/glib/glib#2.48.1-1.pkg.tar.xz
	new file:   ts/ports/gnome/glib/glib#2.54.3-1.pkg.tar.xz
	modified:   ts/ports/gnome/gmtk/gmtk#1.0.9b-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-bluetooth/gnome-bluetooth#3.20.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-control-center/gnome-control-center#3.20.1-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-desktop/gnome-desktop#3.20.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-disk-utility/gnome-disk-utility#3.20.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-keyring/gnome-keyring#3.20.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-menus/gnome-menus#3.13.3-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-mplayer/gnome-mplayer#1.0.9b-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-online-accounts/gnome-online-accounts#3.20.3-2.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-search-tool/gnome-search-tool#3.6.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/gnome-settings-daemon/gnome-settings-daemon#3.20.1-1.pkg.tar.xz
	modified:   ts/ports/gnome/gtk-engines/gtk-engines#2.21.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/GLibSharp/GtkSharp#2.12.10-1.pkg.tar.xz
	modified:   ts/ports/gnome/gtk-theme-adwaita/gtk-theme-adwaita#3.20-1.pkg.tar.xz
	modified:   ts/ports/gnome/gtk-vnc/gtk-vnc#0.6.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/gtk/gtk#2.24.30-1.pkg.tar.xz
	modified:   ts/ports/gnome/gtk3/.footprint
	modified:   ts/ports/gnome/gtk3/.md5sum
	modified:   ts/ports/gnome/gtk3/Pkgfile
	deleted:    ts/ports/gnome/gtk3/gtk3#3.20.8-1.pkg.tar.xz
	new file:   ts/ports/gnome/gtk3/gtk3#3.22.28-1.pkg.tar.xz
	modified:   ts/ports/gnome/gtksourceview/gtksourceview#3.18.1-1.pkg.tar.xz
	modified:   ts/ports/gnome/gvfs/.footprint
	modified:   ts/ports/gnome/gvfs/gvfs#1.28.3-1.pkg.tar.xz
	modified:   ts/ports/gnome/json-glib/json-glib#1.2.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/libgnome-keyring/.footprint
	modified:   ts/ports/gnome/libgnome-keyring/libgnome-keyring#3.12.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/libgnomekbd/libgnomekbd#3.6.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/libgtop/.footprint
	modified:   ts/ports/gnome/libgtop/libgtop#2.34.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/libgudev/libgudev#230-1.pkg.tar.xz
	modified:   ts/ports/gnome/libnotify/libnotify#0.7.6-1.pkg.tar.xz
	modified:   ts/ports/gnome/libpeas/libpeas#1.10.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/librsvg/librsvg#2.40.16-2.pkg.tar.xz
	modified:   ts/ports/gnome/libsecret/libsecret#0.18.5-1.pkg.tar.xz
	modified:   ts/ports/gnome/metacity/metacity#3.20.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/networkmanager-applet/networkmanager-applet#1.2.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/networkmanager/.footprint
	modified:   ts/ports/gnome/NetworkManager/NetworkManager#1.2.2-1.pkg.tar.xz
	modified:   ts/ports/gnome/pango/pango#1.40.1-1.pkg.tar.xz
	modified:   ts/ports/gnome/pygobject-gtk3/pygobject-gtk3#3.21.0-1.pkg.tar.xz
	modified:   ts/ports/gnome/pygobject/pygobject#2.28.6-1.pkg.tar.xz
	modified:   ts/ports/gnome/totem-pl-parser/totem-pl-parser#3.10.7-1.pkg.tar.xz
	modified:   ts/ports/gnome/totem/totem.github.io#3.24.0-1.pkg.tar.xz
	modified:   ts/ports/lxde/python-xklavier/python-xklavier#0.4-1.pkg.tar.xz
	modified:   ts/ports/opt/bash-completion/bash-completion#2.3-2.pkg.tar.xz
	modified:   ts/ports/opt/chromium/.footprint
	modified:   ts/ports/opt/chromium/.md5sum
	deleted:    ts/ports/opt/chromium/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch
	deleted:    ts/ports/opt/chromium/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch
	modified:   ts/ports/opt/chromium/Pkgfile
	deleted:    ts/ports/opt/chromium/chromium#59.0.3071.115-1.pkg.tar.xz
	new file:   ts/ports/opt/chromium/chromium#64.0.3282.186-1.pkg.tar.xz
	new file:   ts/ports/opt/chromium/chromium-64.0.3282.119-constexpr-1.patch
	new file:   ts/ports/opt/chromium/chromium-clang-r2.patch
	new file:   ts/ports/opt/chromium/chromium-cups-r0.patch
	new file:   ts/ports/opt/chromium/chromium-memcpy-r0.patch
	new file:   ts/ports/opt/chromium/chromium-omnibox-unescape-fragment.patch
	new file:   ts/ports/opt/chromium/chromium-skia-harmony.patch
	new file:   ts/ports/opt/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch
	deleted:    ts/ports/opt/chromium/chromium.desktop
	new file:   ts/ports/opt/chromium/gcc5.patch
	new file:   ts/ports/opt/chromium/last-commit-position.patch
	deleted:    ts/ports/opt/chromium/nosandboxwarning.patch
	deleted:    ts/ports/opt/cyrus-sasl/.signature
	modified:   ts/ports/opt/dbus-glib/dbus-glib#0.102-2.pkg.tar.xz
	modified:   ts/ports/opt/expat/.footprint
	modified:   ts/ports/opt/expat/.md5sum
	modified:   ts/ports/opt/expat/Pkgfile
	deleted:    ts/ports/opt/expat/expat#2.0.1-2.pkg.tar.gz
	new file:   ts/ports/opt/expat/expat#2.2.5-1.pkg.tar.xz
	deleted:    ts/ports/opt/fetchmail/.signature
	modified:   ts/ports/opt/gnutls/gnutls#3.3.28-1.pkg.tar.xz
	modified:   ts/ports/opt/gobject-introspection/gobject-introspection#1.48.0-1.pkg.tar.xz
	modified:   ts/ports/opt/GStreamer/gstreamer#1.12.1-1.pkg.tar.xz
	modified:   ts/ports/opt/gutenprint/gutenprint#5.2.11-1.pkg.tar.xz
	modified:   ts/ports/opt/imagemagick/.footprint
	modified:   ts/ports/opt/imagemagick/.md5sum
	modified:   ts/ports/opt/imagemagick/Pkgfile
	deleted:    ts/ports/opt/ImageMagick/ImageMagick#6.9.8-10-1.pkg.tar.xz
	new file:   ts/ports/opt/ImageMagick/ImageMagick#6.9.9-35-1.pkg.tar.xz
	modified:   ts/ports/opt/iso-codes/.footprint
	modified:   ts/ports/opt/iso-codes/.md5sum
	modified:   ts/ports/opt/iso-codes/Pkgfile
	deleted:    ts/ports/opt/iso-codes/iso-codes#1.0-1.pkg.tar.gz
	new file:   ts/ports/opt/iso-codes/iso-codes#3.65-1.pkg.tar.xz
	modified:   ts/ports/opt/libffi/.footprint
	modified:   ts/ports/opt/libffi/.md5sum
	modified:   ts/ports/opt/libffi/Pkgfile
	deleted:    ts/ports/opt/libffi/libffi#3.0.10-1.pkg.tar.gz
	new file:   ts/ports/opt/libffi/libffi#3.2.1-3.pkg.tar.xz
	new file:   ts/ports/opt/libjpeg-turbo/.footprint
	new file:   ts/ports/opt/libjpeg-turbo/.md5sum
	new file:   ts/ports/opt/libjpeg-turbo/Pkgfile
	new file:   ts/ports/opt/libjpeg-turbo/libjpeg-turbo#1.5.3-1.pkg.tar.xz
	deleted:    ts/ports/opt/libjpeg/.footprint
	deleted:    ts/ports/opt/libjpeg/.md5sum
	deleted:    ts/ports/opt/libjpeg/Pkgfile
	deleted:    ts/ports/opt/libjpeg/libjpeg#8c-1.pkg.tar.gz
	modified:   ts/ports/opt/libnfsidmap/libnfsidmap#0.24-1.pkg.tar.xz
	modified:   ts/ports/opt/libunique/libunique#1.1.6-1.pkg.tar.xz
	modified:   ts/ports/opt/libwnck/libwnck#2.31.0-1.pkg.tar.xz
	modified:   ts/ports/opt/libxklavier/libxklavier#5.4-1.pkg.tar.xz
	modified:   ts/ports/opt/llvm-shared/.footprint
	modified:   ts/ports/opt/llvm-shared/.md5sum
	deleted:    ts/ports/opt/llvm-shared/0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch
	deleted:    ts/ports/opt/llvm-shared/0002-Enable-SSP-and-PIE-by-default.patch
	modified:   ts/ports/opt/llvm-shared/Pkgfile
	new file:   ts/ports/opt/llvm-shared/README
	deleted:    ts/ports/opt/llvm-shared/disable-llvm-symbolizer-test.patch
	deleted:    ts/ports/opt/llvm-shared/lldb-gcc7.patch
	deleted:    ts/ports/opt/llvm-shared/lldb-libedit.patch
	modified:   ts/ports/opt/llvm-shared/llvm-config.h
	deleted:    ts/ports/opt/llvm-shared/llvm-shared#4.0.1-4.pkg.tar.xz
	new file:   ts/ports/opt/llvm-shared/llvm-shared#5.0.1-1.pkg.tar.xz
	modified:   ts/ports/opt/llvm/.footprint
	modified:   ts/ports/opt/llvm/.md5sum
	deleted:    ts/ports/opt/llvm/0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch
	deleted:    ts/ports/opt/llvm/0002-Enable-SSP-and-PIE-by-default.patch
	modified:   ts/ports/opt/llvm/Pkgfile
	new file:   ts/ports/opt/llvm/README
	deleted:    ts/ports/opt/llvm/disable-llvm-symbolizer-test.patch
	deleted:    ts/ports/opt/llvm/lldb-gcc7.patch
	deleted:    ts/ports/opt/llvm/lldb-libedit.patch
	deleted:    ts/ports/opt/llvm/llvm#4.0.1-4.pkg.tar.xz
	new file:   ts/ports/opt/llvm/llvm#5.0.1-1.pkg.tar.xz
	modified:   ts/ports/opt/llvm/llvm-config.h
	deleted:    ts/ports/opt/mplayer/.signature
	modified:   ts/ports/opt/nspr/.md5sum
	modified:   ts/ports/opt/nspr/Pkgfile
	deleted:    ts/ports/opt/nspr/nspr#4.12-1.pkg.tar.xz
	new file:   ts/ports/opt/nspr/nspr#4.18-1.pkg.tar.xz
	new file:   ts/ports/opt/nspr/nspr.pc.in
	modified:   ts/ports/opt/nss/.footprint
	modified:   ts/ports/opt/nss/.md5sum
	modified:   ts/ports/opt/nss/Pkgfile
	deleted:    ts/ports/opt/nss/nss#3.25-1.pkg.tar.xz
	new file:   ts/ports/opt/nss/nss#3.35-1.pkg.tar.xz
	new file:   ts/ports/opt/nss/nss-softokn.pc.in
	new file:   ts/ports/opt/nss/nss-util.pc.in
	modified:   ts/ports/opt/openldap/openldap#2.4.44-2.pkg.tar.xz
	modified:   ts/ports/opt/polkit/.footprint
	modified:   ts/ports/opt/polkit/polkit#0.112-1.pkg.tar.xz
	modified:   ts/ports/opt/python/.footprint
	modified:   ts/ports/opt/python/.md5sum
	modified:   ts/ports/opt/python/Pkgfile
	deleted:    ts/ports/opt/python/python#2.7.13-1.pkg.tar.xz
	new file:   ts/ports/opt/python/python#2.7.14-1.pkg.tar.xz
	deleted:    ts/ports/opt/qt4/.signature
	deleted:    ts/ports/opt/qt5/.signature
	modified:   ts/ports/opt/ruby/ruby#2.4.1-1.pkg.tar.xz
	deleted:    ts/ports/opt/setuptools/.footprint
	deleted:    ts/ports/opt/setuptools/.md5sum
	deleted:    ts/ports/opt/setuptools/Pkgfile
	deleted:    ts/ports/opt/setuptools/setuptools#0.6c11-1.pkg.tar.gz
	modified:   ts/ports/opt/subversion/.footprint
	modified:   ts/ports/opt/subversion/.md5sum
	modified:   ts/ports/opt/subversion/Pkgfile
	deleted:    ts/ports/opt/subversion/ruby-frozen-nil.patch
	deleted:    ts/ports/opt/subversion/subversion#1.9.5-1.pkg.tar.xz
	new file:   ts/ports/opt/subversion/subversion#1.9.7-1.pkg.tar.xz
	deleted:    ts/ports/opt/subversion/subversion.rpath.fix.patch
	modified:   ts/ports/opt/upower/.footprint
	modified:   ts/ports/opt/upower/upower#0.99.4-1.pkg.tar.xz
	modified:   ts/ports/opt/vte/vte#0.46.1-1.pkg.tar.xz
	modified:   ts/ports/opt/yasm/.footprint
	modified:   ts/ports/opt/yasm/.md5sum
	modified:   ts/ports/opt/yasm/Pkgfile
	deleted:    ts/ports/opt/yasm/yasm#1.1.0-1.pkg.tar.gz
	new file:   ts/ports/opt/yasm/yasm#1.3.0-2.pkg.tar.xz
	new file:   ts/ports/python/certifi/.footprint
	new file:   ts/ports/python/certifi/.md5sum
	new file:   ts/ports/python/certifi/Pkgfile
	new file:   ts/ports/python/certifi/certifi#pip-1.pkg.tar.xz
	new file:   ts/ports/python/chardet/.footprint
	new file:   ts/ports/python/chardet/.md5sum
	new file:   ts/ports/python/chardet/Pkgfile
	new file:   ts/ports/python/chardet/chardet#pip-1.pkg.tar.xz
	modified:   ts/ports/python/cheetah/Pkgfile
	modified:   ts/ports/python/cheetah/cheetah#pip-1.pkg.tar.xz
	modified:   ts/ports/python/cython/.footprint
	modified:   ts/ports/python/cython/Pkgfile
	modified:   ts/ports/python/cython/cython#pip-1.pkg.tar.xz
	new file:   ts/ports/python/idna/.footprint
	new file:   ts/ports/python/idna/.md5sum
	new file:   ts/ports/python/idna/Pkgfile
	new file:   ts/ports/python/idna/idna#pip-1.pkg.tar.xz
	modified:   ts/ports/python/netaddr/Pkgfile
	modified:   ts/ports/python/netaddr/netaddr#pip-1.pkg.tar.xz
	modified:   ts/ports/python/notify2/Pkgfile
	modified:   ts/ports/python/notify2/notify2#pip-1.pkg.tar.xz
	modified:   ts/ports/python/pip/.footprint
	modified:   ts/ports/python/pip/Pkgfile
	modified:   ts/ports/python/pip/pip#pip-1.pkg.tar.xz
	modified:   ts/ports/python/pycups/Pkgfile
	modified:   ts/ports/python/pycups/pycups#pip-1.pkg.tar.xz
	modified:   ts/ports/python/pycurl/.footprint
	modified:   ts/ports/python/pycurl/Pkgfile
	modified:   ts/ports/python/pycurl/pycurl#pip-1.pkg.tar.xz
	modified:   ts/ports/python/pyserial/.footprint
	modified:   ts/ports/python/pyserial/Pkgfile
	modified:   ts/ports/python/pyserial/pyserial#pip-1.pkg.tar.xz
	modified:   ts/ports/python/pyxdg/.footprint
	modified:   ts/ports/python/pyxdg/Pkgfile
	modified:   ts/ports/python/pyxdg/pyxdg#pip-1.pkg.tar.xz
	modified:   ts/ports/python/pyyaml/Pkgfile
	modified:   ts/ports/python/pyyaml/pyyaml#pip-1.pkg.tar.xz
	new file:   ts/ports/python/requests/.footprint
	new file:   ts/ports/python/requests/.md5sum
	new file:   ts/ports/python/requests/Pkgfile
	new file:   ts/ports/python/requests/requests#pip-1.pkg.tar.xz
	modified:   ts/ports/python/scapy/.footprint
	modified:   ts/ports/python/scapy/Pkgfile
	modified:   ts/ports/python/scapy/scapy#pip-1.pkg.tar.xz
	new file:   ts/ports/python/setuptools/.footprint
	new file:   ts/ports/python/setuptools/.md5sum
	new file:   ts/ports/python/setuptools/Pkgfile
	new file:   ts/ports/python/setuptools/setuptools#pip-1.pkg.tar.xz
	modified:   ts/ports/python/simplejson/.footprint
	modified:   ts/ports/python/simplejson/Pkgfile
	modified:   ts/ports/python/simplejson/simplejson#pip-1.pkg.tar.xz
	modified:   ts/ports/python/sqlalchemy/.footprint
	modified:   ts/ports/python/sqlalchemy/Pkgfile
	modified:   ts/ports/python/sqlalchemy/sqlalchemy#pip-1.pkg.tar.xz
	modified:   ts/ports/python/traydevice/traydevice#1.6.2-1.pkg.tar.xz
	new file:   ts/ports/python/tzupdate/.footprint
	new file:   ts/ports/python/tzupdate/.md5sum
	new file:   ts/ports/python/tzupdate/Pkgfile
	new file:   ts/ports/python/tzupdate/tzupdate#pip-1.pkg.tar.xz
	modified:   ts/ports/python/urlgrabber/Pkgfile
	modified:   ts/ports/python/urlgrabber/urlgrabber#pip-1.pkg.tar.xz
	new file:   ts/ports/python/urllib3/.footprint
	new file:   ts/ports/python/urllib3/.md5sum
	new file:   ts/ports/python/urllib3/Pkgfile
	new file:   ts/ports/python/urllib3/urllib3#pip-1.pkg.tar.xz
	modified:   ts/ports/xfce/garcon/.footprint
	modified:   ts/ports/xfce/garcon/garcon#0.6.1-1.pkg.tar.xz
	modified:   ts/ports/xfce/gtk-xfce-engine/gtk-xfce-engine#3.2.0-1.pkg.tar.xz
	modified:   ts/ports/xfce/terminal/terminal#0.8.1-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfce4-genmon-plugin/xfce4-genmon-plugin#4.0.0-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfce4-netload-plugin/.footprint
	modified:   ts/ports/xfce/xfce4-netload-plugin/xfce4-netload-plugin#1.3.1-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfce4-panel/xfce4-panel#4.12.1-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfce4-power-manager/.footprint
	modified:   ts/ports/xfce/xfce4-power-manager/xfce4-power-manager#1.6.0-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfce4-screenshooter/.footprint
	modified:   ts/ports/xfce/xfce4-screenshooter/xfce4-screenshooter#1.9.1-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfce4-session/xfce4-session#4.12.1-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfconf/.footprint
	modified:   ts/ports/xfce/xfconf/xfconf#4.12.1-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfdesktop/xfdesktop#4.12.4-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfmpc/xfmpc#0.2.3-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfwm4-themes/xfwm4-themes#4.10.0-1.pkg.tar.xz
	modified:   ts/ports/xfce/xfwm4/xfwm4#4.12.4-1.pkg.tar.xz
	modified:   ts/ports/xorg-opt/accountsservice/.footprint
	modified:   ts/ports/xorg-opt/accountsservice/accountsservice#0.6.42-1.pkg.tar.xz
	modified:   ts/ports/xorg-opt/colord-gtk/colord-gtk#0.1.26-2.pkg.tar.xz
	modified:   ts/ports/xorg-opt/modemmanager/.footprint
	modified:   ts/ports/xorg-opt/modemmanager/modemmanager#1.4.8-1.pkg.tar.xz
	modified:   ts/ports/xorg-opt/p11-kit/.footprint
	modified:   ts/ports/xorg-opt/p11-kit/.md5sum
	modified:   ts/ports/xorg-opt/p11-kit/Pkgfile
	deleted:    ts/ports/xorg-opt/p11-kit/p11-kit#0.22.1-1.pkg.tar.gz
	new file:   ts/ports/xorg-opt/p11-kit/p11-kit#0.23.2-1.pkg.tar.xz
	deleted:    ts/ports/xorg-opt/pavucontrol/.signature
	modified:   ts/ports/xorg-opt/telepathy-glib/telepathy-glib#0.24.1-1.pkg.tar.xz
	modified:   ts/ports/xorg/libdrm/.footprint
	modified:   ts/ports/xorg/libdrm/.md5sum
	modified:   ts/ports/xorg/libdrm/Pkgfile
	deleted:    ts/ports/xorg/libdrm/libdrm#2.4.81-1.pkg.tar.xz
	new file:   ts/ports/xorg/libdrm/libdrm#2.4.90-1.pkg.tar.xz
	modified:   ts/ports/xorg/mesa3d/.footprint
	modified:   ts/ports/xorg/mesa3d/.md5sum
	deleted:    ts/ports/xorg/mesa3d/MesaLib-10.1.0-svga_texture-1.patch
	modified:   ts/ports/xorg/mesa3d/Pkgfile
	deleted:    ts/ports/xorg/mesa3d/mesa3d#17.1.5-1.pkg.tar.xz
	new file:   ts/ports/xorg/mesa3d/mesa3d#17.3.5-1.pkg.tar.xz
	modified:   ts/ports/xorg/xorg-libxrandr/xorg-libxrandr#1.5.1-1.pkg.tar.xz
	modified:   ts/ports/xorg/xorg-libxshmfence/Pkgfile
	deleted:    ts/ports/xorg/xorg-libxshmfence/xorg-libxshmfence#1.2-1.pkg.tar.xz
	new file:   ts/ports/xorg/xorg-libxshmfence/xorg-libxshmfence#1.3-1.pkg.tar.xz
	modified:   ts/ports/xorg/xorg-xf86-video-qxl/Pkgfile
	modified:   ts/ports/xorg/xorg-xf86-video-qxl/xorg-xf86-video-qxl#0.1.5-2.pkg.tar.xz
	modified:   ts/ports/xorg/xorg-xf86-video-vmware/xorg-xf86-video-vmware#13.2.1-1.pkg.tar.xz
	modified:   ts/unwind_cache/iphone.turbo
	new file:   ts/unwind_cache/sudo.turbo
	new file:   ts/unwind_cache/tzupdate.turbo
	new file:   ts/unwind_cache/webkit2gtk.turbo
	new file:   ts/wind_cache/sudo.turbo
	new file:   ts/wind_cache/tzupdate.turbo
	new file:   ts/wind_cache/webkit2gtk.turbo
@dcommander dcommander removed this from the libjpeg-turbo 2.1 milestone Dec 11, 2019
@ghost ghost mentioned this issue Jul 28, 2020
@dcommander
Copy link
Member Author

Note that the wholesale rewrite I propose here would subsume this enhancement.

@dcommander
Copy link
Member Author

Subsumed by #517

@dcommander dcommander added the API label Jan 7, 2023
dcommander added a commit that referenced this issue Jan 26, 2023
(ChangeLog update forthcoming)

- Prefix all function names with "tj3" and remove version suffixes from
  function names.  (Future API overhauls will increment the prefix to
  "tj4", etc., thus retaining backward API/ABI compatibility without
  versioning each individual function.)

- Replace stateless boolean flags (including TJ*FLAG_ARITHMETIC and
  TJ*FLAG_LOSSLESS, which were never released) with stateful integer
  parameters, the value of which persists between function calls.
  * Use parameters for the JPEG quality and subsampling as well, in
    order to eliminate the awkwardness of specifying function arguments
    that weren't relevant for lossless compression.
  * tj3DecompressHeader() now stores all relevant information about the
    JPEG image, including the width, height, subsampling type, entropy
    coding type, etc. in parameters rather than returning that
    information in its arguments.
  * TJ*FLAG_LIMITSCANS has been reimplemented as an integer parameter
    (TJ*PARAM_SCANLIMIT) that allows the number of scans to be
    specified.

- Use the const keyword for all pointer arguments to unmodified
  buffers, as well as for both dimensions of 2D pointers.  Addresses
  #395.

- Use size_t rather than unsigned long to represent buffer sizes, since
  unsigned long is a 32-bit type on Windows.  Addresses #24.

- Return 0 from all buffer size functions if an error occurs, rather
  than awkwardly trying to return -1 in an unsigned data type.

- Implement 12-bit and 16-bit data precision using dedicated
  compression, decompression, and image I/O functions/methods.
  * Suffix the names of all data-precision-specific functions with 8,
    12, or 16.
  * Because the YUV functions are intended to be used for video, they
    are currently only implemented with 8-bit data precision, but they
    can be expanded to 12-bit data precision in the future, if
    necessary.
  * Extend TJUnitTest and TJBench to test 12-bit and 16-bit data
    precision, using a new -precision option.
  * Add appropriate regression tests for all of the above to the 'test'
    target.
  * Extend tjbenchtest to test 12-bit and 16-bit data precision, and
    add separate 'tjtest12' and 'tjtest16' targets.
  * BufferedImage I/O in the Java API is currently limited to 8-bit
    data precision, since the BufferedImage class does not
    straightforwardly support higher data precisions.
  * Extend the PPM reader to convert 12-bit and 16-bit PBMPLUS files
    to grayscale or CMYK pixels, as it already does for 8-bit files.

- Properly accommodate lossless JPEG using dedicated parameters
  (TJ*PARAM_LOSSLESS, TJ*PARAM_LOSSLESSPSV, and TJ*PARAM_LOSSLESSPT),
  rather than using a flag and awkwardly repurposing the JPEG quality.
  Update TJBench to properly reflect whether a JPEG image is lossless.

- Re-organize the TJBench usage screen.

- Update the Java docs using Java 11, to improve the formatting and
  eliminate HTML frames.

- Use the accurate integer DCT algorithm by default for both
  compression and decompression, since the "fast" algorithm is a legacy
  feature, it does not pass the ISO compliance tests, and it is not
  actually faster on modern x86 CPUs.
  * Remove the -accuratedct option from TJBench and TJExample.

- Re-implement the 'tjtest' target using a CMake script that enables
  the appropriate tests, depending on the data precision and whether or
  not the Java API is part of the build.

- Consolidate the C and Java versions of tjbenchtest into one script.

- Consolidate the C and Java versions of tjexampletest into one script.

- Combine all initialization functions into a single function
  (tj3Init()) that accepts an integer parameter specifying the
  subsystems to initialize.

- Enable decompression scaling explicitly, using a new function/method
  (tj3SetScalingFactor()/TJDecompressor.setScalingFactor()), rather
  than implicitly using awkward "desired width"/"desired height"
  parameters.

- Introduce a new macro/constant (TJUNSCALED/TJ.UNSCALED) that maps to
  a scaling factor of 1/1.

- Implement partial image decompression, using a new function/method
  (tj3SetCroppingRegion()/TJDecompressor.setCroppingRegion()) and
  TJBench option (-crop).  Extend tjbenchtest to test the new feature.
  Addresses #1.

- Allow the JPEG colorspace to be specified explicitly when
  compressing, using a new parameter (TJ*PARAM_COLORSPACE).  This
  allows JPEG images with the RGB and CMYK colorspaces to be created.

- Remove the error/difference image feature from TJBench.  Identical
  images to the ones that TJBench created can be generated using
  ImageMagick with
  'magick composite <original_image> <output_image> -compose difference <diff_image>'

- Handle JPEG images with unknown subsampling types.  TJ*PARAM_SUBSAMP
  is set to TJ*SAMP_UNKNOWN (== -1) for such images, but they can still
  be decompressed fully into packed-pixel images or losslessly
  transformed (with the exception of lossless cropping.)  They cannot
  be partially decompressed or decompressed into planar YUV images.
  Note also that TJBench, due to its lack of support for imperfect
  transforms, requires that the subsampling type be known when
  rotating, flipping, or transversely transposing an image.  Addresses
  #436

- The Java version of TJBench now has identical functionality to the C
  version.  This was accomplished by (somewhat hackishly) calling the
  TurboJPEG C image I/O functions through JNI and copying the pixels
  between the C heap and the Java heap.

- Add parameters (TJ*PARAM_RESTARTROWS and TJ*PARAM_RESTARTBLOCKS) and
  a TJBench option (-restart) to allow the restart marker interval to
  be specified when compressing.  Eliminate the undocumented TJ_RESTART
  environment variable.

- Add a parameter (TJ*PARAM_OPTIMIZE), a transform option
  (TJ*OPT_OPTIMIZE), and a TJBench option (-optimize) to allow
  optimized baseline Huffman coding to be specified when compressing.
  Eliminate the undocumented TJ_OPTIMIZE environment variable.

- Add parameters (TJ*PARAM_XDENSITY, TJ*PARAM_DENSITY, and
  TJ*DENSITYUNITS) to allow the pixel density to be specified when
  compressing or saving a Windows BMP image and to be queried when
  decompressing or loading a Windows BMP image.  Addresses #77.

- Refactor the fuzz targets to use the new API.
  * Extend decompression coverage to 12-bit and 16-bit data precision.
  * Replace the awkward cjpeg12 and cjpeg16 targets with proper
    TurboJPEG-based compress12, compress12-lossless, and
    compress16-lossless targets

- Fix innocuous UBSan warnings uncovered by the new fuzzers.

- Implement previous versions of the TurboJPEG API by wrapping the new
  functions (tested by running the 2.1.x versions of TJBench, via
  tjbenchtest, and TJUnitTest against the new implementation.)
  * Remove all JNI functions for deprecated Java methods and implement
    the deprecated methods using pure Java wrappers.  It should be
    understood that backward API compatibility in Java applies only to
    the Java classes and that one cannot mix and match a JAR file from
    one version of libjpeg-turbo with a JNI library from another
    version.

- tj3Destroy() now silently accepts a NULL handle.

- tj3Alloc() and tj3Free() now return/accept void pointers, as malloc()
  and free() do.

- The image I/O functions now accept a TurboJPEG instance handle, which
  is used to transmit/receive parameters and to receive error
  information.

Closes #517
@dcommander
Copy link
Member Author

This is implemented in the TurboJPEG 3 API overhaul (fc01f46), using a new function (tj3SetCroppingRegion()) that enables partial image decompression for subsequent decompression operations. Note that partial image decompression can only be used when decompressing to a packed-pixel image, not when decompressing to a planar YUV image.

GerHobbelt pushed a commit to GerHobbelt/libjpeg-turbo that referenced this issue Jan 26, 2024
GerHobbelt pushed a commit to GerHobbelt/libjpeg-turbo that referenced this issue Mar 21, 2024
Integrate libjpeg-turbo into the RTC 3rd party build system.

Add SIMD support for arm devices on iOS and Android platforms.

Create a new file in simd/arm and simd/arm64 corresponding to 
each existing file, give the new files unique names, and directly 
include each existing file in the matching new file. This circumvents 
limitations in our build system, which doesn't support 
identically-named files located in different directories.

Create a single jconfig.h and jconfigint.h that are
the union of all versions of these files generated
for supported platforms. Files were generated
using the cmake scripts documented in BUILDING.MD.

Config files for Windows platforms differed slightly than those
produced for Unix-y platforms (iOS, MacOS, Linux, Android);
#if(defined _WIN32) blocks were used where necessary
to specify Windows-only settings.

The value of SIZE_OF_SIZE_T differed between 32-bit and 64-bit
build configs; the #ifdef blocks used here to set this value
appropriately are adapted from the libjpeg-turbo config files
located in the skia library.

Signed-off by: Colin Powell <cpowell@esri.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant