Ignore:
Timestamp:
Jul 15, 2010 2:45:47 PM (12 years ago)
Author:
nanang
Message:

Re #1103:

  • Added (back) raw jitter statistics into RTCP statistics, with the new name "rx_raw_jitter".
  • Added IPDV statistics into RTCP statistics.
  • Added new compile-time settings to enable/disable raw jitter and IPDV statistics.
  • Updated call dump in pjsua-lib.
File:
1 edited

Legend:

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

    r3237 r3239  
    154154    pj_math_stat_init(&stat->tx.jitter); 
    155155 
     156#if defined(PJMEDIA_RTCP_STAT_HAS_IPDV) && PJMEDIA_RTCP_STAT_HAS_IPDV!=0 
     157    pj_math_stat_init(&stat->rx_ipdv); 
     158#endif 
     159 
     160#if defined(PJMEDIA_RTCP_STAT_HAS_RAW_JITTER) && PJMEDIA_RTCP_STAT_HAS_RAW_JITTER!=0 
     161    pj_math_stat_init(&stat->rx_raw_jitter); 
     162#endif 
     163 
    156164    pj_gettimeofday(&now); 
    157165    stat->start = now; 
     
    361369            pj_int32_t d; 
    362370            pj_uint32_t jitter; 
    363              
     371 
    364372            d = transit - sess->transit; 
    365             sess->transit = transit; 
    366373            if (d < 0)  
    367374                d = -d; 
     
    382389 
    383390 
     391#if defined(PJMEDIA_RTCP_STAT_HAS_RAW_JITTER) && PJMEDIA_RTCP_STAT_HAS_RAW_JITTER!=0 
     392            { 
     393                pj_uint32_t raw_jitter; 
     394 
     395                /* Convert raw jitter unit from samples to usec */ 
     396                if (d < 4294) 
     397                    raw_jitter = d * 1000000 / sess->clock_rate; 
     398                else { 
     399                    raw_jitter = d * 1000 / sess->clock_rate; 
     400                    raw_jitter *= 1000; 
     401                } 
     402                 
     403                /* Update jitter stat */ 
     404                pj_math_stat_update(&sess->stat.rx_raw_jitter, raw_jitter); 
     405            } 
     406#endif 
     407 
     408 
     409#if defined(PJMEDIA_RTCP_STAT_HAS_IPDV) && PJMEDIA_RTCP_STAT_HAS_IPDV!=0 
     410            { 
     411                pj_int32_t ipdv; 
     412 
     413                ipdv = transit - sess->transit; 
     414                /* Convert IPDV unit from samples to usec */ 
     415                if (ipdv > -2147 && ipdv < 2147) 
     416                    ipdv = ipdv * 1000000 / (int)sess->clock_rate; 
     417                else { 
     418                    ipdv = ipdv * 1000 / (int)sess->clock_rate; 
     419                    ipdv *= 1000; 
     420                } 
     421                 
     422                /* Update jitter stat */ 
     423                pj_math_stat_update(&sess->stat.rx_ipdv, ipdv); 
     424            } 
     425#endif 
     426 
    384427#if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0) 
    385428            pjmedia_rtcp_xr_rx_rtp(&sess->xr_session, seq,  
     
    390433                                   -1, 0);                  /* toh     */ 
    391434#endif 
     435 
     436            /* Update session transit */ 
     437            sess->transit = transit; 
    392438        } 
    393439#if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0) 
Note: See TracChangeset for help on using the changeset viewer.