diff options
Diffstat (limited to 'res/res_rtp_asterisk.c')
-rw-r--r-- | res/res_rtp_asterisk.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index eb1d07d6c..d804d2cb0 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -137,7 +137,7 @@ struct ast_rtp { unsigned int txcount; /*!< How many packets have we sent? */ unsigned int txoctetcount; /*!< How many octets have we sent? (txcount*160)*/ unsigned int cycles; /*!< Shifted count of sequence number cycles */ - double rxjitter; /*!< Interarrival jitter at the moment */ + double rxjitter; /*!< Interarrival jitter at the moment in seconds */ double rxtransit; /*!< Relative transit time for previous packet */ struct ast_format lasttxformat; struct ast_format lastrxformat; @@ -900,6 +900,7 @@ static int ast_rtcp_write_rr(struct ast_rtp_instance *instance) char bdata[1024]; struct timeval dlsr; int fraction; + int rate = rtp_get_rate(&rtp->f.subclass.format); double rxlost_current; @@ -949,7 +950,7 @@ static int ast_rtcp_write_rr(struct ast_rtp_instance *instance) rtcpheader[2] = htonl(rtp->themssrc); rtcpheader[3] = htonl(((fraction & 0xff) << 24) | (lost & 0xffffff)); rtcpheader[4] = htonl((rtp->cycles) | ((rtp->lastrxseqno & 0xffff))); - rtcpheader[5] = htonl((unsigned int)(rtp->rxjitter * 65536.)); + rtcpheader[5] = htonl((unsigned int)(rtp->rxjitter * rate)); rtcpheader[6] = htonl(rtp->rtcp->themrxlsr); rtcpheader[7] = htonl((((dlsr.tv_sec * 1000) + (dlsr.tv_usec / 1000)) * 65536) / 1000); @@ -1003,6 +1004,7 @@ static int ast_rtcp_write_sr(struct ast_rtp_instance *instance) int fraction; struct timeval dlsr; char bdata[512]; + int rate = rtp_get_rate(&rtp->f.subclass.format); if (!rtp || !rtp->rtcp) return 0; @@ -1043,7 +1045,7 @@ static int ast_rtcp_write_sr(struct ast_rtp_instance *instance) rtcpheader[7] = htonl(rtp->themssrc); rtcpheader[8] = htonl(((fraction & 0xff) << 24) | (lost & 0xffffff)); rtcpheader[9] = htonl((rtp->cycles) | ((rtp->lastrxseqno & 0xffff))); - rtcpheader[10] = htonl((unsigned int)(rtp->rxjitter * 65536.)); + rtcpheader[10] = htonl((unsigned int)(rtp->rxjitter * rate)); rtcpheader[11] = htonl(rtp->rtcp->themrxlsr); rtcpheader[12] = htonl((((dlsr.tv_sec * 1000) + (dlsr.tv_usec / 1000)) * 65536) / 1000); len += 24; |