Пример #1
0
static void stats_print(struct af_stats *s)
{
    int i;
    long long sum;
    float v;
    long long h[MAX_DB];

    s->tsquare /= 32768 * 32768;
    mp_msg(MSGT_AFILTER, MSGL_INFO, "stats: n_samples: %lld\n", s->n_samples);
    if (s->n_samples == 0)
        return;
    mp_msg(MSGT_AFILTER, MSGL_INFO, "stats: mean_volume: -%d dB\n",
           logdb(s->tsquare / s->n_samples));
    mp_msg(MSGT_AFILTER, MSGL_INFO, "stats: max_volume: -%d dB\n",
           logdb(s->max / (32768.0 * 32768.0)));
    for (i = 0; i < MAX_DB; i++)
        h[i] = 0;
    for (i = 0; i < 65536; i++) {
        v = (i - 32768) / 32768.0;
        h[logdb(v * v)] += s->histogram[i];
    }
    for (i = 0; i < MAX_DB; i++)
        if (h[i] != 0)
            break;
    sum = 0;
    for (; i < MAX_DB; i++) {
        sum += h[i];
        mp_msg(MSGT_AFILTER, MSGL_INFO, "stats: histogram_%ddb: %lld\n",
               i, h[i]);
        if (sum > s->n_samples / 1000)
            break;
    }
}
Пример #2
0
 tagstruct::tagstruct(indx mid, indx grp) : id_(mid) {
     type(TYPE_NODEF);
     minraw_ = 0;
     maxraw_ = 0;
     mineu_ = num64_cast<double>(0);
     ;
     maxeu_ = num64_cast<double>(100);
     logdb(0.2);
     devdb(0.0);
     alarmconst_ = num64_cast<double>(0);
     posname_ = static_cast<num64> (0);
     poscomment_ = static_cast<num64> (0);
     posbinding_ = static_cast<num64> (0);
     posonmsg_ = static_cast<num64> (0);
     posoffmsg_ = static_cast<num64> (0);
     posalarmmsg_ = static_cast<num64> (0);
     poseu_ = static_cast<num64> (0);
     alwactive_ = static_cast<bool> (0);
     unusepos1_ = 0;
     unusepos2_ = 0;
     util_helper_ = 0;
     logged_ = static_cast<num64> (false);
     onmsged_ = static_cast<num64> (false);
     offmsged_ = static_cast<num64> (false);
     group(grp);
     agroup(npos);
     logkey(npos);
     reporthistory(1000);
     reportsubdelt(0);
     reportstatistic(REPORT_STATISTIC_AVER);
 }