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

List:       helix-protocol-cvs
Subject:    [Protocol-cvs] rtsp rtspclnt.cpp,1.212,1.213
From:       rrajesh () helixcommunity ! org
Date:       2007-01-11 20:05:13
Message-ID: 200701112010.l0BKALVe002404 () dombackupmx2 ! xen ! 10east ! com
[Download RAW message or body]

Update of /cvsroot/protocol/rtsp
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv5889

Modified Files:
	rtspclnt.cpp 
Log Message:
"Nokia submits this code under the terms of a commercial contribution agreement with \
RealNetworks, and I am authorized to contribute this code under said agreement."

Modified by:  rajesh.rathinasamy@nokia.com 

Reviewed by: 

Date: 10-Jan-2007 

Project: SymbianMmf 

ErrorId:  EOVL-6XBTKL 

Synopsis:  CR: Fix for failure to switch to tcp transport when udp ports are blocked. \


Problem: All udp ports are blocked on the router or on server (used iptables on linux \
OS). When we try to stream a clip, the client first tries to establish RTSP \
connection and waits for UDP data. Since UDP ports were blocked there was UDP timeout \
should occur and the client should switch to next transport. Instead of transport \
switch, we say server timeout. The transport switch happens properly if the UDP \
timeout value is smaller than ServerTimeout value.

The current transport mode on rtspclnt.cpp is intialized to TCPMode. From what I \
understand, the current transport mode indicates the media transport protocol. \
Changes are based on this assumption. 

If the current transport is TCP or HTTPCloak,  RTSPClientProtocol::handleMessage \
(during 200 OK for OPTIONS) sets the lastPackettimestamp on RTSPProtocol. Setting \
this variable makes the server timeout handling active on RTSPProtocol::process. The \
current tarnsport changes to UDP mode after describe response and session setup. This \
change in mode will avoid any more update to the last packet received time on \
RTSPProtocol. And since there are no incoming UDP data because of port blocking, the \
server timeout fires on the RTSPProtocol.

As a change I have initialized the current transport mode on RTSPClientProtocol to \
unknownMode instead of TCPMode. 

Root Cause of the problem:  Implementation phase 
  
Files Modified: 
protocol/rtsp/rtspclnt.cpp 

Image Size and Heap Use impact: no major impact 

Module Release testing (STIF) :  Pass 

Test case(s) Added  :  No.  Reproduction of problem includes blocking of port on \
router 

Memory leak check performed : Yes.  No new leaks introduced.  

Platforms and Profiles Build Verified: helix-client-s60-32-mmf-mdf-arm 

Platforms and Profiles Functionality verified: armv5, winscw 

      Branch: Head & 210CayS 



Index: rtspclnt.cpp
===================================================================
RCS file: /cvsroot/protocol/rtsp/rtspclnt.cpp,v
retrieving revision 1.212
retrieving revision 1.213
diff -u -d -r1.212 -r1.213
--- rtspclnt.cpp	26 Dec 2006 12:10:36 -0000	1.212
+++ rtspclnt.cpp	11 Jan 2007 20:05:10 -0000	1.213
@@ -2373,7 +2373,7 @@
     m_cloakPort(0),
     m_pMutex(NULL),
     m_uProtocolType(0),
-    m_currentTransport(TCPMode),
+    m_currentTransport(UnknownMode),
     m_ulBufferDepth(BUFFER_DEPTH_UNDEFINED),
     m_bSplitterConsumer(FALSE),
     m_pPacketFilter(NULL),


_______________________________________________
Protocol-cvs mailing list
Protocol-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/protocol-cvs


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

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