summaryrefslogtreecommitdiff
path: root/src/bin/jpip/opj_jpip_addxml.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/jpip/opj_jpip_addxml.c')
-rw-r--r--src/bin/jpip/opj_jpip_addxml.c192
1 files changed, 96 insertions, 96 deletions
diff --git a/src/bin/jpip/opj_jpip_addxml.c b/src/bin/jpip/opj_jpip_addxml.c
index 626fc5d1..9c3a2563 100644
--- a/src/bin/jpip/opj_jpip_addxml.c
+++ b/src/bin/jpip/opj_jpip_addxml.c
@@ -36,7 +36,7 @@
* -# Input/output image file in JP2 format, this JP2 file is being modified
* -# Input XML file with metadata contents\n
* % ./addXMLinJP2 image.jp2 metadata.xml\n
- *
+ *
* Currently, this program does not parse XML file, and the XML file contents is directly embedded as a XML Box.\n
* The following is an example of XML file contents specifying Region Of Interests with target names.\n
* <xmlbox>\n
@@ -74,111 +74,111 @@ char * read_xmlfile( const char filename[], long *fsize);
int main(int argc, char *argv[])
{
- FILE *fp;
- char *xmldata, type[]="xml ";
- long fsize, boxsize;
-
- if( argc<3){
- fprintf( stderr, "USAGE: %s modifing.jp2 adding.xml\n", argv[0] );
- return -1;
- }
-
- fp = open_jp2file( argv[1]);
- if( !fp)
- return -1;
-
- xmldata = read_xmlfile( argv[2], &fsize);
- if( fsize < 0 ) return -1;
- boxsize = fsize + 8;
-
- fputc( (boxsize>>24)&0xff, fp);
- fputc( (boxsize>>16)&0xff, fp);
- fputc( (boxsize>>8)&0xff, fp);
- fputc( boxsize&0xff, fp);
- fwrite( type, 4, 1, fp);
- fwrite( xmldata, (size_t)fsize, 1, fp);
-
- free( xmldata);
- fclose(fp);
-
- return 0;
+ FILE *fp;
+ char *xmldata, type[]="xml ";
+ long fsize, boxsize;
+
+ if( argc<3) {
+ fprintf( stderr, "USAGE: %s modifing.jp2 adding.xml\n", argv[0] );
+ return -1;
+ }
+
+ fp = open_jp2file( argv[1]);
+ if( !fp)
+ return -1;
+
+ xmldata = read_xmlfile( argv[2], &fsize);
+ if( fsize < 0 ) return -1;
+ boxsize = fsize + 8;
+
+ fputc( (boxsize>>24)&0xff, fp);
+ fputc( (boxsize>>16)&0xff, fp);
+ fputc( (boxsize>>8)&0xff, fp);
+ fputc( boxsize&0xff, fp);
+ fwrite( type, 4, 1, fp);
+ fwrite( xmldata, (size_t)fsize, 1, fp);
+
+ free( xmldata);
+ fclose(fp);
+
+ return 0;
}
FILE * open_jp2file( const char filename[])
{
- FILE *fp;
- char *data;
-
- if( !(fp = fopen( filename, "a+b"))){
- fprintf( stderr, "Original JP2 %s not found\n", filename);
- return NULL;
- }
- /* Check resource is a JP family file. */
- if( fseek( fp, 0, SEEK_SET)==-1){
- fclose(fp);
- fprintf( stderr, "Original JP2 %s broken (fseek error)\n", filename);
- return NULL;
- }
-
- data = (char *)malloc( 12); /* size of header */
- if( fread( data, 12, 1, fp) != 1){
+ FILE *fp;
+ char *data;
+
+ if( !(fp = fopen( filename, "a+b"))) {
+ fprintf( stderr, "Original JP2 %s not found\n", filename);
+ return NULL;
+ }
+ /* Check resource is a JP family file. */
+ if( fseek( fp, 0, SEEK_SET)==-1) {
+ fclose(fp);
+ fprintf( stderr, "Original JP2 %s broken (fseek error)\n", filename);
+ return NULL;
+ }
+
+ data = (char *)malloc( 12); /* size of header */
+ if( fread( data, 12, 1, fp) != 1) {
+ free( data);
+ fclose(fp);
+ fprintf( stderr, "Original JP2 %s broken (read error)\n", filename);
+ return NULL;
+ }
+
+ if( *data || *(data + 1) || *(data + 2) ||
+ *(data + 3) != 12 || strncmp (data + 4, "jP \r\n\x87\n", 8)) {
+ free( data);
+ fclose(fp);
+ fprintf( stderr, "No JPEG 2000 Signature box in target %s\n", filename);
+ return NULL;
+ }
free( data);
- fclose(fp);
- fprintf( stderr, "Original JP2 %s broken (read error)\n", filename);
- return NULL;
- }
-
- if( *data || *(data + 1) || *(data + 2) ||
- *(data + 3) != 12 || strncmp (data + 4, "jP \r\n\x87\n", 8)){
- free( data);
- fclose(fp);
- fprintf( stderr, "No JPEG 2000 Signature box in target %s\n", filename);
- return NULL;
- }
- free( data);
- return fp;
+ return fp;
}
char * read_xmlfile( const char filename[], long *fsize)
{
- FILE *fp;
- char *data;
-
- /* fprintf( stderr, "open %s\n", filename);*/
- if(!(fp = fopen( filename, "r"))){
- fprintf( stderr, "XML file %s not found\n", filename);
- return NULL;
- }
-
- if( fseek( fp, 0, SEEK_END) == -1){
- fprintf( stderr, "XML file %s broken (seek error)\n", filename);
- fclose( fp);
- return NULL;
- }
-
- if( (*fsize = ftell( fp)) == -1){
- fprintf( stderr, "XML file %s broken (seek error)\n", filename);
- fclose( fp);
- return NULL;
- }
- assert( *fsize >= 0 );
+ FILE *fp;
+ char *data;
+
+ /* fprintf( stderr, "open %s\n", filename);*/
+ if(!(fp = fopen( filename, "r"))) {
+ fprintf( stderr, "XML file %s not found\n", filename);
+ return NULL;
+ }
+
+ if( fseek( fp, 0, SEEK_END) == -1) {
+ fprintf( stderr, "XML file %s broken (seek error)\n", filename);
+ fclose( fp);
+ return NULL;
+ }
+
+ if( (*fsize = ftell( fp)) == -1) {
+ fprintf( stderr, "XML file %s broken (seek error)\n", filename);
+ fclose( fp);
+ return NULL;
+ }
+ assert( *fsize >= 0 );
+
+ if( fseek( fp, 0, SEEK_SET) == -1) {
+ fprintf( stderr, "XML file %s broken (seek error)\n", filename);
+ fclose( fp);
+ return NULL;
+ }
+
+ data = (char *)malloc( (size_t)*fsize);
+
+ if( fread( data, (size_t)*fsize, 1, fp) != 1) {
+ fprintf( stderr, "XML file %s broken (read error)\n", filename);
+ free( data);
+ fclose(fp);
+ return NULL;
+ }
- if( fseek( fp, 0, SEEK_SET) == -1){
- fprintf( stderr, "XML file %s broken (seek error)\n", filename);
fclose( fp);
- return NULL;
- }
-
- data = (char *)malloc( (size_t)*fsize);
-
- if( fread( data, (size_t)*fsize, 1, fp) != 1){
- fprintf( stderr, "XML file %s broken (read error)\n", filename);
- free( data);
- fclose(fp);
- return NULL;
- }
-
- fclose( fp);
- return data;
+ return data;
}