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

List:       helix-server-cvs
Subject:    [Server-cvs] engine/inputsource ppmstaticshim.cpp, 1.14.2.4,
From:       dsingh () helixcommunity ! org
Date:       2007-12-28 9:52:44
Message-ID: 200712280952.lBS9qpIs027473 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/engine/inputsource
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv4808

Modified Files:
      Tag: SERVER_12
	ppmstaticshim.cpp 
Log Message:
Synopsis
========
Fix for
Bug 210311: CA and playback stops or rebuffer and no resume about half the time \
switching from OD to live

Branches: SEREVR_12_RN , HEAD.
Suggested Reviewer: Jamie Gordon, JJ Zeng.

Description
===========
There are two problems in this bug.
1). The player rebuffers, "Communicating..."
 This is due to when we switch to live and if the first frame that is comming from \
new source is not a key frame, we are returning  error from function
 BasePacketShim::AdjustTimeStamp()
 at cndition
        if(!(pPacket->GetASMFlags() & HX_ASM_SWITCH_ON))
        {
            return NULL;
        } 
 
 So this condition is handled properly by calling GetPacket().


2). The server CAs and the playback stops
 This is happening because of function ConfigureSourceFCSSpecific() being called from \
  ClientSession::SwitchDone().
 This function should not get called for switch to live. So call restricted for only \
PPM OD. 

Files Affected
==============
/server/engine/inpusource/ppmstaticshim.cpp
/server/engine/inpusource/base_shim.cpp
/server/engine/session/clientsession.cpp

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

Unit Tests:
-None

Integration Tests:
-Some basic testing is done on windows build, no "communicating.." is observed on \
player. Let the QA come with full testing.

Leak Tests:
-None

Performance Tests:
-None

Platforms Tested: win32-i386-vc7
Build verified: win32-i386-vc7

QA Hints
===============
-This should also improve the playback quality after switch.




Index: ppmstaticshim.cpp
===================================================================
RCS file: /cvsroot/server/engine/inputsource/ppmstaticshim.cpp,v
retrieving revision 1.14.2.4
retrieving revision 1.14.2.5
diff -u -d -r1.14.2.4 -r1.14.2.5
--- ppmstaticshim.cpp	26 Dec 2007 22:12:26 -0000	1.14.2.4
+++ ppmstaticshim.cpp	28 Dec 2007 09:52:41 -0000	1.14.2.5
@@ -211,6 +211,18 @@
         UINT32 ulRTPCurTS = 0;
         HX_RESULT ulRet = HXR_OK;
 
+        if (pPacket != NULL)
+        {
+            UINT16 unStreamNumber = pPacket->GetStreamNumber();
+            if(m_pStreamInfo[unStreamNumber].uNewclip)
+            {
+                if(!(pPacket->GetASMFlags() & HX_ASM_SWITCH_ON))
+                {
+                    GetPacket(unStreamNumber);
+                    return HXR_OK;
+                }
+            }
+        }
         pBuffer = ParsePacket(pPacket, ulRTPCurTS);
         
         if (m_bWirePayload && pBuffer)


_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs


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

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