/*
* $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) 2002-2014, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2014, Professor Benoit Macq
* Copyright (c) 2010-2011, Kaori Hagihara
* All rights reserved.
*
Byte_t * update_JPIPstream( Byte_t *newstream, OPJ_SIZE_T newstreamlen, Byte_t *cache_stream, OPJ_SIZE_T *streamlen)
{
- Byte_t *stream = (Byte_t *)malloc( (*streamlen)+newstreamlen);
+ Byte_t *stream = (Byte_t *)opj_malloc( (*streamlen)+newstreamlen);
if( *streamlen > 0)
memcpy( stream, cache_stream, *streamlen);
memcpy( stream+(*streamlen), newstream, newstreamlen);
*streamlen += newstreamlen;
if(cache_stream)
- free( cache_stream);
+ opj_free( cache_stream);
return stream;
}
Byte_t *pnmstream;
Byte_t *j2kstream; /* j2k or jp2 codestream */
Byte8_t j2klen;
+ size_t retlen;
FILE *fp;
const char j2kfname[] = "tmp.j2k";
- j2kstream = recons_j2k( msgqueue, jpipstream, csn, fw, fh, &j2klen);
-
fp = fopen( j2kfname, "w+b");
- fwrite( j2kstream, j2klen, 1, fp);
- free( j2kstream);
- fseek( fp, 0, SEEK_SET);
+ if( !fp )
+ {
+ return NULL;
+ }
+ j2kstream = recons_j2k( msgqueue, jpipstream, csn, fw, fh, &j2klen);
+ if( !j2kstream )
+ {
+ fclose(fp);
+ remove( j2kfname);
+ return NULL;
+ }
+
+ retlen = fwrite( j2kstream, 1, j2klen, fp);
+ opj_free( j2kstream);
+ fclose(fp);
+ if( retlen != j2klen )
+ {
+ remove( j2kfname);
+ return NULL;
+ }
- pnmstream = j2k_to_pnm( fp, ihdrbox);
+ pnmstream = j2k_to_pnm( j2kfname, ihdrbox);
- fclose( fp);
remove( j2kfname);
return pnmstream;
j2kstream = recons_j2kmainhead( msgqueue, jpipstream, csn, &j2klen);
if( !get_mainheader_from_j2kstream( j2kstream, &SIZ, NULL)){
- free( j2kstream);
+ opj_free( j2kstream);
return NULL;
}
- ihdrbox = (ihdrbox_param_t *)malloc( sizeof(ihdrbox_param_t));
+ ihdrbox = (ihdrbox_param_t *)opj_malloc( sizeof(ihdrbox_param_t));
ihdrbox->width = SIZ.Xsiz;
ihdrbox->height = SIZ.Ysiz;
ihdrbox->nc = SIZ.Csiz;
ihdrbox->bpc = SIZ.Ssiz[0];
- free( j2kstream);
+ opj_free( j2kstream);
return ihdrbox;
}