diff --git a/src/bin/jp2/index.c b/src/bin/jp2/index.c index af6e1381..478f556a 100644 --- a/src/bin/jp2/index.c +++ b/src/bin/jp2/index.c @@ -69,7 +69,7 @@ int write_index_file(opj_codestream_info_t *cstr_info, char *index) { return 1; } - if (cstr_info->tile[0].distotile) + if (cstr_info->tile[0].distotile > 0.0) disto_on = 1; else disto_on = 0; diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c index 20407498..be8e9442 100644 --- a/src/lib/openjp2/j2k.c +++ b/src/lib/openjp2/j2k.c @@ -4706,7 +4706,7 @@ static OPJ_BOOL opj_j2k_update_rates( opj_j2k_t *p_j2k, l_rates = l_tcp->rates; /* Modification of the RATE >> */ - if (*l_rates) { + if (*l_rates > 0.0f) { *l_rates = (( (OPJ_FLOAT32) (l_size_pixel * (OPJ_UINT32)(l_x1 - l_x0) * (OPJ_UINT32)(l_y1 - l_y0))) / ((*l_rates) * (OPJ_FLOAT32)l_bits_empty) @@ -4718,7 +4718,7 @@ static OPJ_BOOL opj_j2k_update_rates( opj_j2k_t *p_j2k, ++l_rates; for (k = 1; k < l_tcp->numlayers; ++k) { - if (*l_rates) { + if (*l_rates > 0.0f) { *l_rates = (( (OPJ_FLOAT32) (l_size_pixel * (OPJ_UINT32)(l_x1 - l_x0) * (OPJ_UINT32)(l_y1 - l_y0))) / ((*l_rates) * (OPJ_FLOAT32)l_bits_empty) @@ -4741,11 +4741,11 @@ static OPJ_BOOL opj_j2k_update_rates( opj_j2k_t *p_j2k, for (j=0;jtw;++j) { l_rates = l_tcp->rates; - if (*l_rates) { + if (*l_rates > 0.0f) { *l_rates -= l_sot_remove; - if (*l_rates < 30) { - *l_rates = 30; + if (*l_rates < 30.0f) { + *l_rates = 30.0f; } } @@ -4755,22 +4755,22 @@ static OPJ_BOOL opj_j2k_update_rates( opj_j2k_t *p_j2k, for (k = 1; k < l_last_res; ++k) { - if (*l_rates) { + if (*l_rates > 0.0f) { *l_rates -= l_sot_remove; - if (*l_rates < *(l_rates - 1) + 10) { - *l_rates = (*(l_rates - 1)) + 20; + if (*l_rates < *(l_rates - 1) + 10.0f) { + *l_rates = (*(l_rates - 1)) + 20.0f; } } ++l_rates; } - if (*l_rates) { + if (*l_rates > 0.0f) { *l_rates -= (l_sot_remove + 2.f); - if (*l_rates < *(l_rates - 1) + 10) { - *l_rates = (*(l_rates - 1)) + 20; + if (*l_rates < *(l_rates - 1) + 10.0f) { + *l_rates = (*(l_rates - 1)) + 20.0f; } } diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c index d590046f..45d55e59 100644 --- a/src/lib/openjp2/tcd.c +++ b/src/lib/openjp2/tcd.c @@ -487,7 +487,7 @@ OPJ_BOOL opj_tcd_rateallocate( opj_tcd_t *tcd, OPJ_FLOAT64 lo = min; OPJ_FLOAT64 hi = max; OPJ_BOOL success = OPJ_FALSE; - OPJ_UINT32 maxlen = tcd_tcp->rates[layno] ? opj_uint_min(((OPJ_UINT32) ceil(tcd_tcp->rates[layno])), len) : len; + OPJ_UINT32 maxlen = tcd_tcp->rates[layno] > 0.0f ? opj_uint_min(((OPJ_UINT32) ceil(tcd_tcp->rates[layno])), len) : len; OPJ_FLOAT64 goodthresh = 0; OPJ_FLOAT64 stable_thresh = 0; OPJ_UINT32 i; @@ -500,7 +500,7 @@ OPJ_BOOL opj_tcd_rateallocate( opj_tcd_t *tcd, -r xx,yy,zz,0 (disto_alloc == 1 and rates == 0) -q xx,yy,zz,0 (fixed_quality == 1 and distoratio == 0) ==> possible to have some lossy layers and the last layer for sure lossless */ - if ( ((cp->m_specific_param.m_enc.m_disto_alloc==1) && (tcd_tcp->rates[layno]>0)) || ((cp->m_specific_param.m_enc.m_fixed_quality==1) && (tcd_tcp->distoratio[layno]>0))) { + if ( ((cp->m_specific_param.m_enc.m_disto_alloc==1) && (tcd_tcp->rates[layno]>0.0f)) || ((cp->m_specific_param.m_enc.m_fixed_quality==1) && (tcd_tcp->distoratio[layno]>0.0))) { opj_t2_t*t2 = opj_t2_create(tcd->image, cp); OPJ_FLOAT64 thresh = 0;