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

List:       helix-server-cvs
Subject:    [Server-cvs] engine/session clientsession.cpp, 1.72.2.41.2.5,
From:       jzeng () helixcommunity ! org
Date:       2008-08-19 23:26:45
Message-ID: 200808192330.m7JNUNlx031375 () mailer ! progressive-comp ! com
[Download RAW message or body]

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


Modified Files:
      Tag: SERVER_12_1
	clientsession.cpp 
Log Message:
Synopsis
========
SSPL -- initial playback
Branches:  head, server_12_1
Suggested Reviewer: Srinivas, Jamie

Description
===========

This is the changes needed for initial playback.  Including:

1. add a member variable to BaseShim to identify sspl.

2. Change the header "IsFCSSession" to "OpenDuration" to fit both fcs and sspl.

3. In crtspbase.cpp, add checking for sspl.

4. In clientsession, add code for sspl processing.

Because of of time restriction that I need to wrap this up last week, I didn't do a \
lot of testing.  I will come back to this in a week and do more testing.

Files Affected
==============

server/engine/inputsource/base_shim.cpp,v
server/engine/inputsource/mdpshim.cpp,v
server/engine/inputsource/ppmstaticshim.cpp,v
server/engine/inputsource/pub/base_shim.h,v
server/engine/inputsource/pub/mdpshim.h,v
server/engine/inputsource/pub/ppmstaticshim.h,v
server/engine/session/clientsession.cpp,v
server/engine/session/pub/clientsession.h,v
server/fs/sdpgenfsys/sdpgenfobj.cpp,v
server/protocol/rtsp/Umakefil,v
server/protocol/rtsp/crtspbase.cpp,v
server-restricted/datatype/playlist/playlist_control.cpp,v
server-restricted/datatype/playlist/pub/playlist_control.h,v
server-restricted/protocol/http-ctrl/ssplutil.cpp,v
server-restricted/protocol/http-ctrl/pub/ssplutil.h,v
protocol/sdp/sdpmdgen.cpp,v

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

Unit Tests:
None.

Integration Tests:
Test rm and 3gp static clips. 

Leak Tests:
None.

Performance Tests:
- None

Platforms Tested: win32
Build verified: win32




Index: clientsession.cpp
===================================================================
RCS file: /cvsroot/server/engine/session/clientsession.cpp,v
retrieving revision 1.72.2.41.2.5
retrieving revision 1.72.2.41.2.6
diff -u -d -r1.72.2.41.2.5 -r1.72.2.41.2.6
--- clientsession.cpp	7 Aug 2008 19:19:59 -0000	1.72.2.41.2.5
+++ clientsession.cpp	19 Aug 2008 23:26:43 -0000	1.72.2.41.2.6
@@ -212,6 +212,7 @@
 #ifdef HELIX_FEATURE_SERVER_SSPL
       , m_pPlaylistControl(NULL)
       , m_bGettingFirstClip(FALSE)
+      , m_bSeekforPlaylist(FALSE)
 #endif // HELIX_FEATURE_SERVER_SSPL
 {
     m_pClient->AddRef();
@@ -866,7 +867,7 @@
     if (FAILED(pRealheader->GetPropertyULONG32("StreamGroupCount",
                         ulStreamGroupCount)))
     {
-    ulStreamGroupCount = ulStreamCount;
+        ulStreamGroupCount = ulStreamCount;
     }
 
     if (m_ppStreams == NULL)
@@ -1566,6 +1567,17 @@
     {
         return HXR_OK;
     }
+#ifdef HELIX_FEATURE_SERVER_SSPL
+    if(m_bSeekforPlaylist)
+    {
+        m_bSeekforPlaylist = FALSE;
+        if(m_pPlaylistControl)
+        {
+            m_pPlaylistControl->SeekDone();
+        }
+        return HXR_OK;
+    }
+#endif //HELIX_FEATURE_SERVER_SSPL
 
     // Entered
     ++m_ulFunctionsInUse;
@@ -2557,6 +2569,17 @@
 void
 ClientSession::begin()
 {
+#ifdef HELIX_FEATURE_SERVER_SSPL
+    if(m_bIsPlaylist && m_pPlaylistControl)
+    {
+        if(m_pPlaylistControl->OnBegin() == HXR_SEEK_PENDING)
+        {
+            //will return to this routine after seek is done
+            return;
+        }
+    }
+#endif //HELIX_FEATURE_SERVER_SSPL
+
     // Entered
     ++m_ulFunctionsInUse;
 
@@ -3041,7 +3064,8 @@
                                                           m_pCommonClassFactory,
                                                           m_ppStreams,
                                                           m_bIsRealDataType,
-                                                          m_num_streams);
+                                                          m_num_streams,
+                                                          m_bIsPlaylist);
         HX_RELEASE(pReg);
 
         m_pClient->m_pPacketFlowWrap->RegisterSource((IUnknown*)(IHXPSourcePackets*)m_pPacketShim,
 @@ -4031,6 +4055,7 @@
     AllowanceMgr* pMgr = NULL;
     IHXURL* pSourceURL = NULL;
     ServerRequest* pRequest = NULL;
+    const char* pUrl = 0;
 
     pSourceURL = m_url;
     pSourceURL->AddRef();
@@ -4068,10 +4093,11 @@
 
         case AllowanceSerializer::allow_playback:
  #ifdef HELIX_FEATURE_SERVER_SSPL
-            if(SSPLUtil::IsSSPLURL(pRequest))
+            pRequest->GetURL(pUrl);
+            if(SSPLUtil::IsSSPLURL(pUrl))
             {
-            m_pPlaylistControl = new CPlaylistControl(this, \
                m_pProc->pc->server_context);
-            m_pPlaylistControl->AddRef();
+                m_pPlaylistControl = new CPlaylistControl(this, \
m_pProc->pc->server_context); +                m_pPlaylistControl->AddRef();
 
                 ServerRequestWrapper* pWrapper = NULL;
                 pWrapper = new ServerRequestWrapper(FS_HEADERS, pRequest);
@@ -6985,4 +7011,19 @@
     return HXR_OK;
 }
 
+HX_RESULT ClientSession::SeekForPlaylist(UINT32 ulOffset)
+{
+    m_bSeekforPlaylist = TRUE;
+    return m_pSourceControl->Seek(ulOffset);
+}
+
+UINT32 ClientSession::GetDuration()
+{
+    if(m_pPlaylistControl)
+    {
+        return m_pPlaylistControl->GetDuration();
+    }
+    return 0;
+}
+
 #endif // HELIX_FEATURE_SERVER_SSPL


_______________________________________________
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