Ignore:
Timestamp:
May 17, 2008 2:54:18 PM (16 years ago)
Author:
nanang
Message:

More on ticket #535: updated files using and related to math.h

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/rtcp.c

    r1942 r1961  
    167167    pj_get_timestamp_freq(&sess->ts_freq); 
    168168 
     169    /* Initialize statistics states */ 
     170    pj_math_stat_init(&sess->stat.rtt); 
     171    pj_math_stat_init(&sess->stat.rx.loss_period); 
     172    pj_math_stat_init(&sess->stat.rx.jitter); 
     173    pj_math_stat_init(&sess->stat.tx.loss_period); 
     174    pj_math_stat_init(&sess->stat.tx.jitter); 
     175 
    169176    /* RR will be initialized on receipt of the first RTP packet. */ 
    170177} 
     
    275282 
    276283        /* Update loss period stat */ 
    277         if (sess->stat.rx.loss_period.count == 0 || 
    278             period < sess->stat.rx.loss_period.min) 
    279         { 
    280             sess->stat.rx.loss_period.min = period; 
    281         } 
    282         if (period > sess->stat.rx.loss_period.max) 
    283             sess->stat.rx.loss_period.max = period; 
    284         sess->stat.rx.loss_period.avg =  
    285             (sess->stat.rx.loss_period.avg * sess->stat.rx.loss_period.count + 
    286              period) / (sess->stat.rx.loss_period.count + 1); 
    287         sess->stat.rx.loss_period.last = period; 
    288         ++sess->stat.rx.loss_period.count; 
     284        pj_math_stat_update(&sess->stat.rx.loss_period, period); 
    289285    } 
    290286 
     
    330326            } 
    331327 
    332             /* Add to average */ 
    333             sess->avg_jitter =  
    334                 (jitter + sess->avg_jitter * sess->stat.rx.jitter.count) / 
    335                 (sess->stat.rx.jitter.count + 1); 
    336             sess->stat.rx.jitter.avg = (unsigned)sess->avg_jitter; 
    337             ++sess->stat.rx.jitter.count; 
    338  
    339328            /* Update jitter stat */ 
    340             if (jitter < sess->stat.rx.jitter.min) 
    341                 sess->stat.rx.jitter.min = jitter; 
    342             if (jitter > sess->stat.rx.jitter.max) 
    343                 sess->stat.rx.jitter.max = jitter; 
    344  
    345             sess->stat.rx.jitter.last = jitter; 
     329            pj_math_stat_update(&sess->stat.rx.jitter, jitter); 
    346330 
    347331#if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0) 
     
    464448        period *= 1000; 
    465449 
    466         if (sess->stat.tx.update_cnt==0||sess->stat.tx.loss_period.min==0) 
    467             sess->stat.tx.loss_period.min = period; 
    468         if (period < sess->stat.tx.loss_period.min) 
    469             sess->stat.tx.loss_period.min = period; 
    470         if (period > sess->stat.tx.loss_period.max) 
    471             sess->stat.tx.loss_period.max = period; 
    472  
    473         sess->stat.tx.loss_period.avg =  
    474             (sess->stat.tx.loss_period.avg*sess->stat.tx.update_cnt+period) 
    475             / (sess->stat.tx.update_cnt + 1); 
    476         sess->stat.tx.loss_period.last = period; 
     450        /* Update loss period stat */ 
     451        pj_math_stat_update(&sess->stat.tx.loss_period, period); 
    477452    } 
    478453 
     
    488463 
    489464    /* Update jitter statistics */ 
    490     if (sess->stat.tx.jitter.count == 0) 
    491         sess->stat.tx.jitter.min = jitter; 
    492     if (jitter < sess->stat.tx.jitter.min && jitter) 
    493         sess->stat.tx.jitter.min = jitter; 
    494     if (jitter > sess->stat.tx.jitter.max) 
    495         sess->stat.tx.jitter.max = jitter; 
    496     sess->stat.tx.jitter.avg =  
    497         (sess->stat.tx.jitter.avg * sess->stat.tx.jitter.count + jitter) / 
    498         (sess->stat.tx.jitter.count + 1); 
    499     ++sess->stat.tx.jitter.count; 
    500     sess->stat.tx.jitter.last = jitter; 
    501  
     465    pj_math_stat_update(&sess->stat.tx.jitter, jitter); 
    502466 
    503467    /* Can only calculate if LSR and DLSR is present in RR */ 
     
    553517            } 
    554518 
    555             if (sess->stat.rtt_update_cnt == 0) 
    556                 sess->stat.rtt.min = rtt; 
    557  
    558519            /* "Normalize" rtt value that is exceptionally high. 
    559520             * For such values, "normalize" the rtt to be three times 
    560521             * the average value. 
    561522             */ 
    562             if (rtt > (sess->stat.rtt.avg*3) && sess->stat.rtt_update_cnt!=0) { 
     523            if (rtt > ((unsigned)sess->stat.rtt.mean*3) && sess->stat.rtt.n!=0) 
     524            { 
    563525                unsigned orig_rtt = rtt; 
    564                 rtt = sess->stat.rtt.avg*3; 
     526                rtt = sess->stat.rtt.mean*3; 
    565527                PJ_LOG(5,(sess->name,  
    566528                          "RTT value %d usec is normalized to %d usec", 
     
    570532            TRACE_((sess->name, "RTCP RTT is set to %d usec", rtt)); 
    571533 
    572             if (rtt < sess->stat.rtt.min && rtt) 
    573                 sess->stat.rtt.min = rtt; 
    574             if (rtt > sess->stat.rtt.max) 
    575                 sess->stat.rtt.max = rtt; 
    576  
    577             sess->stat.rtt.avg =  
    578                 (sess->stat.rtt.avg * sess->stat.rtt_update_cnt + rtt) /  
    579                 (sess->stat.rtt_update_cnt + 1); 
    580  
    581             sess->stat.rtt.last = rtt; 
    582             sess->stat.rtt_update_cnt++; 
     534            /* Update RTT stat */ 
     535            pj_math_stat_update(&sess->stat.rtt, rtt); 
    583536 
    584537        } else { 
Note: See TracChangeset for help on using the changeset viewer.