From 2b06a50140b7eb81eb55dcc1547fee4e8842e697 Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Fri, 14 Sep 2018 00:46:28 +0800 Subject: Update to OpenJPEG 2.3.0. There is a regression for 2325_-_JPX_image_with_padding_rejected.pdf. Object 3 in that document is a JPX-encoded image. Its EOC marker is preceded by two extra bytes of data, 0x80 0x80. This makes the file broken according to the JPEG 2000 specification. Acrobat Reader and the Kakadu JPX decoder accepts this file without issues, so OpenJPEG 2.1.0 added code to fix this (bug 226, commit 005e75bdc). That fix detects exactly two bytes of 0x80 0x80, a rather brittle fix. Adding more padding or changing the padding byte values is not accepted. Adding more padding is acceptable to Acrobat Reader and Kakadu. An unrelated fix for another problem has since broken OpenJPEG's support for this broken image. --- Makethird | 3 ++- platform/win32/libthirdparty.vcproj | 4 ++-- source/fitz/load-jpx.c | 16 +++++++++++++--- thirdparty/openjpeg | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Makethird b/Makethird index 044a21e6..76151f71 100644 --- a/Makethird +++ b/Makethird @@ -307,6 +307,7 @@ else OPENJPEG_CFLAGS += -Ithirdparty/openjpeg/src/lib/openjp2 OPENJPEG_CFLAGS += -DOPJ_STATIC OPENJPEG_CFLAGS += -DOPJ_HAVE_STDINT_H -DOPJ_HAVE_INTTYPES_H +OPENJPEG_CFLAGS += -DMUTEX_pthread=0 THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/bio.c THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/cio.c @@ -321,7 +322,7 @@ THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/mct.c THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/mqc.c THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/openjpeg.c THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/pi.c -THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/raw.c +THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/sparse_array.c THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/t1.c THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/t2.c THIRD_SRC += thirdparty/openjpeg/src/lib/openjp2/tcd.c diff --git a/platform/win32/libthirdparty.vcproj b/platform/win32/libthirdparty.vcproj index cffc0ca1..fb3468ac 100644 --- a/platform/win32/libthirdparty.vcproj +++ b/platform/win32/libthirdparty.vcproj @@ -1016,11 +1016,11 @@ >