dect
/
asterisk
Archived
13
0
Fork 0

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: http://svn.digium.com/svn/asterisk/trunk@53431 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
russell 2007-02-07 17:46:42 +00:00
parent 879c4e8cff
commit 3b679d120a
1 changed files with 1 additions and 1 deletions

View File

@ -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);