Skip to content

Commit eac260b

Browse files
committed
Upgraded openjpeg to version 2.5.0.
1 parent 991b32a commit eac260b

235 files changed

Lines changed: 12079 additions & 63912 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.travis.yml

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ language: cpp
33
matrix:
44
include:
55
# OSX
6-
- os: osx
7-
compiler: clang
8-
env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1
6+
# OPJ_NONCOMMERCIAL=0 because Kakadu install hangs (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
7+
# - os: osx
8+
# compiler: clang
9+
# env: OPJ_NONCOMMERCIAL=0 OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1
910

1011
# Test code style
1112
- os: linux
@@ -21,10 +22,11 @@ matrix:
2122
- flip
2223

2324
# Performance test with GCC
24-
- os: linux
25-
compiler: g++
26-
dist: precise
27-
env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 OPJ_CI_PERF_TESTS=1
25+
# Disabled because tests fail
26+
# - os: linux
27+
# compiler: g++
28+
# dist: precise
29+
# env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_INCLUDE_IF_DEPLOY=1 OPJ_CI_PERF_TESTS=1
2830

2931
# Test compilation with AVX2
3032
- os: linux
@@ -42,31 +44,34 @@ matrix:
4244
- clang-3.8
4345

4446
# Test multi-threading
45-
- os: linux
46-
compiler: g++
47-
dist: precise
48-
env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_NUM_THREADS=2
47+
# Disabled because tests fail (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
48+
# - os: linux
49+
# compiler: g++
50+
# dist: precise
51+
# env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_NUM_THREADS=2
4952

5053
# Test 32-bit compilation
51-
- os: linux
52-
compiler: g++
53-
env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
54-
dist: trusty
55-
addons:
56-
apt:
57-
packages:
58-
- gcc-multilib
59-
- g++-multilib
54+
# Disabled because tests fail (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
55+
# - os: linux
56+
# compiler: g++
57+
# env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
58+
# dist: trusty
59+
# addons:
60+
# apt:
61+
# packages:
62+
# - gcc-multilib
63+
# - g++-multilib
6064

6165
# Profile code (gcc -pg)
62-
- os: linux
63-
compiler: g++
64-
env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1
65-
dist: trusty
66-
addons:
67-
apt:
68-
packages:
69-
- valgrind
66+
# Disabled because tests fail (cf https://travis-ci.org/github/uclouvain/openjpeg/builds/769447606)
67+
# - os: linux
68+
# compiler: g++
69+
# env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1
70+
# dist: trusty
71+
# addons:
72+
# apt:
73+
# packages:
74+
# - valgrind
7075

7176
# Test under ASAN
7277
# Temporarily disabled since broken. See https://github.com/uclouvain/openjpeg/issues/1091
@@ -121,7 +126,7 @@ matrix:
121126
- os: linux
122127
compiler: g++-4.8
123128
env: OPJ_CI_CC=gcc-4.8 OPJ_CI_CXX=g++-4.8 OPJ_CI_ABI_CHECK=1
124-
dist: precise
129+
dist: xenial
125130
addons:
126131
apt:
127132
sources:

CHANGELOG.md

Lines changed: 206 additions & 0 deletions
Large diffs are not rendered by default.

CMakeLists.txt

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@ endif()
2424
#string(TOLOWER ${OPENJPEG_NAMESPACE} OPENJPEG_LIBRARY_NAME)
2525
set(OPENJPEG_LIBRARY_NAME openjp2)
2626

27-
project(${OPENJPEG_NAMESPACE})
27+
project(${OPENJPEG_NAMESPACE} C)
2828

2929
# Do full dependency headers.
3030
include_regular_expression("^.*$")
3131

3232
#-----------------------------------------------------------------------------
3333
# OPENJPEG version number, useful for packaging and doxygen doc:
3434
set(OPENJPEG_VERSION_MAJOR 2)
35-
set(OPENJPEG_VERSION_MINOR 3)
36-
set(OPENJPEG_VERSION_BUILD 1)
35+
set(OPENJPEG_VERSION_MINOR 5)
36+
set(OPENJPEG_VERSION_BUILD 0)
3737
set(OPENJPEG_VERSION
3838
"${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}")
3939
set(PACKAGE_VERSION
@@ -57,6 +57,8 @@ set(PACKAGE_VERSION
5757
# 2.2.0 | 7
5858
# 2.3.0 | 7
5959
# 2.3.1 | 7
60+
# 2.4.0 | 7
61+
# 2.5.0 | 7
6062
# above is the recommendation by the OPJ team. If you really need to override this default,
6163
# you can specify your own OPENJPEG_SOVERSION at cmake configuration time:
6264
# cmake -DOPENJPEG_SOVERSION:STRING=42 /path/to/openjpeg
@@ -155,14 +157,21 @@ if(NOT OPENJPEG_INSTALL_PACKAGE_DIR)
155157
endif()
156158

157159
if (APPLE)
158-
list(APPEND OPENJPEG_LIBRARY_PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_LIB_DIR}")
160+
if (${CMAKE_VERSION} VERSION_LESS 3.0)
161+
# For cmake >= 3.0, we turn on CMP0042 and
162+
# https://cmake.org/cmake/help/v3.0/policy/CMP0042.html mentions
163+
# "Projects wanting @rpath in a target’s install name may remove any setting of the INSTALL_NAME_DIR and CMAKE_INSTALL_NAME_DIR variables"
164+
list(APPEND OPENJPEG_LIBRARY_PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_LIB_DIR}")
165+
endif()
159166
option(OPJ_USE_DSYMUTIL "Call dsymutil on binaries after build." OFF)
160167
endif()
161168

162169
#-----------------------------------------------------------------------------
163170
# Big endian test:
171+
if (NOT EMSCRIPTEN)
164172
include (${CMAKE_ROOT}/Modules/TestBigEndian.cmake)
165173
TEST_BIG_ENDIAN(OPJ_BIG_ENDIAN)
174+
endif()
166175

167176
#-----------------------------------------------------------------------------
168177
# Setup file for setting custom ctest vars
@@ -256,25 +265,23 @@ if(BUILD_JPIP_SERVER)
256265
endif()
257266
add_subdirectory(src/lib)
258267
option(BUILD_LUTS_GENERATOR "Build utility to generate t1_luts.h" OFF)
268+
if(UNIX)
259269
option(BUILD_UNIT_TESTS "Build unit tests (bench_dwt, test_sparse_array, etc..)" OFF)
270+
endif()
260271

261272
#-----------------------------------------------------------------------------
262273
# Build Applications
263274
option(BUILD_CODEC "Build the CODEC executables" ON)
264-
option(BUILD_MJ2 "Build the MJ2 executables." OFF)
265-
option(BUILD_JPWL "Build the JPWL library and executables" OFF)
266275
option(BUILD_JPIP "Build the JPIP library and executables." OFF)
267276
if(BUILD_JPIP)
268277
option(BUILD_JPIP_SERVER "Build the JPIP server." OFF)
269278
endif()
270279
option(BUILD_VIEWER "Build the OPJViewer executable (C++)" OFF)
271280
option(BUILD_JAVA "Build the openjpeg jar (Java)" OFF)
272-
option(BUILD_JP3D "Build the JP3D comp" OFF)
273281
mark_as_advanced(BUILD_VIEWER)
274282
mark_as_advanced(BUILD_JAVA)
275-
mark_as_advanced(BUILD_JP3D)
276283

277-
if(BUILD_CODEC OR BUILD_MJ2)
284+
if(BUILD_CODEC)
278285
# OFF: It will only build 3rd party libs if they are not found on the system
279286
# ON: 3rd party libs will ALWAYS be build, and used
280287
option(BUILD_THIRDPARTY "Build the thirdparty executables if it is needed" OFF)
@@ -304,7 +311,7 @@ if(BUILD_DOC)
304311
endif()
305312

306313
#-----------------------------------------------------------------------------
307-
# Buld Testing
314+
# Build Testing
308315
option(BUILD_TESTING "Build the tests." OFF)
309316
if(BUILD_TESTING)
310317
if(BUILD_CODEC)
@@ -364,14 +371,6 @@ if(BUILD_PKGCONFIG_FILES)
364371
${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc @ONLY)
365372
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc DESTINATION
366373
${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
367-
#
368-
if(BUILD_JPWL)
369-
# install in lib and not share (see multi-arch note above)
370-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjpwl/libopenjpwl.pc.cmake.in
371-
${CMAKE_CURRENT_BINARY_DIR}/libopenjpwl.pc @ONLY)
372-
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpwl.pc DESTINATION
373-
${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
374-
endif()
375374
#
376375
if(BUILD_JPIP)
377376
# install in lib and not share (see multi-arch note above)
@@ -380,14 +379,6 @@ if(BUILD_PKGCONFIG_FILES)
380379
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpip.pc DESTINATION
381380
${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
382381
endif()
383-
#
384-
if(BUILD_JP3D)
385-
# install in lib and not share (see multi-arch note above)
386-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp3d/libopenjp3d.pc.cmake.in
387-
${CMAKE_CURRENT_BINARY_DIR}/libopenjp3d.pc @ONLY)
388-
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjp3d.pc DESTINATION
389-
${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
390-
endif()
391382
endif()
392383

393384
#-----------------------------------------------------------------------------

HOWTO-RELEASE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Check-list OpenJPEG Release
2+
3+
* update MAJOR, MINOR, BUILD, SOVERSION in CMakeLists.txt
4+
* update MAJOR, MINOR, BUILD in appveyor.yml
5+
* update CHANGELOG with
6+
`github_changelog_generator --token TOKEN_HERE --exclude-labels gcode_fixed,OpjVersion-1.x --release-url "https://github.com/uclouvain/openjpeg/releases/%s" --since-tag v2.3.1 --future-release v2.4.0 --output append2changelog.md --user uclouvain --project openjpeg --exclude-tags version.1.0` . TOKEN_HERE is created at https://github.com/settings/tokens
7+
* update NEWS.md
8+
* git tag -a v2.4.0 -m "OpenJPEG v2.4.0 release"
9+
* git push origin --tags
10+
* add post to OpenJPEG website in gh-pages branch in _posts/ subdirectory. See commit https://github.com/uclouvain/openjpeg/commit/6563d704f5fb896209dd862ccfc6b97eb9183c5c
11+
* change binversion of openjpeg website in _config.yml in gh-pages branch
12+
* update release description if needed
13+
* update openjpeg.json with latest release
14+
* update OPJ_LATEST_VERSION in abi-check.sh, uncomment and update OPJ_PREVIOUS_VERSION in abi-check.sh, and push
15+
* comment back OPJ_PREVIOUS_VERSION and push
16+
* build doc and update Doxygen on website
17+
* manual build on Windows:
18+
- cmake .. -G "Visual Studio 15 2017" -A x64 -DCMAKE_CONFIGURATION_TYPES=Release -DBUILD_THIRDPARTY=ON -D CPACK_GENERATOR:STRING=ZIP -D CPACK_PACKAGE_FILE_NAME:STRING=openjpeg-v2.4.0-windows-x64
19+
- cmake --build . --target package --config Release
20+
* send email to ML opj, comp.compression, iiif
21+
* tweet

ImageMagick/ImageMagick.version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#define DELEGATE_VERSION_NUM 2,3,1
2-
#define DELEGATE_VERSION_STRING "2.3.1 (2019-02-26)"
1+
#define DELEGATE_VERSION_NUM 2,5,0
2+
#define DELEGATE_VERSION_STRING "2.5.0 (2022-05-13)"

NEWS.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,25 @@
22

33
More details in the [CHANGELOG](https://github.com/uclouvain/openjpeg/blob/master/CHANGELOG.md)
44

5+
## OpenJPEG 2.5.0 (May 2022)
6+
7+
No API/ABI break compared to v2.4.0, but additional symbols for subset of components decoding (hence the MINOR version bump).
8+
9+
* Encoder: add support for generation of TLM markers [\#1359](https://github.com/uclouvain/openjpeg/pull/1359)
10+
* Decoder: add support for high throughput \(HTJ2K\) decoding. [\#1381](https://github.com/uclouvain/openjpeg/pull/1381)
11+
* Decoder: add support for partial bitstream decoding [\#1407](https://github.com/uclouvain/openjpeg/pull/1407)
12+
* Bug fixes (including security fixes)
13+
14+
## OpenJPEG 2.4.0 (December 2020)
15+
16+
No API/ABI break compared to v2.3.1, but additional symbols for subset of components decoding (hence the MINOR version bump).
17+
18+
* Encoder: add support for multithreading [\#1248](https://github.com/uclouvain/openjpeg/pull/1248)
19+
* Encoder: add support for generation of PLT markers [\#1246](https://github.com/uclouvain/openjpeg/pull/1246)
20+
* Encoder: single-threaded performance improvements in forward DWT for 5-3 and 9-7 (and other improvements) [\#1253](https://github.com/uclouvain/openjpeg/pull/1253)
21+
* Encoder: support IMF profiles [\#1235](https://github.com/uclouvain/openjpeg/pull/1235)
22+
* Many bug fixes (including security fixes)
23+
524
## OpenJPEG 2.3.1 (April 2019)
625

726
No API/ABI break compared to v2.3.0

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,12 @@ The library is developed and maintained by the Image and Signal Processing Group
2929
* src
3030
* lib
3131
* openjp2: contains the sources of the openjp2 library (Part 1 & 2)
32-
* openjpwl: contains the additional sources if you want to build a JPWL-flavoured library.
3332
* openjpip: complete client-server architecture for remote browsing of jpeg 2000 images.
34-
* openjp3d: JP3D implementation
35-
* openmj2: MJ2 implementation
3633
* bin: contains all applications that use the openjpeg library
3734
* common: common files to all applications
3835
* jp2: a basic codec
39-
* mj2: motion jpeg 2000 executables
4036
* jpip: OpenJPIP applications (server and dec server)
4137
* java: a Java client viewer for JPIP
42-
* jp3d: JP3D applications
43-
* tcltk: a test tool for JP3D
4438
* wx
4539
* OPJViewer: gui for displaying j2k files (based on wxWidget)
4640
* wrapping
@@ -57,6 +51,12 @@ See [INSTALL](https://github.com/uclouvain/openjpeg/blob/master/INSTALL.md) for
5751

5852
See [NEWS](https://github.com/uclouvain/openjpeg/blob/master/NEWS.md) for user visible changes in successive releases.
5953

54+
## Deprecated components
55+
56+
The openjpwl, openjp3d and openmj2 components have been removed after the
57+
2.4.0 release. Their building and working state is unknown. People interested
58+
in them should start from the 2.4.0 tag.
59+
6060
## API/ABI
6161

6262
An API/ABI timeline is automatically updated [here][link-api-timeline].
@@ -74,8 +74,8 @@ API available is the one supported by OpenJPEG.
7474
[comment-license]: https://img.shields.io/github/license/uclouvain/openjpeg.svg "https://img.shields.io/badge/license-BSD--2--Clause-blue.svg"
7575
[badge-license]: https://img.shields.io/badge/license-BSD--2--Clause-blue.svg "BSD 2-clause \"Simplified\" License"
7676
[link-license]: https://github.com/uclouvain/openjpeg/blob/master/LICENSE "BSD 2-clause \"Simplified\" License"
77-
[badge-build]: https://travis-ci.org/uclouvain/openjpeg.svg?branch=master "Build Status"
78-
[link-build]: https://travis-ci.org/uclouvain/openjpeg "Build Status"
77+
[badge-build]: https://github.com/uclouvain/openjpeg/actions/workflows/build.yml/badge.svg "Build Status"
78+
[link-build]: https://github.com/uclouvain/openjpeg/actions/workflows/build.yml "Build Status"
7979
[badge-msvc-build]: https://ci.appveyor.com/api/projects/status/github/uclouvain/openjpeg?branch=master&svg=true "Windows Build Status"
8080
[link-msvc-build]: https://ci.appveyor.com/project/detonin/openjpeg/branch/master "Windows Build Status"
8181
[badge-coverity]: https://scan.coverity.com/projects/6383/badge.svg "Coverity Scan Build Status"

appveyor.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 2.3.1.{build}
1+
version: 2.5.0.{build}
22
branches:
33
except:
44
- coverity_scan
@@ -27,15 +27,15 @@ build_script:
2727
test: off
2828
#before_deploy:
2929
#- cmd: c:\cygwin\bin\bash ./tools/travis-ci/before_deploy.sh
30-
deploy:
31-
#release: openjpeg-$(appveyor_repo_tag_name)
32-
description: 'OpenJPEG $(appveyor_repo_tag_name) has been released. More info [here](https://github.com/uclouvain/openjpeg/blob/$(appveyor_repo_tag_name)/NEWS) and a detailed view [here](https://github.com/uclouvain/openjpeg/blob/$(appveyor_repo_tag_name)/CHANGES).'
33-
provider: GitHub
34-
auth_token:
35-
secure: XUL+IoRRw8U/4tupa/fMpinxurft7WRQHZiWHMLO5iuFbwZ+C3vCjVVVM+5Ebky7 # your encrypted token from GitHub
36-
artifact: /.*\.zip/ # upload all zip packages to release assets
37-
draft: true
38-
prerelease: false
39-
on:
40-
appveyor_repo_tag: true # deploy on tag push only
41-
OPJ_CI_INCLUDE_IF_DEPLOY: 1
30+
#deploy:
31+
# #release: openjpeg-$(appveyor_repo_tag_name)
32+
# description: 'OpenJPEG $(appveyor_repo_tag_name) has been released. More info [here](https://github.com/uclouvain/openjpeg/blob/$(appveyor_repo_tag_name)/NEWS) and a detailed view [here](https://github.com/uclouvain/openjpeg/blob/$(appveyor_repo_tag_name)/CHANGES).'
33+
# provider: GitHub
34+
# auth_token:
35+
# secure: XUL+IoRRw8U/4tupa/fMpinxurft7WRQHZiWHMLO5iuFbwZ+C3vCjVVVM+5Ebky7 # your encrypted token from GitHub
36+
# artifact: /.*\.zip/ # upload all zip packages to release assets
37+
# draft: true
38+
# prerelease: false
39+
# on:
40+
# appveyor_repo_tag: true # deploy on tag push only
41+
# OPJ_CI_INCLUDE_IF_DEPLOY: 1

cmake/OpenJPEGConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake)
3232
set(INC_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_INCLUDE_DIR@")
3333
file(RELATIVE_PATH PKG_TO_INC_RPATH "${PKG_DIR}" "${INC_DIR}")
3434

35-
get_filename_component(OPENJPEG_INCLUDE_DIRS "${SELF_DIR}/${PKG_TO_INC_RPATH}" ABSOLUTE)
35+
get_filename_component(OPENJPEG_INCLUDE_DIRS "${SELF_DIR}/${PKG_TO_INC_RPATH}" REALPATH)
3636

3737
else()
3838
if(EXISTS ${SELF_DIR}/OpenJPEGExports.cmake)

doc/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ if(DOXYGEN_FOUND)
4444

4545
# install HTML documentation (install png files too):
4646
install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/html
47-
DESTINATION share/doc
47+
DESTINATION ${OPENJPEG_INSTALL_DOC_DIR}
4848
PATTERN ".svn" EXCLUDE
4949
)
5050
else()

0 commit comments

Comments
 (0)