Browse files

OpenJPEG patch

  • Loading branch information...
1 parent 9de57aa commit 87d3733dcf1b00ff8ae42e018b9b746d8e4921fb Sven Schlarb committed Jun 14, 2011
Showing with 1,045 additions and 0 deletions.
  1. +3 −0 pc-cc-opjpg-xmldump-patch/README
  2. 0 ...ache-tomcat-6.0.26/temp/axis2-tmp-4352436147881886463.tmp.lck → pc-cc-opjpg-xmldump-patch/README~
  3. +53 −0 pc-cc-opjpg-xmldump-patch/openjpeg_v1_4_32/codec/Makefile.am
  4. +704 −0 pc-cc-opjpg-xmldump-patch/openjpeg_v1_4_32/codec/j2k_dump_xml.c
  5. +29 −0 pc-cc-opjpg-xmldump-patch/opj_j2k_dump.xml
  6. +254 −0 pc-cc-opjpg-xmldump-patch/opj_j2k_dump.xsd
  7. +2 −0 xa-toolwrapper/.gitignore
  8. 0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2063045506230337537.tmp.lck
  9. 0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2115850870606741920.tmp.lck
  10. 0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2708322285670635842.tmp.lck
  11. 0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2995592874665759502.tmp.lck
  12. 0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-3759878312806026107.tmp.lck
  13. 0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-4284964393471309564.tmp.lck
  14. BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/hsperfdata_onbscs/5841
  15. BIN ...at-6.0.26/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_2152266657958426123.png
  16. BIN ...at-6.0.26/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_3673135033351783462.png
  17. BIN ...at-6.0.26/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_5126956894774285598.png
  18. BIN ...at-6.0.26/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_8116325518167881884.png
  19. BIN ...at-6.0.26/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_8269705929469609964.png
  20. BIN ...at-6.0.26/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_8400217781551351606.png
  21. BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl167569648922530563.png
  22. BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl1985643043154621664.png
  23. BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl3990356804310422843.png
  24. BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl437895718682962864.png
  25. BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl4476750519998787787.png
  26. BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl7131393287314901762.png
View
3 pc-cc-opjpg-xmldump-patch/README
@@ -0,0 +1,3 @@
+Create an XML dump of the coding parameters using OpenJPEG.
+openjpeg_v1_4_32/opj_j2k_dump.xml is an example instance and openjpeg_v1_4_32/opj_j2k_dump.xsd is the XMLŚchema.
+The source code is in openjpeg_v1_4_32/codec/j2k_dump_xml.c and it is required to slightly modify the openjpeg_v1_4_32/codec/Makefile.am so that the new executable is compiled.
View
0 ...emp/axis2-tmp-4352436147881886463.tmp.lck → pc-cc-opjpg-xmldump-patch/README~
File renamed without changes.
View
53 pc-cc-opjpg-xmldump-patch/openjpeg_v1_4_32/codec/Makefile.am
@@ -0,0 +1,53 @@
+COMPILERFLAGS = -Wall
+
+if with_sharedlibs
+COMPILERFLAGS += -DOPJ_EXPORTS
+else
+COMPILERFLAGS += -DOPJ_STATIC
+endif
+
+USERLIBS = -lm
+INCLUDES = -I.. -I. -I../libopenjpeg -I../common
+
+if with_libtiff
+INCLUDES += @tiffincludes@
+USERLIBS += @tifflibs@
+endif
+
+if with_libpng
+INCLUDES += @pngincludes@
+USERLIBS += @pnglibs@
+endif
+
+if with_liblcms2
+INCLUDES += @lcms2includes@
+USERLIBS += @lcms2libs@
+endif
+
+if with_liblcms1
+INCLUDES += @lcms1includes@
+USERLIBS += @lcms1libs@
+endif
+
+bin_PROGRAMS = j2k_to_image image_to_j2k j2k_dump j2k_dump_xml
+
+CFLAGS = $(COMPILERFLAGS) $(INCLUDES)
+LDADD = $(USERLIBS) ../libopenjpeg/libopenjpeg.la
+
+j2k_to_image_SOURCES = ../common/getopt.c index.c convert.c \
+ ../common/color.c j2k_to_image.c
+
+image_to_j2k_SOURCES = ../common/getopt.c index.c convert.c image_to_j2k.c
+
+j2k_dump_SOURCES = ../common/getopt.c index.c j2k_dump.c
+j2k_dump_xml_SOURCES = ../common/getopt.c index.c j2k_dump_xml.c
+
+REPBIN=$(bin_PROGRAMS)
+
+all-local:
+ $(INSTALL) -d ../bin
+ $(INSTALL) $(bin_PROGRAMS) ../bin
+ @echo "" > .report.txt
+ @for f in ${REPBIN} ; do \
+ echo "Installing: ${prefix}/bin/$$f" >> .report.txt ; \
+ done
View
704 pc-cc-opjpg-xmldump-patch/openjpeg_v1_4_32/codec/j2k_dump_xml.c
@@ -0,0 +1,704 @@
+/*
+ * Copyright (c) 20010, Mathieu Malaterre, GDCM
+ * 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.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+
+#ifdef _WIN32
+#include "windirent.h"
+#else
+#include <dirent.h>
+#endif /* _WIN32 */
+
+#ifdef _WIN32
+#include <windows.h>
+#else
+#include <strings.h>
+#define _stricmp strcasecmp
+#define _strnicmp strncasecmp
+#endif /* _WIN32 */
+
+#include "opj_config.h"
+#include "openjpeg.h"
+#include "../libopenjpeg/j2k.h"
+#include "../libopenjpeg/jp2.h"
+#include "getopt.h"
+#include "convert.h"
+#include "index.h"
+
+#include "format_defs.h"
+
+typedef struct dircnt {
+ /** Buffer for holding images read from Directory*/
+ char *filename_buf;
+ /** Pointer to the buffer*/
+ char **filename;
+} dircnt_t;
+
+typedef struct img_folder {
+ /** The directory path of the folder containing input images*/
+ char *imgdirpath;
+ /** Output format*/
+ const char *out_format;
+ /** Enable option*/
+ char set_imgdir;
+ /** Enable Cod Format for output*/
+ char set_out_format;
+
+} img_fol_t;
+
+void decode_help_display() {
+ fprintf(stdout, "HELP for j2k_dump\n----\n\n");
+ fprintf(stdout, "- the -h option displays this help information on screen\n\n");
+
+ /* UniPG>> */
+ fprintf(stdout, "List of parameters for the JPEG 2000 "
+#ifdef USE_JPWL
+ "+ JPWL "
+#endif /* USE_JPWL */
+ "decoder:\n");
+ /* <<UniPG */
+ fprintf(stdout, "\n");
+ fprintf(stdout, "\n");
+ fprintf(stdout, " -ImgDir \n");
+ fprintf(stdout, " Image file Directory path \n");
+ fprintf(stdout, " -i <compressed file>\n");
+ fprintf(stdout, " REQUIRED only if an Input image directory not specified\n");
+ fprintf(stdout, " Currently accepts J2K-files, JP2-files and JPT-files. The file type\n");
+ fprintf(stdout, " is identified based on its suffix.\n");
+ fprintf(stdout, "\n");
+}
+
+/* -------------------------------------------------------------------------- */
+static void j2k_dump_image(FILE *fd, opj_image_t * img);
+static void j2k_dump_cp(FILE *fd, opj_image_t * img, opj_cp_t * cp);
+
+int get_num_images(char *imgdirpath) {
+ DIR *dir;
+ struct dirent* content;
+ int num_images = 0;
+
+ /*Reading the input images from given input directory*/
+
+ dir = opendir(imgdirpath);
+ if (!dir) {
+ fprintf(stderr, "Could not open Folder %s\n", imgdirpath);
+ return 0;
+ }
+
+ while ((content = readdir(dir)) != NULL) {
+ if (strcmp(".", content->d_name) == 0 || strcmp("..", content->d_name) == 0)
+ continue;
+ num_images++;
+ }
+ return num_images;
+}
+
+int load_images(dircnt_t *dirptr, char *imgdirpath) {
+ DIR *dir;
+ struct dirent* content;
+ int i = 0;
+
+ /*Reading the input images from given input directory*/
+
+ dir = opendir(imgdirpath);
+ if (!dir) {
+ fprintf(stderr, "Could not open Folder %s\n", imgdirpath);
+ return 1;
+ } else {
+ fprintf(stderr, "Folder opened successfully\n");
+ }
+
+ while ((content = readdir(dir)) != NULL) {
+ if (strcmp(".", content->d_name) == 0 || strcmp("..", content->d_name) == 0)
+ continue;
+
+ strcpy(dirptr->filename[i], content->d_name);
+ i++;
+ }
+ return 0;
+}
+
+int get_file_format(char *filename) {
+ unsigned int i;
+ static const char *extension[] = {"pgx", "pnm", "pgm", "ppm", "bmp", "tif", "raw", "tga", "png", "j2k", "jp2", "jpt", "j2c", "jpc"};
+ static const int format[] = {PGX_DFMT, PXM_DFMT, PXM_DFMT, PXM_DFMT, BMP_DFMT, TIF_DFMT, RAW_DFMT, TGA_DFMT, PNG_DFMT, J2K_CFMT, JP2_CFMT, JPT_CFMT, J2K_CFMT, J2K_CFMT};
+ char * ext = strrchr(filename, '.');
+ if (ext == NULL)
+ return -1;
+ ext++;
+ if (ext) {
+ for (i = 0; i < sizeof (format) / sizeof (*format); i++) {
+ if (_strnicmp(ext, extension[i], 3) == 0) {
+ return format[i];
+ }
+ }
+ }
+
+ return -1;
+}
+
+char get_next_file(int imageno, dircnt_t *dirptr, img_fol_t *img_fol, opj_dparameters_t *parameters) {
+ char image_filename[OPJ_PATH_LEN], infilename[OPJ_PATH_LEN], outfilename[OPJ_PATH_LEN], temp_ofname[OPJ_PATH_LEN];
+ char *temp_p, temp1[OPJ_PATH_LEN] = "";
+
+ strcpy(image_filename, dirptr->filename[imageno]);
+ fprintf(stderr, "File Number %d \"%s\"\n", imageno, image_filename);
+ parameters->decod_format = get_file_format(image_filename);
+ if (parameters->decod_format == -1)
+ return 1;
+ sprintf(infilename, "%s/%s", img_fol->imgdirpath, image_filename);
+ strncpy(parameters->infile, infilename, sizeof (infilename));
+
+ //Set output file
+ strcpy(temp_ofname, strtok(image_filename, "."));
+ while ((temp_p = strtok(NULL, ".")) != NULL) {
+ strcat(temp_ofname, temp1);
+ sprintf(temp1, ".%s", temp_p);
+ }
+ if (img_fol->set_out_format == 1) {
+ sprintf(outfilename, "%s/%s.%s", img_fol->imgdirpath, temp_ofname, img_fol->out_format);
+ strncpy(parameters->outfile, outfilename, sizeof (outfilename));
+ }
+ return 0;
+}
+
+/* -------------------------------------------------------------------------- */
+int parse_cmdline_decoder(int argc, char **argv, opj_dparameters_t *parameters, img_fol_t *img_fol, char *indexfilename) {
+ /* parse the command line */
+ int totlen;
+ option_t long_option[] = {
+ {"ImgDir", REQ_ARG, NULL, 'y'},
+ };
+
+ const char optlist[] = "i:h:o:";
+ totlen = sizeof (long_option);
+ img_fol->set_out_format = 0;
+ while (1) {
+ int c = getopt_long(argc, argv, optlist, long_option, totlen);
+ if (c == -1)
+ break;
+ switch (c) {
+ case 'i': /* input file */
+ {
+ char *infile = optarg;
+ parameters->decod_format = get_file_format(infile);
+ switch (parameters->decod_format) {
+ case J2K_CFMT:
+ case JP2_CFMT:
+ case JPT_CFMT:
+ break;
+ default:
+ fprintf(stderr,
+ "!! Unrecognized format for infile : %s [accept only *.j2k, *.jp2, *.jpc or *.jpt] !!\n\n",
+ infile);
+ return 1;
+ }
+ strncpy(parameters->infile, infile, sizeof (parameters->infile) - 1);
+ }
+ break;
+
+ case 'o': /* output file */
+ {
+ char *outfile = optarg;
+ strncpy(parameters->outfile, outfile, sizeof (parameters->outfile) - 1);
+ }
+ break;
+
+ /* ----------------------------------------------------- */
+
+ case 'h': /* display an help description */
+ decode_help_display();
+ return 1;
+
+ /* ------------------------------------------------------ */
+
+ case 'y': /* Image Directory path */
+ {
+ img_fol->imgdirpath = (char*) malloc(strlen(optarg) + 1);
+ strcpy(img_fol->imgdirpath, optarg);
+ img_fol->set_imgdir = 1;
+ }
+ break;
+
+ /* ----------------------------------------------------- */
+
+ default:
+ fprintf(stderr, "WARNING -> this option is not valid \"-%c %s\"\n", c, optarg);
+ break;
+ }
+ }
+
+ /* check for possible errors */
+ if (img_fol->set_imgdir == 1) {
+ if (!(parameters->infile[0] == 0)) {
+ fprintf(stderr, "Error: options -ImgDir and -i cannot be used together !!\n");
+ return 1;
+ }
+ if (img_fol->set_out_format == 0) {
+ fprintf(stderr, "Error: When -ImgDir is used, -OutFor <FORMAT> must be used !!\n");
+ fprintf(stderr, "Only one format allowed! Valid format PGM, PPM, PNM, PGX, BMP, TIF, RAW and TGA!!\n");
+ return 1;
+ }
+ if (!((parameters->outfile[0] == 0))) {
+ fprintf(stderr, "Error: options -ImgDir and -o cannot be used together !!\n");
+ return 1;
+ }
+ } else {
+ if ((parameters->infile[0] == 0)) {
+ fprintf(stderr, "Example: %s -i image.j2k\n", argv[0]);
+ fprintf(stderr, " Try: %s -h\n", argv[0]);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+/* -------------------------------------------------------------------------- */
+
+/**
+sample error callback expecting a FILE* client object
+ */
+void error_callback(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(const char *msg, void *client_data) {
+ FILE *stream = (FILE*) client_data;
+ fprintf(stream, "[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 main(int argc, char *argv[]) {
+ opj_dparameters_t parameters; /* decompression parameters */
+ img_fol_t img_fol;
+ opj_event_mgr_t event_mgr; /* event manager */
+ opj_image_t *image = NULL;
+ FILE *fsrc = NULL;
+ unsigned char *src = NULL;
+ int file_length;
+ int num_images;
+ int i, imageno;
+ dircnt_t *dirptr = NULL;
+ opj_dinfo_t* dinfo = NULL; /* handle to a decompressor */
+ opj_cio_t *cio = NULL;
+ opj_codestream_info_t cstr_info; /* Codestream information structure */
+ char indexfilename[OPJ_PATH_LEN]; /* index file name */
+
+
+ FILE *outfile;
+
+
+ /* configure the event callbacks (not required) */
+ memset(&event_mgr, 0, sizeof (opj_event_mgr_t));
+ event_mgr.error_handler = error_callback;
+ event_mgr.warning_handler = warning_callback;
+ event_mgr.info_handler = info_callback;
+
+ /* set decoding parameters to default values */
+ opj_set_default_decoder_parameters(&parameters);
+
+ /* Initialize indexfilename and img_fol */
+ *indexfilename = 0;
+ memset(&img_fol, 0, sizeof (img_fol_t));
+
+ /* parse input and get user encoding parameters */
+ if (parse_cmdline_decoder(argc, argv, &parameters, &img_fol, indexfilename) == 1) {
+ return 1;
+ }
+
+
+
+ /* Initialize reading of directory */
+ if (img_fol.set_imgdir == 1) {
+ num_images = get_num_images(img_fol.imgdirpath);
+
+ dirptr = (dircnt_t*) malloc(sizeof (dircnt_t));
+ if (dirptr) {
+ dirptr->filename_buf = (char*) malloc(num_images * OPJ_PATH_LEN * sizeof (char)); // Stores at max 10 image file names
+ dirptr->filename = (char**) malloc(num_images * sizeof (char*));
+
+ if (!dirptr->filename_buf) {
+ return 1;
+ }
+ for (i = 0; i < num_images; i++) {
+ dirptr->filename[i] = dirptr->filename_buf + i*OPJ_PATH_LEN;
+ }
+ }
+ if (load_images(dirptr, img_fol.imgdirpath) == 1) {
+ return 1;
+ }
+ if (num_images == 0) {
+ fprintf(stdout, "Folder is empty\n");
+ return 1;
+ }
+ } else {
+ num_images = 1;
+ }
+
+ /*Encoding image one by one*/
+ for (imageno = 0; imageno < num_images; imageno++) {
+ image = NULL;
+ fprintf(stderr, "\n");
+
+ if (img_fol.set_imgdir == 1) {
+ if (get_next_file(imageno, dirptr, &img_fol, &parameters)) {
+ fprintf(stderr, "skipping file...\n");
+ continue;
+ }
+ }
+
+ /* read the input file and put it in memory */
+ /* ---------------------------------------- */
+ fsrc = fopen(parameters.infile, "rb");
+ if (!fsrc) {
+ fprintf(stderr, "ERROR -> failed to open %s for reading\n", parameters.infile);
+ return 1;
+ }
+ fseek(fsrc, 0, SEEK_END);
+ file_length = ftell(fsrc);
+ fseek(fsrc, 0, SEEK_SET);
+ src = (unsigned char *) malloc(file_length);
+ fread(src, 1, file_length, fsrc);
+ fclose(fsrc);
+
+ /* decode the code-stream */
+ /* ---------------------- */
+
+ switch (parameters.decod_format) {
+ case J2K_CFMT:
+ {
+ /* JPEG-2000 codestream */
+
+ /* get a decoder handle */
+ dinfo = opj_create_decompress(CODEC_J2K);
+
+ /* catch events using our callbacks and give a local context */
+ opj_set_event_mgr((opj_common_ptr) dinfo, &event_mgr, stderr);
+
+ /* setup the decoder decoding parameters using user parameters */
+ opj_setup_decoder(dinfo, &parameters);
+
+ /* open a byte stream */
+ cio = opj_cio_open((opj_common_ptr) dinfo, src, file_length);
+
+ /* decode the stream and fill the image structure */
+ if (*indexfilename) // If need to extract codestream information
+ image = opj_decode_with_info(dinfo, cio, &cstr_info);
+ else
+ image = opj_decode(dinfo, cio);
+ if (!image) {
+ fprintf(stderr, "ERROR -> j2k_to_image: failed to decode image!\n");
+ opj_destroy_decompress(dinfo);
+ opj_cio_close(cio);
+ return 1;
+ }
+
+ const char* outfilestr = (const char*)(parameters.outfile);
+ outfile = fopen(outfilestr, "w");
+
+ /* dump image */
+ j2k_dump_image(outfile, image);
+
+ /* dump cp */
+ j2k_dump_cp(outfile, image, ((opj_j2k_t*) dinfo->j2k_handle)->cp);
+
+ /* close the byte stream */
+ opj_cio_close(cio);
+
+ /* Write the index to disk */
+ if (*indexfilename) {
+ char bSuccess;
+ bSuccess = write_index_file(&cstr_info, indexfilename);
+ if (bSuccess) {
+ fprintf(stderr, "Failed to output index file\n");
+ }
+ }
+ }
+ break;
+
+ case JP2_CFMT:
+ {
+ /* JPEG 2000 compressed image data */
+
+ /* get a decoder handle */
+ dinfo = opj_create_decompress(CODEC_JP2);
+
+ /* catch events using our callbacks and give a local context */
+ opj_set_event_mgr((opj_common_ptr) dinfo, &event_mgr, stderr);
+
+ /* setup the decoder decoding parameters using the current image and user parameters */
+ opj_setup_decoder(dinfo, &parameters);
+
+ /* open a byte stream */
+ cio = opj_cio_open((opj_common_ptr) dinfo, src, file_length);
+
+ /* decode the stream and fill the image structure */
+ if (*indexfilename) // If need to extract codestream information
+ image = opj_decode_with_info(dinfo, cio, &cstr_info);
+ else
+ image = opj_decode(dinfo, cio);
+ if (!image) {
+ fprintf(stderr, "ERROR -> j2k_to_image: failed to decode image!\n");
+ opj_destroy_decompress(dinfo);
+ opj_cio_close(cio);
+ return 1;
+ }
+ /* dump image */
+ if (image->icc_profile_buf) {
+ free(image->icc_profile_buf);
+ image->icc_profile_buf = NULL;
+ }
+
+ const char* outfilestr = (const char*)(parameters.outfile);
+ outfile = fopen(outfilestr, "w");
+
+ j2k_dump_image(outfile, image);
+
+ /* dump cp */
+ j2k_dump_cp(outfile, image, ((opj_jp2_t*) dinfo->jp2_handle)->j2k->cp);
+
+ /* close the byte stream */
+ opj_cio_close(cio);
+
+ /* Write the index to disk */
+ if (*indexfilename) {
+ char bSuccess;
+ bSuccess = write_index_file(&cstr_info, indexfilename);
+ if (bSuccess) {
+ fprintf(stderr, "Failed to output index file\n");
+ }
+ }
+ }
+ break;
+
+ case JPT_CFMT:
+ {
+ /* JPEG 2000, JPIP */
+
+ /* get a decoder handle */
+ dinfo = opj_create_decompress(CODEC_JPT);
+
+ /* catch events using our callbacks and give a local context */
+ opj_set_event_mgr((opj_common_ptr) dinfo, &event_mgr, stderr);
+
+ /* setup the decoder decoding parameters using user parameters */
+ opj_setup_decoder(dinfo, &parameters);
+
+ /* open a byte stream */
+ cio = opj_cio_open((opj_common_ptr) dinfo, src, file_length);
+
+ /* decode the stream and fill the image structure */
+ if (*indexfilename) // If need to extract codestream information
+ image = opj_decode_with_info(dinfo, cio, &cstr_info);
+ else
+ image = opj_decode(dinfo, cio);
+ if (!image) {
+ fprintf(stderr, "ERROR -> j2k_to_image: failed to decode image!\n");
+ opj_destroy_decompress(dinfo);
+ opj_cio_close(cio);
+ return 1;
+ }
+
+ /* close the byte stream */
+ opj_cio_close(cio);
+
+ /* Write the index to disk */
+ if (*indexfilename) {
+ char bSuccess;
+ bSuccess = write_index_file(&cstr_info, indexfilename);
+ if (bSuccess) {
+ fprintf(stderr, "Failed to output index file\n");
+ }
+ }
+ }
+ break;
+
+ default:
+ fprintf(stderr, "skipping file..\n");
+ continue;
+ }
+
+ /* free the memory containing the code-stream */
+ free(src);
+ src = NULL;
+
+ /* free remaining structures */
+ if (dinfo) {
+ opj_destroy_decompress(dinfo);
+ }
+ /* free codestream information structure */
+ if (*indexfilename)
+ opj_destroy_cstr_info(&cstr_info);
+ /* free image data structure */
+ opj_image_destroy(image);
+
+ }
+
+ fclose(outfile);
+
+ return EXIT_SUCCESS;
+}
+
+void get_color_space(char *cs,int size, int csid) {
+ switch(csid) {
+ case 0: strncpy(cs,"unspecified",size); break;
+ case 1: strncpy(cs,"sRGB",size); break;
+ case 2: strncpy(cs,"Greyscale",size); break;
+ case 3: strncpy(cs,"YUV",size); break;
+ default: strncpy(cs,"unknown",size); break;
+ }
+}
+
+static void j2k_dump_image(FILE *fd, opj_image_t * img) {
+
+ fprintf(fd, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
+ fprintf(fd, "<opj_j2k_dump xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"opj_j2k_dump.xsd\">\n");
+
+ // image
+ fprintf(fd, " <image ");
+ // numcomps
+ fprintf(fd, "numcomps=\"%d\" ", img->numcomps);
+ // x0, y0, x1, y1
+ fprintf(fd, "x0=\"%d\" y0=\"%d\" x1=\"%d\" y1=\"%d\" ", img->x0, img->y0, img->x1, img->y1);
+ // colorspace
+ char cs[20];
+ get_color_space(cs, sizeof(cs), img->color_space);
+ fprintf(fd, "cs=\"%s\"", cs);
+ if(img->icc_profile_buf != NULL)
+ fprintf(fd, " iccprof=\"%s\"", img->icc_profile_buf);
+
+ fprintf(fd, ">\n");
+
+ int compno;
+ for (compno = 0; compno < img->numcomps; compno++) {
+ opj_image_comp_t *comp = &img->comps[compno];
+ fprintf(fd, " <comp index=\"%d\" ", compno);
+ fprintf(fd, "dx=\"%d\" dy=\"%d\" ", comp->dx, comp->dy);
+ fprintf(fd, "prec=\"%d\" ", comp->prec);
+
+ fprintf(fd, "resno=\"%d\" ", comp->resno_decoded);
+ //fprintf(fd, " bpp=%d\n", comp->bpp);
+ fprintf(fd, "sgnd=\"%d\"/>\n", comp->sgnd);
+ }
+ fprintf(fd, " </image>\n");
+
+}
+
+void get_progression_order(char *po,int size, int csid) {
+ switch(csid) {
+ case 0: strncpy(po,"LRCP",size); break;
+ case 1: strncpy(po,"RLCP",size); break;
+ case 2: strncpy(po,"RPCL",size); break;
+ case 3: strncpy(po,"PCRL",size); break;
+ case 4: strncpy(po,"CPRL",size); break;
+ default: strncpy(po,"unknown",size); break;
+ }
+}
+
+static void j2k_dump_cp(FILE *fd, opj_image_t * img, opj_cp_t * cp) {
+ int tileno, compno, layno, bandno, resno, numbands;
+ fprintf(fd, " <coding_parameters ");
+ fprintf(fd, "numtiles=\"%d\" tx0=\"%d\" ty0=\"%d\" ",cp->tileno_size , cp->tx0, cp->ty0);
+ fprintf(fd, "tdx=\"%d\" tdy=\"%d\" ", cp->tdx, cp->tdy);
+ fprintf(fd, "tw=\"%d\" th=\"%d\">\n", cp->tw, cp->th);
+
+ for (tileno = 0; tileno < cp->tw * cp->th; tileno++) {
+ opj_tcp_t *tcp = &cp->tcps[tileno];
+ fprintf(fd, " <tile index=\"%d\" ", tileno);
+ fprintf(fd, "csty=\"%x\" ", tcp->csty);
+ // progression order
+ char po[20];
+ get_progression_order(po, sizeof(po), tcp->prg);
+ fprintf(fd, "prg=\"%s\" ", po);
+ fprintf(fd, "numlayers=\"%d\" ", tcp->numlayers);
+
+ fprintf(fd, "mct=\"%d\" ", tcp->mct);
+ fprintf(fd, "rates=\"");
+ for (layno = 0; layno < tcp->numlayers; layno++) {
+ fprintf(fd, "%.1f", tcp->rates[layno]);
+ if (layno != (tcp->numlayers - 1))
+ fprintf(fd, " ");
+ }
+ fprintf(fd, "\">\n");
+ for (compno = 0; compno < img->numcomps; compno++) {
+ opj_tccp_t *tccp = &tcp->tccps[compno];
+ fprintf(fd, " <comp index=\"%d\" ", compno);
+ fprintf(fd, "csty=\"%x\" ", tccp->csty);
+ fprintf(fd, "numres=\"%d\" ", tccp->numresolutions);
+ fprintf(fd, "cblkw=\"%d\" ", tccp->cblkw);
+ fprintf(fd, "cblkh=\"%d\" ", tccp->cblkh);
+ fprintf(fd, "cblksty=\"%x\" ", tccp->cblksty);
+ fprintf(fd, "qmfbid=\"%d\" ", tccp->qmfbid);
+ fprintf(fd, "qntsty=\"%d\" ", tccp->qntsty);
+ fprintf(fd, "numgbits=\"%d\" ", tccp->numgbits);
+ fprintf(fd, "roishift=\"%d\" ", tccp->roishift);
+ fprintf(fd, "prcw=\"%d\" ", tccp->prcw);
+ fprintf(fd, "prch=\"%d\" ", tccp->prch);
+
+ fprintf(fd, "stepsizes=\"");
+ numbands = tccp->qntsty == J2K_CCP_QNTSTY_SIQNT ? 1 : tccp->numresolutions * 3 - 2;
+ for (bandno = 0; bandno < numbands; bandno++) {
+ fprintf(fd, "(%d,%d) ", tccp->stepsizes[bandno].mant,
+ tccp->stepsizes[bandno].expn);
+ }
+ fprintf(fd, "\"/>\n");
+
+ if (tccp->csty & J2K_CCP_CSTY_PRT) {
+ fprintf(fd, " prcw=");
+ for (resno = 0; resno < tccp->numresolutions; resno++) {
+ fprintf(fd, "%d ", tccp->prcw[resno]);
+ }
+ fprintf(fd, "\n");
+ fprintf(fd, " prch=");
+ for (resno = 0; resno < tccp->numresolutions; resno++) {
+ fprintf(fd, "%d ", tccp->prch[resno]);
+ }
+ fprintf(fd, "\n");
+ }
+ }
+ fprintf(fd, " </tile>\n");
+ }
+ fprintf(fd, " </coding_parameters>\n");
+ fprintf(fd, "</opj_j2k_dump>\n");
+}
+
View
29 pc-cc-opjpg-xmldump-patch/opj_j2k_dump.xml
@@ -0,0 +1,29 @@
+<opj_j2k_dump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="opj_j2k_dump.xsd">
+ <image numcomps="3" x0="0" y0="0" x1="1205" y1="1917">
+ <comp index="0" dx="1" dy="1" w="1205" h="1917" prec="8" sgnd="0"/>
+ <comp index="1" dx="1" dy="1" w="1205" h="1917" prec="8" sgnd="0"/>
+ <comp index="2" dx="1" dy="1" w="1205" h="1917" prec="8" sgnd="0"/>
+ </image>
+ <coding_parameters tx0="0" ty0="0" tdx="1024" tdy="1024" tw="2" th="2">
+ <tile index="0" csty="6" prg="1" numlayers="1" mct="1" rates="0.0">
+ <tile_comp index="0" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="1" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="2" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ </tile>
+ <tile index="1" csty="6" prg="1" numlayers="1" mct="1" rates="0.0">
+ <tile_comp index="0" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="1" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="2" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ </tile>
+ <tile index="2" csty="6" prg="1" numlayers="1" mct="1" rates="0.0">
+ <tile_comp index="0" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="1" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="2" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ </tile>
+ <tile index="3" csty="6" prg="1" numlayers="1" mct="1" rates="0.0">
+ <tile_comp index="0" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="1" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ <tile_comp index="2" csty="0" numres="6" cblkw="6" cblkh="6" cblksty="3e" qmfbid="0" qntsty="2" numgbits="1" roishift="0" stepsizes="(1822,14) (1770,14) (1770,14) (1724,14) (1792,13) (1792,13) (1762,13) (1868,12) (1868,12) (1892,12) (3,10) (3,10) (69,10) (2002,10) (2002,10) (1889,10) "/>
+ </tile>
+ </coding_parameters>
+</opj_j2k_dump>
View
254 pc-cc-opjpg-xmldump-patch/opj_j2k_dump.xsd
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--W3C Schema erstellt mit XMLSpy v2008 sp1 (http://www.altova.com)-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="tile_comp">
+ <xs:annotation>
+ <xs:documentation>Tile component</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="index" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>index of tile component</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="stepsizes" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>stepsizes used for quantization</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="roishift" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>region of Interest shift</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="qntsty" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>stepsizes used for quantization</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="qmfbid" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>quantisation style</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="numres" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>number of resolutions</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="numgbits" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>number of guard bits</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="csty" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>coding style</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="cblkw" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>code-blocks width</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="cblksty" use="required">
+ <xs:annotation>
+ <xs:documentation>code-block coding style</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="cblkh" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>code-blocks height</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tile">
+ <xs:annotation>
+ <xs:documentation>Coding/decoding parameters common to all tiles</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tile_comp" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="index" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>tile number</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="rates" type="xs:double" use="required">
+ <xs:annotation>
+ <xs:documentation>rates of layers</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <!--
+ typedef enum PROG_ORDER {
+ PROG_UNKNOWN = -1, /**< place-holder */
+ LRCP = 0, /**< layer-resolution-component-precinct order */
+ RLCP = 1, /**< resolution-layer-component-precinct order */
+ RPCL = 2, /**< resolution-precinct-component-layer order */
+ PCRL = 3, /**< precinct-component-resolution-layer order */
+ CPRL = 4 /**< component-precinct-resolution-layer order */
+ } OPJ_PROG_ORDER;
+ -->
+ <xs:attribute name="prg" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>progression order</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="numlayers" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>number of layers</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="mct" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>multi-component transform identifier</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="csty" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>coding style</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="opj_j2k_dump">
+ <xs:annotation>
+ <xs:documentation>OpenJPEG J2K coding parameters dump</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="image" minOccurs="0" maxOccurs="1"/>
+ <xs:element ref="coding_parameters" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="image">
+ <xs:annotation>
+ <xs:documentation>Defines image data and characteristics</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="comp" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="numcomps" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>number of components</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="x0" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>horizontal offset from the origin of the reference grid to the left side of the image area</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="y0" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>vertical offset from the origin of the reference grid to the top side of the image area</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="x1" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>width of the reference grid</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="y1" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>height of the reference grid</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="cs" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>color space</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="comp">
+ <xs:annotation>
+ <xs:documentation>Defines a single image component</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="index" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>index</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="w" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>data width</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="h" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>data height</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="dx" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>horizontal separation of a sample of ith component with respect to the reference grid</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="dy" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>vertical separation of a sample of ith component with respect to the reference grid</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="prec" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>precision</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="resno=" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>number of resolutions</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="sgnd" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>signed (1) / unsigned (0)</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="coding_parameters">
+ <xs:annotation>
+ <xs:documentation>Coding parameters</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tile" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="ty0" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>YTOsiz</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="tx0" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>XTOsiz</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="tw" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>number of tiles in width</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="th" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>number of tiles in height</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="tdy" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>YTsiz</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="tdx" type="xs:int" use="required">
+ <xs:annotation>
+ <xs:documentation>XTsiz</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
View
2 xa-toolwrapper/.gitignore
@@ -3,3 +3,5 @@ target/*
generated/*
apache-tomcat-6.0.26/logs/*
apache-tomcat-6.0.26/webapps/axis2/WEB-INF/services/*
+apache-tomcat-6.0.26/work/*
+apache-tomcat-6.0.26/temp/*
View
0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2063045506230337537.tmp.lck
No changes.
View
0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2115850870606741920.tmp.lck
No changes.
View
0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2708322285670635842.tmp.lck
No changes.
View
0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-2995592874665759502.tmp.lck
No changes.
View
0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-3759878312806026107.tmp.lck
No changes.
View
0 xa-toolwrapper/apache-tomcat-6.0.26/temp/axis2-tmp-4284964393471309564.tmp.lck
No changes.
View
BIN xa-toolwrapper/apache-tomcat-6.0.26/temp/hsperfdata_onbscs/5841
Binary file not shown.
View
BIN ...6/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_2152266657958426123.png
Deleted file not rendered
View
BIN ...6/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_3673135033351783462.png
Deleted file not rendered
View
BIN ...6/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_5126956894774285598.png
Deleted file not rendered
View
BIN ...6/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_8116325518167881884.png
Deleted file not rendered
View
BIN ...6/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_8269705929469609964.png
Deleted file not rendered
View
BIN ...6/temp/simplecopy10-tmp-store/SCAPESimpleCopy10Service_outputFile_8400217781551351606.png
Deleted file not rendered
View
BIN ...oolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl167569648922530563.png
Deleted file not rendered
View
BIN ...olwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl1985643043154621664.png
Deleted file not rendered
View
BIN ...olwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl3990356804310422843.png
Deleted file not rendered
View
BIN ...oolwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl437895718682962864.png
Deleted file not rendered
View
BIN ...olwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl4476750519998787787.png
Deleted file not rendered
View
BIN ...olwrapper/apache-tomcat-6.0.26/temp/simplecopy10-tmp-store/fromurl7131393287314901762.png
Deleted file not rendered

0 comments on commit 87d3733

Please sign in to comment.