Byte_t *pnmstream;
Byte_t *j2kstream; /* j2k or jp2 codestream */
Byte8_t j2klen;
+ size_t retlen;
FILE *fp;
const char j2kfname[] = "tmp.j2k";
+ fp = fopen( j2kfname, "w+b");
+ if( !fp )
+ {
+ return NULL;
+ }
j2kstream = recons_j2k( msgqueue, jpipstream, csn, fw, fh, &j2klen);
+ if( !j2kstream )
+ {
+ fclose(fp);
+ remove( j2kfname);
+ return NULL;
+ }
- fp = fopen( j2kfname, "w+b");
- fwrite( j2kstream, j2klen, 1, fp);
+ retlen = fwrite( j2kstream, 1, j2klen, fp);
opj_free( j2kstream);
- fseek( fp, 0, SEEK_SET);
+ 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;