[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-protocol-cvs
Subject:    [Protocol-cvs] transport/rtp rtptran.cpp,1.47.2.20,1.47.2.21
From:       jrmoore () helixcommunity ! org
Date:       2006-01-21 1:53:28
[Download RAW message or body]

Update of /cvsroot/protocol/transport/rtp
In directory cvs:/tmp/cvs-serv18059

Modified Files:
      Tag: SERVER_10_1_STABLE
	rtptran.cpp 
Log Message:
Synopsis
========
RTP live packet losses not logged in custom log
Fix for: https://bugs.dev.prognet.com/show_bug.cgi?id=156159

Branches:  SERVER_10_1

Reviewers: skharkar

Description
===========
Live packet losses don't get reported. Also estimates of RTT and
received throughput are missed.

Solution: ReportHandler ssrc's are created for on-demand and so they
always match as expected for OnDemand or SLTA live. For encoder-based live,
we need to compare ReflectionHandler ssrc's instead.

Files Affected
==============
Modified:

protocol/transport/rtp/rtptran.cpp
protocol/transport/rtp/pub/rtcputil.h

Testing Performed
=================

Unit Tests: Tested that server runs.
Integration Tests: Tested on-demand, SLTA and live with packet-loss created
by unplugging the ethernet cable and verifying that packet-loss is logged.
Leak Tests: n/a
Performance Tests: n/a
Platforms Tested: sunos-5.8.solaris-server
Build verified:  linux-2.2-libc6-i586-server, sunos-5.8.solaris-server

QA Hints
===============
None


Index: rtptran.cpp
===================================================================
RCS file: /cvsroot/protocol/transport/rtp/rtptran.cpp,v
retrieving revision 1.47.2.20
retrieving revision 1.47.2.21
diff -u -d -r1.47.2.20 -r1.47.2.21
--- rtptran.cpp	19 Jan 2006 05:15:16 -0000	1.47.2.20
+++ rtptran.cpp	21 Jan 2006 01:53:26 -0000	1.47.2.21
@@ -2915,7 +2915,11 @@
 		{
 		    for (UINT32 i = 0; i < pPkt->count; i++)
 		    {
-			if (pPkt->rr_data[i].ssrc == m_pReportHandler->GetSSRC())
+                        // For RTP live we need to check the ReflectionHandler
+                        if ((m_pDataTransport && m_pDataTransport->m_ulPayloadWirePacket && 
+                            m_pDataTransport->m_pReflectionHandler &&
+			    pPkt->rr_data[i].ssrc == m_pDataTransport->m_pReflectionHandler->GetSSRC()) ||
+			    (pPkt->rr_data[i].ssrc == m_pReportHandler->GetSSRC()))
 			{
 			    pTmp->SetSize(sizeof(ReceptionReport));
 			    ReceptionReport* pRR = (ReceptionReport*)pTmp->GetBuffer();



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic