summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/res_rtp_asterisk.c8
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;