void delete_cache( cache_param_t **cache) { int i; delete_metadatalist( &(*cache)->metadatalist); if((*cache)->ihdrbox) free((*cache)->ihdrbox); for( i=0; i<(*cache)->numOfcid; i++) free( (*cache)->cid[i]); free( (*cache)->cid); free( *cache); }
OPJ_BOOL OPJ_CALLCONV fwrite_jp2k( const char fname[], jpip_dec_param_t *dec) { int outfd; #ifdef _WIN32 if(( outfd = open( fname, O_WRONLY|O_CREAT, _S_IREAD | _S_IWRITE)) == -1){ #else if(( outfd = open( fname, O_WRONLY|O_CREAT, S_IRWXU|S_IRWXG)) == -1){ #endif fprintf( stderr, "file %s open error\n", fname); return OPJ_FALSE; } if( write( outfd, dec->jp2kstream, dec->jp2klen) != (int)dec->jp2klen) fprintf( stderr, "j2k file write error\n"); close(outfd); return OPJ_TRUE; } void OPJ_CALLCONV output_log( OPJ_BOOL messages, OPJ_BOOL metadata, OPJ_BOOL ihdrbox, jpip_dec_param_t *dec) { if( messages) print_msgqueue( dec->msgqueue); if( metadata) print_allmetadata( dec->metadatalist); if( ihdrbox){ printf("W*H: %d*%d\n", dec->ihdrbox->height, dec->ihdrbox->width); printf("NC: %d, bpc: %d\n", dec->ihdrbox->nc, dec->ihdrbox->bpc); } } void OPJ_CALLCONV destroy_jpipdecoder( jpip_dec_param_t **dec) { opj_free( (*dec)->jpipstream); delete_msgqueue( &(*dec)->msgqueue); if( (*dec)->metadatalist){ delete_metadatalist( &(*dec)->metadatalist); opj_free( (*dec)->ihdrbox); } opj_free( (*dec)->jp2kstream); opj_free( *dec); }
void delete_index( index_param_t **index) { int i; delete_metadatalist( &((*index)->metadatalist)); delete_COD( (*index)->COD); delete_faixbox( &((*index)->tilepart)); for( i=0; i< (int)((*index)->SIZ.XTnum*(*index)->SIZ.YTnum);i++) delete_mhixbox( &((*index)->tileheader[i])); opj_free( (*index)->tileheader); for( i=0; i<(*index)->SIZ.Csiz; i++) delete_faixbox( &((*index)->precpacket[i])); opj_free( (*index)->precpacket); opj_free(*index); }