- os: linux
compiler: g++
env: OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
+ dist: trusty
addons:
apt:
packages:
- os: linux
compiler: g++
env: OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Debug OPJ_CI_PROFILE=1
+ dist: trusty
addons:
apt:
packages:
- os: linux
compiler: clang-3.8
env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_PERF_TESTS=1 OPJ_CI_BUILD_FUZZERS=1
+ dist: trusty
addons:
apt:
sources:
- os: linux
compiler: x86_64-w64-mingw32-g++
env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=i386 OPJ_CI_BUILD_CONFIGURATION=Release
+ dist: trusty
addons:
apt:
packages:
- os: linux
compiler: x86_64-w64-mingw32-g++
env: OPJ_CI_CC=x86_64-w64-mingw32-gcc OPJ_CI_CXX=x86_64-w64-mingw32-g++ OPJ_CI_ARCH=x86_64 OPJ_CI_BUILD_CONFIGURATION=Release
+ dist: trusty
addons:
apt:
packages:
if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake)
# This is an install tree
include(${SELF_DIR}/OpenJPEGTargets.cmake)
- get_filename_component(OPENJPEG_INCLUDE_ROOT "${SELF_DIR}/../../@OPENJPEG_INSTALL_INCLUDE_DIR@" ABSOLUTE)
- set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG_INCLUDE_ROOT})
+
+ # We find a relative path from the PKG directory to header files.
+ set(PKG_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_PACKAGE_DIR@")
+ set(INC_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_INCLUDE_DIR@")
+ file(RELATIVE_PATH PKG_TO_INC_RPATH "${PKG_DIR}" "${INC_DIR}")
+
+ get_filename_component(OPENJPEG_INCLUDE_DIRS "${SELF_DIR}/${PKG_TO_INC_RPATH}" ABSOLUTE)
else()
if(EXISTS ${SELF_DIR}/OpenJPEGExports.cmake)
return NULL;
}
+ if (header_info.width == 0
+ || header_info.height == 0
+ || (header_info.format == 7 && header_info.depth == 0)) {
+ fclose(fp);
+ return NULL;
+ }
+
/* This limitation could be removed by making sure to use size_t below */
if (header_info.height != 0 &&
header_info.width > INT_MAX / header_info.height) {
for (compno = 0; compno < numcomps; compno++) {
index = 0;
if (fscanf(fp, "%u", &index) != 1) {
- fprintf(stderr,
- "\nWARNING: fscanf return a number of element different from the expected.\n");
+ fprintf(stderr, "Missing data. Quitting.\n");
+ opj_image_destroy(image);
+ fclose(fp);
+ return NULL;
}
image->comps[compno].data[i] = (OPJ_INT32)(index * 255) / header_info.maxval;
for (i = 0; i < w * h; i++) {
for (compno = 0; compno < numcomps; compno++) {
if (!fread(&c0, 1, 1, fp)) {
- fprintf(stderr,
- "\nError: fread return a number of element different from the expected.\n");
+ fprintf(stderr, "Missing data. Quitting.\n");
opj_image_destroy(image);
fclose(fp);
return NULL;
image->comps[compno].data[i] = c0;
} else {
if (!fread(&c1, 1, 1, fp)) {
- fprintf(stderr,
- "\nError: fread return a number of element different from the expected.\n");
+ fprintf(stderr, "Missing data. Quitting.\n");
+ opj_image_destroy(image);
+ fclose(fp);
+ return NULL;
}
/* netpbm: */
image->comps[compno].data[i] = ((c0 << 8) | c1);
unsigned int index;
if (fscanf(fp, "%u", &index) != 1) {
- fprintf(stderr,
- "\nWARNING: fscanf return a number of element different from the expected.\n");
+ fprintf(stderr, "Missing data. Quitting.\n");
+ opj_image_destroy(image);
+ fclose(fp);
+ return NULL;
}
image->comps[0].data[i] = (index ? 0 : 255);
}
} else if (format == 4) {
int x, y, bit;
- unsigned char uc;
+ int uc;
i = 0;
for (y = 0; y < h; ++y) {
for (x = 0; x < w; ++x) {
if (bit == -1) {
bit = 7;
- uc = (unsigned char)getc(fp);
+ uc = getc(fp);
+ if (uc == EOF) {
+ fprintf(stderr, "Missing data. Quitting.\n");
+ opj_image_destroy(image);
+ fclose(fp);
+ return NULL;
+ }
}
- image->comps[0].data[i] = (((uc >> bit) & 1) ? 0 : 255);
+ image->comps[0].data[i] = ((((unsigned char)uc >> bit) & 1) ? 0 : 255);
--bit;
++i;
}
for (i = 0; i < w * h; ++i) {
if (!fread(&uc, 1, 1, fp)) {
- fprintf(stderr,
- "\nError: fread return a number of element different from the expected.\n");
+ fprintf(stderr, "Missing data. Quitting.\n");
+ opj_image_destroy(image);
+ fclose(fp);
+ return NULL;
}
image->comps[0].data[i] = (uc & 1) ? 0 : 255;
}
/* FIXME move it in a index structure included in p_j2k*/
p_j2k->cstr_index->main_head_start = opj_stream_tell(p_stream) - 2;
- opj_event_msg(p_manager, EVT_INFO, "Start to read j2k main header (%d).\n",
+ opj_event_msg(p_manager, EVT_INFO,
+ "Start to read j2k main header (%" PRId64 ").\n",
p_j2k->cstr_index->main_head_start);
/* Add the marker to the codestream index*/
if (!pcol_usage[i]) {
is_sane = 0U;
opj_event_msg(p_manager, EVT_WARNING,
- "Component mapping seems wrong. Trying to correct.\n", i);
+ "Component mapping seems wrong. Trying to correct.\n");
break;
}
}
+++ /dev/null
-NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-15-compare_dec-ref-out2base
-NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-16-compare_dec-ref-out2base
-NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-17-compare_dec-ref-out2base
-NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-18-compare_dec-ref-out2base
-NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-19-compare_dec-ref-out2base
-NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-20-compare_dec-ref-out2base
-NR-ENC-ElephantDream_4K.tif-21-compare_dec-ref-out2base
-NR-ENC-issue141.rawl-23-compare_dec-ref-out2base
+++ /dev/null
-NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-15-compare_dec-ref-out2base
-NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-16-compare_dec-ref-out2base
-NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-17-compare_dec-ref-out2base
-NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-18-compare_dec-ref-out2base
-NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-19-compare_dec-ref-out2base
-NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-20-compare_dec-ref-out2base
-NR-ENC-ElephantDream_4K.tif-21-compare_dec-ref-out2base
-NR-ENC-issue141.rawl-23-compare_dec-ref-out2base
+++ /dev/null
-NR-C1P0-p0_04.j2k-compare2base
-NR-C1P0-p0_05.j2k-compare2base
-NR-C1P0-p0_06.j2k-compare2base
-NR-C1P1-p1_02.j2k-compare2base
-NR-C1P1-p1_03.j2k-compare2base
-NR-C1P1-p1_04.j2k-compare2base
-NR-C1P1-p1_05.j2k-compare2base
-NR-JP2-file2.jp2-compare2base
-NR-JP2-file3.jp2-compare2base
-NR-RIC-subsampling_1.jp2-compare2base
-NR-RIC-subsampling_2.jp2-compare2base
-NR-RIC-zoo1.jp2-compare2base
-NR-RIC-zoo2.jp2-compare2base
-NR-DEC-_00042.j2k-2-decode-md5
-NR-DEC-buxI.j2k-9-decode-md5
-NR-DEC-CT_Phillips_JPEG2K_Decompr_Problem.j2k-13-decode-md5
-NR-DEC-Marrin.jp2-18-decode-md5
-NR-DEC-file409752.jp2-40-decode-md5
-NR-DEC-issue188_beach_64bitsbox.jp2-41-decode-md5
-NR-DEC-issue206_image-000.jp2-42-decode-md5
-NR-DEC-issue205.jp2-43-decode-md5
-NR-DEC-issue228.j2k-60-decode-md5
-NR-DEC-issue134.jp2-67-decode-md5
-NR-DEC-issue208.jp2-69-decode-md5
-NR-DEC-issue211.jp2-70-decode-md5
-NR-DEC-issue414.jp2-110-decode-md5
-NR-DEC-p1_04.j2k-124-decode-md5
-NR-DEC-p1_04.j2k-125-decode-md5
-NR-DEC-p1_04.j2k-126-decode-md5
-NR-DEC-p1_04.j2k-127-decode-md5
-NR-DEC-p1_04.j2k-128-decode-md5
-NR-DEC-p1_04.j2k-129-decode-md5
-NR-DEC-p1_04.j2k-131-decode-md5
-NR-DEC-p1_04.j2k-134-decode-md5
-NR-DEC-p1_04.j2k-138-decode-md5
-NR-DEC-p1_04.j2k-140-decode-md5
-NR-DEC-p0_04.j2k-166-decode-md5
-NR-DEC-p0_04.j2k-168-decode-md5
-NR-DEC-p0_04.j2k-172-decode-md5
-NR-DEC-issue205.jp2-253-decode-md5
-NR-DEC-issue236-ESYCC-CDEF.jp2-254-decode-md5
-NR-DEC-issue559-eci-090-CIELab.jp2-255-decode-md5
-NR-DEC-issue559-eci-091-CIELab.jp2-256-decode-md5
-NR-DEC-kodak_2layers_lrcp.j2c-31-decode-md5
-NR-DEC-kodak_2layers_lrcp.j2c-32-decode-md5
-NR-DEC-issue135.j2k-68-decode-md5
-NR-DEC-db11217111510058.jp2-306-decode-md5
-NR-DEC-tnsot_zero.jp2-307-decode-md5
+++ /dev/null
-NR-C1P0-p0_04.j2k-compare2base
-NR-C1P0-p0_05.j2k-compare2base
-NR-C1P0-p0_06.j2k-compare2base
-NR-C1P1-p1_02.j2k-compare2base
-NR-C1P1-p1_03.j2k-compare2base
-NR-C1P1-p1_04.j2k-compare2base
-NR-C1P1-p1_05.j2k-compare2base
-NR-JP2-file2.jp2-compare2base
-NR-JP2-file3.jp2-compare2base
-NR-RIC-subsampling_1.jp2-compare2base
-NR-RIC-subsampling_2.jp2-compare2base
-NR-RIC-zoo1.jp2-compare2base
-NR-RIC-zoo2.jp2-compare2base
-NR-DEC-_00042.j2k-2-decode-md5
-NR-DEC-buxI.j2k-9-decode-md5
-NR-DEC-CT_Phillips_JPEG2K_Decompr_Problem.j2k-13-decode-md5
-NR-DEC-Marrin.jp2-18-decode-md5
-NR-DEC-file409752.jp2-40-decode-md5
-NR-DEC-issue188_beach_64bitsbox.jp2-41-decode-md5
-NR-DEC-issue206_image-000.jp2-42-decode-md5
-NR-DEC-issue205.jp2-43-decode-md5
-NR-DEC-issue228.j2k-60-decode-md5
-NR-DEC-issue134.jp2-67-decode-md5
-NR-DEC-issue208.jp2-69-decode-md5
-NR-DEC-issue211.jp2-70-decode-md5
-NR-DEC-issue414.jp2-110-decode-md5
-NR-DEC-p1_04.j2k-124-decode-md5
-NR-DEC-p1_04.j2k-125-decode-md5
-NR-DEC-p1_04.j2k-126-decode-md5
-NR-DEC-p1_04.j2k-127-decode-md5
-NR-DEC-p1_04.j2k-128-decode-md5
-NR-DEC-p1_04.j2k-129-decode-md5
-NR-DEC-p1_04.j2k-131-decode-md5
-NR-DEC-p1_04.j2k-134-decode-md5
-NR-DEC-p1_04.j2k-138-decode-md5
-NR-DEC-p1_04.j2k-140-decode-md5
-NR-DEC-p0_04.j2k-166-decode-md5
-NR-DEC-p0_04.j2k-168-decode-md5
-NR-DEC-p0_04.j2k-172-decode-md5
-NR-DEC-issue205.jp2-253-decode-md5
-NR-DEC-issue236-ESYCC-CDEF.jp2-254-decode-md5
-NR-DEC-issue559-eci-090-CIELab.jp2-255-decode-md5
-NR-DEC-issue559-eci-091-CIELab.jp2-256-decode-md5
-NR-DEC-kodak_2layers_lrcp.j2c-31-decode-md5
-NR-DEC-kodak_2layers_lrcp.j2c-32-decode-md5
-NR-DEC-issue135.j2k-68-decode-md5
-NR-DEC-db11217111510058.jp2-306-decode-md5
-NR-DEC-tnsot_zero.jp2-307-decode-md5
NR-DEC-issue135.j2k-68-decode-md5
NR-DEC-db11217111510058.jp2-306-decode-md5
NR-DEC-tnsot_zero.jp2-307-decode-md5
+NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-15-compare_dec-ref-out2base
+NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-16-compare_dec-ref-out2base
+NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-17-compare_dec-ref-out2base
+NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-18-compare_dec-ref-out2base
+NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-19-compare_dec-ref-out2base
+NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-20-compare_dec-ref-out2base
+NR-ENC-ElephantDream_4K.tif-21-compare_dec-ref-out2base
+NR-ENC-issue141.rawl-23-compare_dec-ref-out2base
--- /dev/null
+NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-15-compare_dec-ref-out2base
+NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-16-compare_dec-ref-out2base
+NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-17-compare_dec-ref-out2base
+NR-ENC-X_4_2K_24_185_CBR_WB_000.tif-18-compare_dec-ref-out2base
+NR-ENC-X_5_2K_24_235_CBR_STEM24_000.tif-19-compare_dec-ref-out2base
+NR-ENC-X_6_2K_24_FULL_CBR_CIRCLE_000.tif-20-compare_dec-ref-out2base
+NR-ENC-ElephantDream_4K.tif-21-compare_dec-ref-out2base
+NR-ENC-issue141.rawl-23-compare_dec-ref-out2base