From d84b16caf98efb94cf85247f78ed91350d6e1e69 Mon Sep 17 00:00:00 2001 From: Mathieu Malaterre Date: Fri, 28 Sep 2012 09:52:57 +0000 Subject: [PATCH] [trunk] FolderReorgProposal task: rename MJ2/JPIP CLI tools Update issue 177 --- src/bin/jpip/CMakeLists.txt | 88 ++++++++++--------- src/bin/jpip/jpip_to_j2k.c | 2 +- src/bin/jpip/jpip_to_jp2.c | 2 +- .../jpip/{addXMLinJP2.c => opj_jpip_addxml.c} | 0 .../jpip/{test_index.c => opj_jpip_test.c} | 0 src/bin/jpip/opj_jpip_transcode.c | 49 +++++++++++ src/bin/mj2/CMakeLists.txt | 61 ++++--------- .../{frames_to_mj2.c => opj_mj2_compress.c} | 2 + .../{mj2_to_frames.c => opj_mj2_decompress.c} | 2 + ...tract_j2k_from_mj2.c => opj_mj2_extract.c} | 0 .../mj2/{wrap_j2k_in_mj2.c => opj_mj2_wrap.c} | 2 + src/lib/openmj2/CMakeLists.txt | 1 + src/{bin/mj2 => lib/openmj2}/mj2_convert.c | 0 src/{bin/mj2 => lib/openmj2}/mj2_convert.h | 0 14 files changed, 122 insertions(+), 87 deletions(-) rename src/bin/jpip/{addXMLinJP2.c => opj_jpip_addxml.c} (100%) rename src/bin/jpip/{test_index.c => opj_jpip_test.c} (100%) create mode 100644 src/bin/jpip/opj_jpip_transcode.c rename src/bin/mj2/{frames_to_mj2.c => opj_mj2_compress.c} (99%) rename src/bin/mj2/{mj2_to_frames.c => opj_mj2_decompress.c} (99%) rename src/bin/mj2/{extract_j2k_from_mj2.c => opj_mj2_extract.c} (100%) rename src/bin/mj2/{wrap_j2k_in_mj2.c => opj_mj2_wrap.c} (99%) rename src/{bin/mj2 => lib/openmj2}/mj2_convert.c (100%) rename src/{bin/mj2 => lib/openmj2}/mj2_convert.h (100%) diff --git a/src/bin/jpip/CMakeLists.txt b/src/bin/jpip/CMakeLists.txt index 5a3fc0ff..d887aa7a 100644 --- a/src/bin/jpip/CMakeLists.txt +++ b/src/bin/jpip/CMakeLists.txt @@ -6,9 +6,9 @@ include_directories( ) # Tool to embed metadata into JP2 file -add_executable(addXMLinJP2 addXMLinJP2.c) +add_executable(opj_jpip_addxml opj_jpip_addxml.c) # Install exe -install(TARGETS addXMLinJP2 +install(TARGETS opj_jpip_addxml EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications ) @@ -42,12 +42,18 @@ endif() set(EXES opj_dec_server - jpip_to_jp2 - jpip_to_j2k - test_index + opj_jpip_transcode + opj_jpip_test ) foreach(exe ${EXES}) - add_executable(${exe} ${exe}.c) + if(${exe} STREQUAL "opj_jpip_transcode") + add_executable(${exe} ${exe}.c + jpip_to_jp2.c + jpip_to_j2k.c + ) + else() + add_executable(${exe} ${exe}.c) + endif() target_link_libraries(${exe} openjpip_local) install(TARGETS ${exe} EXPORT OpenJPEGTargets @@ -61,36 +67,6 @@ find_package(Java 1.5 COMPONENTS Development) # javac, jar # Only build the java viewer if dev is found: if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE) set(jflags $ENV{JFLAGS}) - # 1. opj_viewer - # build dep list: - file(GLOB java1_srcs "opj_viewer/src/*.java") - - # make sure target javac dir exists: - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes1) - # Build java - add_custom_command( - OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar - COMMAND ${Java_JAVAC_EXECUTABLE} ${jflags} - ${java1_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes1 - COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar - ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt -C - ${CMAKE_CURRENT_BINARY_DIR}/classes1 . - DEPENDS ${java1_srcs} - ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt - COMMENT "javac *.java; jar cvf -> opj_viewer.jar" - ) - - # name the target - add_custom_target(OPJViewerJar ALL - DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar - COMMENT "building opj_viewer.jar" - ) - - install(FILES ${LIBRARY_OUTPUT_PATH}/opj_viewer.jar - DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule - ) - - # 2. opj_viewer_xerces # search for package org.apache.xerces.parsers find_file(APACHE_XERCES_JAR NAMES xerces-j2.jar xercesImpl.jar @@ -99,6 +75,7 @@ if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE) ) mark_as_advanced(APACHE_XERCES_JAR) + # Decide to build the simple viewer or the xerces one: if(EXISTS ${APACHE_XERCES_JAR}) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer_xerces/dist/manifest.txt.in @@ -123,11 +100,11 @@ if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes2) # Build java add_custom_command( - OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar + OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar COMMAND ${Java_JAVAC_EXECUTABLE} ${jflags} -classpath ${APACHE_XERCES_JAR} ${java2_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes2 - COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar + COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar ${CMAKE_CURRENT_BINARY_DIR}/opj_viewer_xerces/dist/manifest.txt -C ${CMAKE_CURRENT_BINARY_DIR}/classes2 . DEPENDS ${java2_srcs} @@ -137,11 +114,40 @@ if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE) # name the target add_custom_target(OPJViewerXercesJar ALL - DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar - COMMENT "building opj_viewer_xerces.jar" + DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar + COMMENT "building opj_jpip_viewer.jar (xerces)" ) - install(FILES ${LIBRARY_OUTPUT_PATH}/opj_viewer_xerces.jar + install(FILES ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar + DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule + ) + else() + # opj_viewer (simple, no xerces) + # build dep list: + file(GLOB java1_srcs "opj_viewer/src/*.java") + + # make sure target javac dir exists: + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes1) + # Build java + add_custom_command( + OUTPUT ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar + COMMAND ${Java_JAVAC_EXECUTABLE} ${jflags} + ${java1_srcs} -d ${CMAKE_CURRENT_BINARY_DIR}/classes1 + COMMAND ${Java_JAR_EXECUTABLE} cfm ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar + ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt -C + ${CMAKE_CURRENT_BINARY_DIR}/classes1 . + DEPENDS ${java1_srcs} + ${CMAKE_CURRENT_SOURCE_DIR}/opj_viewer/dist/manifest.txt + COMMENT "javac *.java; jar cvf -> opj_jpip_viewer.jar" + ) + + # name the target + add_custom_target(OPJViewerJar ALL + DEPENDS ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar + COMMENT "building opj_jpip_viewer.jar (no xerces found)" + ) + + install(FILES ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule ) endif() diff --git a/src/bin/jpip/jpip_to_j2k.c b/src/bin/jpip/jpip_to_j2k.c index d8b2e2b0..0f64715e 100644 --- a/src/bin/jpip/jpip_to_j2k.c +++ b/src/bin/jpip/jpip_to_j2k.c @@ -43,7 +43,7 @@ #include #include "openjpip.h" -int main(int argc,char *argv[]) +int jpip_to_j2k(int argc,char *argv[]) { jpip_dec_param_t *dec; diff --git a/src/bin/jpip/jpip_to_jp2.c b/src/bin/jpip/jpip_to_jp2.c index d667ed9d..138fc8ac 100644 --- a/src/bin/jpip/jpip_to_jp2.c +++ b/src/bin/jpip/jpip_to_jp2.c @@ -43,7 +43,7 @@ #include #include "openjpip.h" -int main(int argc,char *argv[]) +int jpip_to_jp2(int argc,char *argv[]) { jpip_dec_param_t *dec; diff --git a/src/bin/jpip/addXMLinJP2.c b/src/bin/jpip/opj_jpip_addxml.c similarity index 100% rename from src/bin/jpip/addXMLinJP2.c rename to src/bin/jpip/opj_jpip_addxml.c diff --git a/src/bin/jpip/test_index.c b/src/bin/jpip/opj_jpip_test.c similarity index 100% rename from src/bin/jpip/test_index.c rename to src/bin/jpip/opj_jpip_test.c diff --git a/src/bin/jpip/opj_jpip_transcode.c b/src/bin/jpip/opj_jpip_transcode.c new file mode 100644 index 00000000..4bb8b354 --- /dev/null +++ b/src/bin/jpip/opj_jpip_transcode.c @@ -0,0 +1,49 @@ +/* + * $Id$ + * + * Copyright (c) 2002-2011, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium + * Copyright (c) 2002-2011, Professor Benoit Macq + * Copyright (c) 2012, Mathieu Malaterre + * 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. + */ + +/*! \file + * \brief opj_jpip_transcode is a program to convert JPT- JPP- stream to J2K/JP2 file + * + * \section impinst Implementing instructions + * This program takes two arguments. \n + * -# Input JPT or JPP file + * -# Output J2K file\n + * % ./opj_jpip_transcode input.jpt output.j2k + * or + * % ./jpip_to_j2k input.jpp output.j2k + */ +extern int jpip_to_j2k(int argc,char *argv[]); +extern int jpip_to_jp2(int argc,char *argv[]); + +int main(int argc,char *argv[]) +{ + /* MM: FIXME */ + return jpip_to_jp2(argc,argv); +} diff --git a/src/bin/mj2/CMakeLists.txt b/src/bin/mj2/CMakeLists.txt index 601f3bd9..e27fc50e 100644 --- a/src/bin/mj2/CMakeLists.txt +++ b/src/bin/mj2/CMakeLists.txt @@ -44,52 +44,25 @@ include_directories( ${LCMS_INCLUDE_DIRNAME} ) -add_executable(frames_to_mj2 - frames_to_mj2.c - ${common_SRCS} - ${OPJ_SRCS} - ${MJ2_SRCS} - ) -target_link_libraries(frames_to_mj2 ${LCMS_LIBNAME} openmj2) - -if(UNIX) - target_link_libraries(frames_to_mj2 m) -endif() - -add_executable(mj2_to_frames - mj2_to_frames.c +foreach(exe + opj_mj2_wrap + opj_mj2_extract + opj_mj2_decompress + opj_mj2_compress +) + add_executable(${exe} + ${exe}.c ${common_SRCS} ${OPJ_SRCS} ${MJ2_SRCS} ${OPENJPEG_SOURCE_DIR}/src/bin/common/color.c ) -target_link_libraries(mj2_to_frames ${LCMS_LIBNAME}) - -if(UNIX) - target_link_libraries(mj2_to_frames m) -endif() - -add_executable(extract_j2k_from_mj2 - extract_j2k_from_mj2.c - ${OPJ_SRCS} - ${MJ2_SRCS} - ) -target_link_libraries(extract_j2k_from_mj2 ${LCMS_LIBNAME} openmj2) - -if(UNIX) - target_link_libraries(extract_j2k_from_mj2 m) -endif() - -add_executable(wrap_j2k_in_mj2 - wrap_j2k_in_mj2.c - ${OPJ_SRCS} - ${MJ2_SRCS} - ) -target_link_libraries(wrap_j2k_in_mj2 ${LCMS_LIBNAME}) - -if(UNIX) - target_link_libraries(wrap_j2k_in_mj2 m) -endif() - -install(TARGETS frames_to_mj2 mj2_to_frames extract_j2k_from_mj2 wrap_j2k_in_mj2 - DESTINATION ${OPENJPEG_INSTALL_BIN_DIR}) + target_link_libraries(${exe} ${LCMS_LIBNAME} openmj2) + + if(UNIX) + target_link_libraries(${exe} m) + endif() + + install(TARGETS ${exe} + DESTINATION ${OPENJPEG_INSTALL_BIN_DIR}) +endforeach() diff --git a/src/bin/mj2/frames_to_mj2.c b/src/bin/mj2/opj_mj2_compress.c similarity index 99% rename from src/bin/mj2/frames_to_mj2.c rename to src/bin/mj2/opj_mj2_compress.c index dff34ab7..d05204bf 100644 --- a/src/bin/mj2/frames_to_mj2.c +++ b/src/bin/mj2/opj_mj2_compress.c @@ -776,7 +776,9 @@ int main(int argc, char **argv) cio_write(cio, JP2_JP2C, 4); // JP2C /* encode the image */ +#if 0 /* MM: FIXME */ bSuccess = opj_encode(cinfo, cio, img, NULL); +#endif if (!bSuccess) { opj_cio_close(cio); diff --git a/src/bin/mj2/mj2_to_frames.c b/src/bin/mj2/opj_mj2_decompress.c similarity index 99% rename from src/bin/mj2/mj2_to_frames.c rename to src/bin/mj2/opj_mj2_decompress.c index 32679198..1cf05555 100644 --- a/src/bin/mj2/mj2_to_frames.c +++ b/src/bin/mj2/opj_mj2_decompress.c @@ -177,7 +177,9 @@ int main(int argc, char *argv[]) { /* open a byte stream */ cio = opj_cio_open((opj_common_ptr)dinfo, frame_codestream, sample->sample_size-8); +#if 0 /* MM: FIXME */ img = opj_decode(dinfo, cio); // Decode J2K to image +#endif #ifdef WANT_SYCC_TO_RGB if(img->color_space == CLRSPC_SYCC) diff --git a/src/bin/mj2/extract_j2k_from_mj2.c b/src/bin/mj2/opj_mj2_extract.c similarity index 100% rename from src/bin/mj2/extract_j2k_from_mj2.c rename to src/bin/mj2/opj_mj2_extract.c diff --git a/src/bin/mj2/wrap_j2k_in_mj2.c b/src/bin/mj2/opj_mj2_wrap.c similarity index 99% rename from src/bin/mj2/wrap_j2k_in_mj2.c rename to src/bin/mj2/opj_mj2_wrap.c index 7ce88677..5d37cd7b 100644 --- a/src/bin/mj2/wrap_j2k_in_mj2.c +++ b/src/bin/mj2/opj_mj2_wrap.c @@ -89,7 +89,9 @@ static int test_image(const char *fname, mj2_cparameters_t *cp) cio = opj_cio_open((opj_common_ptr)dinfo, src, src_len); +#if 0 /* MM: FIXME */ image = opj_decode(dinfo, cio); +#endif free(src); cio->buffer = NULL; opj_cio_close(cio); diff --git a/src/lib/openmj2/CMakeLists.txt b/src/lib/openmj2/CMakeLists.txt index b3ba90bd..59e2143b 100644 --- a/src/lib/openmj2/CMakeLists.txt +++ b/src/lib/openmj2/CMakeLists.txt @@ -1,6 +1,7 @@ set(OPENMJ2_LIBRARY_NAME openmj2) set(OPENMJ2_SRCS mj2.c + mj2_convert.c ) # Build the library diff --git a/src/bin/mj2/mj2_convert.c b/src/lib/openmj2/mj2_convert.c similarity index 100% rename from src/bin/mj2/mj2_convert.c rename to src/lib/openmj2/mj2_convert.c diff --git a/src/bin/mj2/mj2_convert.h b/src/lib/openmj2/mj2_convert.h similarity index 100% rename from src/bin/mj2/mj2_convert.h rename to src/lib/openmj2/mj2_convert.h