ChannelStats *p = &s->chstats[c];
p->min = p->nmin = p->min_sigma_x2 = DBL_MAX;
- p->max = p->nmax = p->max_sigma_x2 = DBL_MIN;
+ p->max = p->nmax = p->max_sigma_x2 =-DBL_MAX;
p->min_non_zero = DBL_MAX;
p->min_diff = DBL_MAX;
- p->max_diff = DBL_MIN;
+ p->max_diff = 0;
p->sigma_x = 0;
p->sigma_x2 = 0;
p->avg_sigma_x2 = 0;
p->nb_nans = 0;
p->nb_infs = 0;
p->nb_denormals = 0;
+ p->last = NAN;
}
}
p->sigma_x += nd;
p->sigma_x2 += nd * nd;
p->avg_sigma_x2 = p->avg_sigma_x2 * s->mult + (1.0 - s->mult) * nd * nd;
- p->min_diff = FFMIN(p->min_diff, fabs(d - p->last));
- p->max_diff = FFMAX(p->max_diff, fabs(d - p->last));
- p->diff1_sum += fabs(d - p->last);
- p->diff1_sum_x2 += (d - p->last) * (d - p->last);
+ if (!isnan(p->last)) {
+ p->min_diff = FFMIN(p->min_diff, fabs(d - p->last));
+ p->max_diff = FFMAX(p->max_diff, fabs(d - p->last));
+ p->diff1_sum += fabs(d - p->last);
+ p->diff1_sum_x2 += (d - p->last) * (d - p->last);
+ }
p->last = d;
p->mask |= i;
p->imask &= i;
uint64_t mask = 0, imask = 0xFFFFFFFFFFFFFFFF, min_count = 0, max_count = 0, nb_samples = 0;
uint64_t nb_nans = 0, nb_infs = 0, nb_denormals = 0;
double min_runs = 0, max_runs = 0,
- min = DBL_MAX, max = DBL_MIN, min_diff = DBL_MAX, max_diff = 0,
- nmin = DBL_MAX, nmax = DBL_MIN,
+ min = DBL_MAX, max =-DBL_MAX, min_diff = DBL_MAX, max_diff = 0,
+ nmin = DBL_MAX, nmax =-DBL_MAX,
max_sigma_x = 0,
diff1_sum = 0,
diff1_sum_x2 = 0,
sigma_x = 0,
sigma_x2 = 0,
min_sigma_x2 = DBL_MAX,
- max_sigma_x2 = DBL_MIN;
+ max_sigma_x2 =-DBL_MAX;
AVRational depth;
int c;
#define UPDATE_STATS(planar, type, sample, normalizer_suffix, int_sample) \
if ((s->measure_overall | s->measure_perchannel) & ~MEASURE_MINMAXPEAK) { \
- UPDATE_STATS_##planar(type, update_stat(s, p, sample, sample normalizer_suffix, int_sample), s->is_float ? update_float_stat(s, p, sample) : s->is_double ? update_double_stat(s, p, sample) : NULL, ); \
+ UPDATE_STATS_##planar(type, update_stat(s, p, sample, sample normalizer_suffix, int_sample), s->is_float ? update_float_stat(s, p, sample) : s->is_double ? update_double_stat(s, p, sample) : (void)NULL, ); \
} else { \
UPDATE_STATS_##planar(type, update_minmax(s, p, sample), , p->nmin = p->min normalizer_suffix; p->nmax = p->max normalizer_suffix;); \
}
uint64_t mask = 0, imask = 0xFFFFFFFFFFFFFFFF, min_count = 0, max_count = 0, nb_samples = 0;
uint64_t nb_nans = 0, nb_infs = 0, nb_denormals = 0;
double min_runs = 0, max_runs = 0,
- min = DBL_MAX, max = DBL_MIN, min_diff = DBL_MAX, max_diff = 0,
- nmin = DBL_MAX, nmax = DBL_MIN,
+ min = DBL_MAX, max =-DBL_MAX, min_diff = DBL_MAX, max_diff = 0,
+ nmin = DBL_MAX, nmax =-DBL_MAX,
max_sigma_x = 0,
diff1_sum_x2 = 0,
diff1_sum = 0,
sigma_x = 0,
sigma_x2 = 0,
min_sigma_x2 = DBL_MAX,
- max_sigma_x2 = DBL_MIN;
+ max_sigma_x2 =-DBL_MAX;
AVRational depth;
int c;