Skip to content
Snippets Groups Projects
Commit 16b2d242 authored by Julien Michel's avatar Julien Michel
Browse files

intégration openjpeg

parent 7a3ee671
No related branches found
No related tags found
No related merge requests found
......@@ -149,6 +149,14 @@ ADD_TEST(utOssimRadarSatSupport ${UTILITIES_TESTS}
${IMAGEDATA}/RADARSAT2/SCENE01/DAT_01.001
)
# ------- lib OpenJpeg ------------------------------
ADD_TEST(utOpenJpegEncoder ${UTILITIES_TESTS}
openJpegEncoder)
ADD_TEST(utOpenJpegDecoder ${UTILITIES_TESTS}
openJpegDecoder)
# ------- Fichiers sources CXX -----------------------------------
SET(UtilitiesTests_SRCS
ossimIntegrationTest.cxx
......@@ -163,12 +171,14 @@ tinyXMLlibTest.cxx
svmGenericKernelBasicOperationsTest.cxx
otbSVMComposedKernelFunctorTest.cxx
ossimRadarSatSupport.cxx
openJpegEncoder.cxx
openJpegDecoder.cxx
)
INCLUDE_DIRECTORIES("${OTBTesting_BINARY_DIR}")
ADD_EXECUTABLE(otbUtilitiesTests otbUtilitiesTests.cxx ${UtilitiesTests_SRCS})
TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon gdal ITKIO ITKAlgorithms ITKStatistics ITKCommon otbossim otbsvm otb6S tinyXML)
TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon gdal ITKIO ITKAlgorithms ITKStatistics ITKCommon otbossim otbsvm otb6S tinyXML openjpeg)
IF(UNIX)
TARGET_LINK_LIBRARIES (otbUtilitiesTests m)
ENDIF(UNIX)
......
/*
* Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#define USE_OPJ_DEPRECATED
/* set this macro to enable profiling for the given test */
/* warning : in order to be effective, openjpeg must have been built with profiling enabled !! */
//#define _PROFILE
#include "openjpeg.h"
#include "profile.h"
#include <malloc.h>
#define DA_X0 0
#define DA_Y0 0
#define DA_X1 1000
#define DA_Y1 1000
#define INPUT_FILE "test.j2k"
/* -------------------------------------------------------------------------- */
/**
sample error debug callback expecting no client object
*/
void error_callback(const char *msg, void *client_data);
/**
sample warning debug callback expecting no client object
*/
void warning_callback(const char *msg, void *client_data);
/**
sample debug callback expecting no client object
*/
void info_callback(const char *msg, void *client_data);
/* -------------------------------------------------------------------------- */
int openJpegDecoder(int argc, char * argv[])
{
opj_dparameters_t l_param;
opj_codec_t * l_codec;
opj_image_t * l_image;
FILE * l_file;
opj_stream_t * l_stream;
OPJ_UINT32 l_data_size;
OPJ_UINT32 l_max_data_size = 1000;
OPJ_UINT32 l_tile_index;
OPJ_BYTE * l_data = (OPJ_BYTE *) malloc(1000);
bool l_go_on = true;
OPJ_INT32 l_tile_x0,l_tile_y0;
OPJ_UINT32 l_tile_width,l_tile_height,l_nb_tiles_x,l_nb_tiles_y,l_nb_comps;
OPJ_INT32 l_current_tile_x0,l_current_tile_y0,l_current_tile_x1,l_current_tile_y1;
PROFINIT();
if
(! l_data)
{
return 1;
}
opj_set_default_decoder_parameters(&l_param);
/** you may here add custom decoding parameters */
/* do not use layer decoding limitations */
l_param.cp_layer = 0;
/* do not use resolutions reductions */
l_param.cp_reduce = 0;
/* to decode only a part of the image data */
//opj_restrict_decoding(&l_param,0,0,1000,1000);
l_codec = opj_create_decompress(CODEC_J2K);
if
(! l_codec)
{
free(l_data);
return 1;
}
/* catch events using our callbacks and give a local context */
opj_set_info_handler(l_codec, info_callback,00);
opj_set_warning_handler(l_codec, warning_callback,00);
opj_set_error_handler(l_codec, error_callback,00);
if
(! opj_setup_decoder(l_codec,&l_param))
{
free(l_data);
opj_destroy_codec(l_codec);
return 1;
}
l_file = fopen(INPUT_FILE,"rb");
if
(! l_file)
{
fprintf(stdout, "Error opening input file\n");
free(l_data);
opj_destroy_codec(l_codec);
return 1;
}
l_stream = opj_stream_create_default_file_stream(l_file,true);
if
(! opj_read_header(l_codec,
&l_image,
&l_tile_x0,
&l_tile_y0,
&l_tile_width,
&l_tile_height,
&l_nb_tiles_x,
&l_nb_tiles_y,
l_stream))
{
free(l_data);
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
return 1;
}
printf("Setting decoding area to %d,%d,%d,%d\n", DA_X0, DA_Y0, DA_X1, DA_Y1);
opj_set_decode_area(l_codec, DA_X0, DA_Y0, DA_X1, DA_Y1);
while
(l_go_on)
{
if
(! opj_read_tile_header(
l_codec,
&l_tile_index,
&l_data_size,
&l_current_tile_x0,
&l_current_tile_y0,
&l_current_tile_x1,
&l_current_tile_y1,
&l_nb_comps,
&l_go_on,
l_stream))
{
free(l_data);
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
if
(l_go_on)
{
if
(l_data_size > l_max_data_size)
{
l_data = (OPJ_BYTE *) realloc(l_data,l_data_size);
if
(! l_data)
{
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
l_max_data_size = l_data_size;
}
if
(! opj_decode_tile_data(l_codec,l_tile_index,l_data,l_data_size,l_stream))
{
free(l_data);
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
/** now should inspect image to know the reduction factor and then how to behave with data */
}
}
if
(! opj_end_decompress(l_codec,l_stream))
{
free(l_data);
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
free(l_data);
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
// Print profiling
PROFPRINT();
return 0;
}
/*
* Copyright (c) 2008, Jerome Fimes, Communications & Systemes <jerome.fimes@c-s.fr>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#define USE_OPJ_DEPRECATED
#include "openjpeg.h"
#include "profile.h"
#include <stdlib.h>
#ifdef WIN32
#include <windows.h>
#endif
#define NUM_COMPS 3
#define IMAGE_WIDTH 2000
#define IMAGE_HEIGHT 2000
#define TILE_WIDTH 1000
#define TILE_HEIGHT 1000
#define COMP_PREC 8
#define OUTPUT_FILE "test.j2k"
/* -------------------------------------------------------------------------- */
/**
sample error callback expecting a FILE* client object
*/
void error_callback_file(const char *msg, void *client_data) {
FILE *stream = (FILE*)client_data;
fprintf(stream, "[ERROR] %s", msg);
}
/**
sample warning callback expecting a FILE* client object
*/
void warning_callback_file(const char *msg, void *client_data) {
FILE *stream = (FILE*)client_data;
fprintf(stream, "[WARNING] %s", msg);
}
/**
sample error debug callback expecting no client object
*/
void error_callback(const char *msg, void *client_data) {
(void)client_data;
fprintf(stdout, "[ERROR] %s", msg);
}
/**
sample warning debug callback expecting no client object
*/
void warning_callback(const char *msg, void *client_data) {
(void)client_data;
fprintf(stdout, "[WARNING] %s", msg);
}
/**
sample debug callback expecting no client object
*/
void info_callback(const char *msg, void *client_data) {
(void)client_data;
fprintf(stdout, "[INFO] %s", msg);
}
/* -------------------------------------------------------------------------- */
int openJpegEncoder(int argc, char * argv[])
{
opj_cparameters_t l_param;
opj_codec_t * l_codec;
opj_image_t * l_image;
opj_image_cmptparm_t l_params [NUM_COMPS];
FILE * l_file;
opj_stream_t * l_stream;
OPJ_UINT32 l_nb_tiles = (IMAGE_WIDTH/TILE_WIDTH) * (IMAGE_HEIGHT/TILE_HEIGHT);
OPJ_UINT32 l_data_size = TILE_WIDTH * TILE_HEIGHT * NUM_COMPS * (COMP_PREC/8);
const OPJ_FLOAT32 l_mct [] =
{
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
};
const OPJ_INT32 l_offsets [] =
{
128 , 128 , 128
};
opj_image_cmptparm_t * l_current_param_ptr;
OPJ_UINT32 i;
OPJ_BYTE *l_data;
PROFINIT();
l_data =(OPJ_BYTE*) malloc( TILE_WIDTH * TILE_HEIGHT * NUM_COMPS * (COMP_PREC/8) *sizeof(OPJ_BYTE));
fprintf(stdout, "Encoding random values -> keep in mind that this is very hard to compress\n");
for
(i=0;i<l_data_size;++i)
{
l_data[i] = rand();
}
opj_set_default_encoder_parameters(&l_param);
/** you may here add custom encoding parameters */
/* rate specifications */
/** number of quality layers in the stream */
l_param.tcp_numlayers = 1;
l_param.cp_fixed_quality = 1;
l_param.tcp_distoratio[0] = 20;
/* is using others way of calculation */
/* l_param.cp_disto_alloc = 1 or l_param.cp_fixed_alloc = 1 */
/* l_param.tcp_rates[0] = ... */
/* tile definitions parameters */
/* position of the tile grid aligned with the image */
l_param.cp_tx0 = 0;
l_param.cp_ty0 = 0;
/* tile size, we are using tile based encoding */
l_param.tile_size_on = true;
l_param.cp_tdx = TILE_WIDTH;
l_param.cp_tdy = TILE_HEIGHT;
/* use irreversible encoding ?*/
l_param.irreversible = 1;
/* do not bother with mct, the rsiz is set when calling opj_set_MCT*/
/*l_param.cp_rsiz = STD_RSIZ;*/
/* no cinema */
/*l_param.cp_cinema = 0;*/
/* no not bother using SOP or EPH markers, do not use custom size precinct */
/* number of precincts to specify */
/* l_param.csty = 0;*/
/* l_param.res_spec = ... */
/* l_param.prch_init[i] = .. */
/* l_param.prcw_init[i] = .. */
/* do not use progression order changes */
/*l_param.numpocs = 0;*/
/* l_param.POC[i].... */
/* do not restrain the size for a component.*/
/* l_param.max_comp_size = 0; */
/** block encoding style for each component, do not use at the moment */
/** J2K_CCP_CBLKSTY_TERMALL, J2K_CCP_CBLKSTY_LAZY, J2K_CCP_CBLKSTY_VSC, J2K_CCP_CBLKSTY_SEGSYM, J2K_CCP_CBLKSTY_RESET */
/* l_param.mode = 0;*/
/** number of resolutions */
l_param.numresolution = 6;
/** progression order to use*/
/** LRCP, RLCP, RPCL, PCRL, CPRL */
l_param.prog_order = LRCP;
/** no "region" of interest, more precisally component */
/* l_param.roi_compno = -1; */
/* l_param.roi_shift = 0; */
/* we are not using multiple tile parts for a tile. */
/* l_param.tp_on = 0; */
/* l_param.tp_flag = 0; */
/* if we are using mct */
/* opj_set_MCT(&l_param,l_mct,l_offsets,NUM_COMPS); */
/* image definition */
l_current_param_ptr = l_params;
for
(i=0;i<NUM_COMPS;++i)
{
/* do not bother bpp useless */
/*l_current_param_ptr->bpp = COMP_PREC;*/
l_current_param_ptr->dx = 1;
l_current_param_ptr->dy = 1;
l_current_param_ptr->h = IMAGE_HEIGHT;
l_current_param_ptr->sgnd = 0;
l_current_param_ptr->prec = COMP_PREC;
l_current_param_ptr->w = IMAGE_WIDTH;
l_current_param_ptr->x0 = 0;
l_current_param_ptr->y0 = 0;
++l_current_param_ptr;
}
l_codec = opj_create_compress(CODEC_J2K);
if
(! l_codec)
{
return 1;
}
/* catch events using our callbacks and give a local context */
opj_set_info_handler(l_codec, info_callback,00);
opj_set_warning_handler(l_codec, warning_callback,00);
opj_set_error_handler(l_codec, error_callback,00);
l_image = opj_image_tile_create(NUM_COMPS,l_params,CLRSPC_SRGB);
if
(! l_image)
{
opj_destroy_codec(l_codec);
return 1;
}
l_image->x0 = 0;
l_image->y0 = 0;
l_image->x1 = IMAGE_WIDTH;
l_image->y1 = IMAGE_HEIGHT;
l_image->color_space = CLRSPC_SRGB;
if
(! opj_setup_encoder(l_codec,&l_param,l_image))
{
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
l_file = fopen(OUTPUT_FILE,"wb");
if
(! l_file)
{
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
l_stream = opj_stream_create_default_file_stream(l_file,false);
if
(! opj_start_compress(l_codec,l_image,l_stream))
{
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
for
(i=0;i<l_nb_tiles;++i)
{
if
(! opj_write_tile(l_codec,i,l_data,l_data_size,l_stream))
{
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
}
if
(! opj_end_compress(l_codec,l_stream))
{
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
return 1;
}
opj_stream_destroy(l_stream);
fclose(l_file);
opj_destroy_codec(l_codec);
opj_image_destroy(l_image);
// Print profiling
PROFPRINT();
return 0;
}
......@@ -38,4 +38,6 @@ REGISTER_TEST(tinyXMLlibTest);
REGISTER_TEST(svmGenericKernelBasicOperationsTest);
REGISTER_TEST(otbSVMComposedKernelFunctorTest);
REGISTER_TEST(ossimRadarSatSupport);
REGISTER_TEST(openJpegEncoder);
REGISTER_TEST(openJpegDecoder);
}
......@@ -8,7 +8,8 @@ IF(NOT OTB_USE_EXTERNAL_FLTK)
SUBDIRS( FLTK )
ENDIF(NOT OTB_USE_EXTERNAL_FLTK)
SUBDIRS(BGL otbsvm dxflib InsightJournal otbossim otb6S otbgeotiff tinyXMLlib)
SUBDIRS(BGL otbsvm dxflib InsightJournal otbossim otb6S otbgeotiff tinyXMLlib
otbopenjpeg)
IF(BUILD_TESTING)
SUBDIRS( Dart )
......
# Main CMakeLists.txt to build the OpenJPEG project using CMake (www.cmake.org)
# Written by Mathieu Malaterre
# This CMake project will by default create a library called openjpeg
# But if you want to use this project within your own (CMake) project
# you will eventually like to prefix the library to avoid linking confusion
# For this purpose you can define a CMake var: OPENJPEG_NAMESPACE to whatever you like
# e.g.:
# SET(OPENJPEG_NAMESPACE "GDCMOPENJPEG")
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
IF(NOT OPENJPEG_NAMESPACE)
SET(OPENJPEG_NAMESPACE "OPENJPEG")
SET(OPENJPEG_STANDALONE 1)
ENDIF(NOT OPENJPEG_NAMESPACE)
# In all cases:
STRING(TOLOWER ${OPENJPEG_NAMESPACE} OPENJPEG_LIBRARY_NAME)
PROJECT(${OPENJPEG_NAMESPACE} C)
# Do full dependency headers.
INCLUDE_REGULAR_EXPRESSION("^.*$")
#-----------------------------------------------------------------------------
# OPENJPEG version number, useful for packaging and doxygen doc:
SET(OPENJPEG_VERSION_MAJOR 1)
SET(OPENJPEG_VERSION_MINOR 2)
SET(OPENJPEG_VERSION_BUILD 0)
SET(OPENJPEG_VERSION
"${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}")
# This setting of SOVERSION assumes that any API change
# will increment either the minor or major version number of openjpeg
SET(OPENJPEG_LIBRARY_PROPERTIES
VERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}"
SOVERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}"
)
#-----------------------------------------------------------------------------
# Test for some required system information.
INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)
#-----------------------------------------------------------------------------
# OpenJPEG build configuration options.
OPTION(BUILD_SHARED_LIBS "Build OpenJPEG with shared libraries." OFF)
OPTION(ENABLE_PROFILING "Enable profiling for the library" OFF)
#-----------------------------------------------------------------------------
SET (EXECUTABLE_OUTPUT_PATH ${OPENJPEG_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables.")
SET (LIBRARY_OUTPUT_PATH ${OPENJPEG_BINARY_DIR}/bin CACHE PATH "Single output directory for building all libraries.")
MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
#-----------------------------------------------------------------------------
# For the codec...
OPTION(BUILD_EXAMPLES "Build the Examples (codec...)." OFF)
# configure name mangling to allow multiple libraries to coexist
# peacefully
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
SET(MANGLE_PREFIX ${OPENJPEG_LIBRARY_NAME})
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in
${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h
@ONLY IMMEDIATE)
ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
#-----------------------------------------------------------------------------
# Configure files with settings for use by the build.
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/opj_configure.h.in
${CMAKE_CURRENT_BINARY_DIR}/opj_configure.h)
#-----------------------------------------------------------------------------
# Always build the library
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
SUBDIRS(
libopenjpeg
codec
# mj2
# cmake 2.4.5 has poor java support
#j2kviewer/src
)
#IF(NOT UNIX)
#SUBDIRS(
# jpwl
# jp3d
# indexer_JPIP
# )
#ENDIF(NOT UNIX)
#-----------------------------------------------------------------------------
# Build example only if requested
#IF(BUILD_EXAMPLES)
# SUBDIRS(codec)
#ENDIF(BUILD_EXAMPLES)
#-----------------------------------------------------------------------------
# For the documentation
OPTION(BUILD_DOCUMENTATION "Build the doxygen documentation" OFF)
IF(BUILD_DOCUMENTATION)
SUBDIRS(doc)
ENDIF(BUILD_DOCUMENTATION)
#-----------------------------------------------------------------------------
# For openjpeg team if they ever want Dart+CMake
#IF(OPENJPEG_STANDALONE)
# INCLUDE(Dart)
# MARK_AS_ADVANCED(BUILD_TESTING DART_ROOT TCL_TCLSH)
# IF(BUILD_TESTING)
# ENABLE_TESTING()
# SET(BUILDNAME "OpenJPEG-${CMAKE_SYSTEM}-${CMAKE_C_COMPILER}" CACHE STRING "Name of build on the dashboard")
# MARK_AS_ADVANCED(BUILDNAME)
# ENDIF(BUILD_TESTING)
#ENDIF(OPENJPEG_STANDALONE)
# Adding test with dataset from:
# http://www.crc.ricoh.com/~gormish/jpeg2000conformance/
# http://www.jpeg.org/jpeg2000guide/testimages/testimages.html
#-----------------------------------------------------------------------------
# Adding JPEG2000_CONFORMANCE_DATA_ROOT
FIND_PATH(JPEG2000_CONFORMANCE_DATA_ROOT testimages.html
${OPENJPEG_SOURCE_DIR}/../jpeg2000testimages
$ENV{JPEG2000_CONFORMANCE_DATA_ROOT}
)
#-----------------------------------------------------------------------------
# Compiler specific flags:
IF(CMAKE_COMPILER_IS_GNUCC)
# For all builds, make sure openjpeg is std99 compliant:
SET(CMAKE_C_FLAGS "-Wall -std=c99 ${CMAKE_C_FLAGS}")
# Do not use ffast-math for all build, it would produce incorrect results, only set for release:
SET(CMAKE_C_FLAGS_RELEASE "-ffast-math ${CMAKE_C_FLAGS_RELEASE}")
ENDIF(CMAKE_COMPILER_IS_GNUCC)
/*
* here is where system comupted values get stored these values should only
* change when the target compile platform changes
*/
/* what byte order */
#ifndef __OPJ_CONFIGURE_H
#define __OPJ_CONFIGURE_H
#cmakedefine CMAKE_WORDS_BIGENDIAN
#ifdef CMAKE_WORDS_BIGENDIAN
#define OPJ_BIG_ENDIAN
#else
#define OPJ_LITTLE_ENDIAN
#endif
#endif /* __OPJ_CONFIGURE_H */
......@@ -36,6 +36,8 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
${OTB_SOURCE_DIR}/Utilities/otbgeotiff
${OTB_SOURCE_DIR}/Utilities/otbgeotiff/libxtiff
${OTB_SOURCE_DIR}/Utilities/tinyXMLlib
${OTB_SOURCE_DIR}/Utilities/otbopenjpeg/libopenjpeg
)
#-----------------------------------------------------------------------------
......@@ -162,6 +164,7 @@ SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbgeotiff
${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbgeotiff/libxtiff
${OTB_INSTALL_INCLUDE_DIR}/Utilities/tinyXMLlib
${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbopenjpeg/libopenjpeg
)
SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment