summaryrefslogtreecommitdiff
path: root/main/rtp.c
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-02-07 17:46:42 +0000
committerRussell Bryant <russell@russellbryant.com>2007-02-07 17:46:42 +0000
commitdfb5ef7f55e974b7ffba297df371375eaeeaf82d (patch)
tree34d0f51686be46b950b45d9dd419879be8090299 /main/rtp.c
parent8513682d15870e5f3d4a97f348dcb2e28564903d (diff)
Merged revisions 53429 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r53429 | russell | 2007-02-07 11:39:31 -0600 (Wed, 07 Feb 2007) | 7 lines When parsing the NTP timestamp in a sender report message, you are supposed to take the low 16 bits of the integer part, and the high 16 bits of the fractional part. However, the code here was erroneously taking the low 16 bits of the fractional part. It then shifted the result 16 bits down, so the result was always zero. This fix makes it grab the appropriate high 16 bits, instead. (issue #8991, pointed out by andre_abrantes) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53431 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/rtp.c')
-rw-r--r--main/rtp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/main/rtp.c b/main/rtp.c
index 9e60f6ea2..ea4366702 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -966,7 +966,7 @@ struct ast_frame *ast_rtcp_read(struct ast_rtp *rtp)
gettimeofday(&rtp->rtcp->rxlsr,NULL); /* To be able to populate the dlsr */
rtp->rtcp->spc = ntohl(rtcpheader[i+3]);
rtp->rtcp->soc = ntohl(rtcpheader[i + 4]);
- rtp->rtcp->themrxlsr = ((ntohl(rtcpheader[i]) & 0x0000ffff) << 16) | ((ntohl(rtcpheader[i + 1]) & 0xffff) >> 16); /* Going to LSR in RR*/
+ rtp->rtcp->themrxlsr = ((ntohl(rtcpheader[i]) & 0x0000ffff) << 16) | ((ntohl(rtcpheader[i + 1]) & 0xffff0000) >> 16); /* Going to LSR in RR*/
if (rtcp_debug_test_addr(&sin)) {
ast_verbose("NTP timestamp: %lu.%010lu\n", (unsigned long) ntohl(rtcpheader[i]), (unsigned long) ntohl(rtcpheader[i + 1]) * 4096);