List Info

Thread: CR : OVIL-7DPT56 : Helix fails to reconnect to WLAN AP




CR : OVIL-7DPT56 : Helix fails to reconnect to WLAN AP
user name
2008-04-29 16:38:05

        "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:  ext-Ashwinkumar.1.Nadagoudarnokia.com
         
        Reviewed by:
         
        Date: 04/28/2008
         
        Project: SymbianMmf
         
        ErrorId:  OVIL-7DPT56
         
        Synopsis: Helix fails to reconnect to WLAN AP

        Scenario:
        Walk out of WLAN coverage while streaming, wait for the reconnection query. Go back to WLAN coverage area. Select reconnection. Audio and Video are not regained but Media player still shows playback progress.

        Root Cause of the problem:
        New Helix client is initialized after reconnecting to the WLAN. But there are network buffered packets still coming from the old session along with the new packets to the same ip address( of the client) and to the same UDP port.

        So both new and old packets are getting mixed. This is causing the problem

        Solution:

        Choose the UDP port dynamically between the specified range so that after reconnecting to the WLAN , server sends all the new packets to the new port. ;

        Files Modified:
           ;     protocolrtsprtspclnt.cpp

        Files Added: None
         
        Image Size and Heap Use impact: None

        Module Release testing (STIF) : Done.

        Test case(s) Added ; :  N/A
         
        Memory leak check performed : yes. No leak.

        Platforms and Profiles Build Verified: helix-client-s60-50-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.182.2.26
diff -w -u -b -r1.182.2.26 rtspclnt.cpp
--- rtspclnt.cpp        7 Mar 2008 20:23:17 -0000 ;      1.182.2.26
+++ rtspclnt.cpp        29 Apr 2008 18:57:37 -0000
-5629,18 +5629,24
           ;          continue;
           ;      }
 
- &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; for (datagramPort = pUDPPort-&gt;uFrom; datagramPort <= pUDPPort-&gt;uTo; datagramPort += 2)
- &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; {
+ &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;  datagramPort = (( UINT16 )HX_GET_TICKCOUNT() % (pUDPPort->uTo - pUDPPort-&gt;uFrom)) + pUDPPort-&gt;uFrom ;

 
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  if (datagramPort % 2)
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  {
- &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  datagramPort = (UINT16)(datagramPort + 1);
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   datagramPort = (datagramPort + 1);
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  }
 
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; for (UINT16 temp = 0; temp < (pUDPPort->uTo - pUDPPort-&gt;uFrom) ; temp += 2, datagramPort += 2)
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; {
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  if ((pUDPPort->uTo - datagramPort + 1) < 2)
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  {
- &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  break;
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;    &nbsp;  &nbsp; &nbsp; &nbsp;  datagramPort = pUDPPort-&gt;uFrom ;
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;    &nbsp;  &nbsp; &nbsp; &nbsp;  if (datagramPort % 2)
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;    &nbsp;  &nbsp; &nbsp; &nbsp;  {
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;    &nbsp;  &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;   &nbsp; &nbsp; &nbsp;  datagramPort = (datagramPort + 1);
+ &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;    &nbsp;  &nbsp; &nbsp; &nbsp;  }
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  }
+
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  HXLOGL3(HXLOG_RTSP, "RTSPClientProtocol[%p]::InitSockets(): trying %lu...&quot;, this, datagramPort);
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  if (HXR_OK == CreateUDPSockets(pStreamInfo->;m_streamNumber, pStreamInfo->m_ulAvgBitRate, datagramPort))

 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  {

        -Ashwin

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )