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

List:       helix-server-cvs
Subject:    [Server-cvs] fs/sdpgenfsys sdpgenfobj.cpp,1.17,1.18
From:       svaidhya () helixcommunity ! org
Date:       2009-04-30 18:39:42
Message-ID: 200904301942.n3UJgwdK015712 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/fs/sdpgenfsys
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv23016

Modified Files:
	sdpgenfobj.cpp 
Log Message:
Synopsis
========

PR 235195: Playing a .hpl file (of total duration 270 secs) with sdpgen and SSPL \
params is shown as on-demand with incorrect duration (50 secs) on client

Should also solve PR 236142

Branches:  SERVER_CURRENT, SERVER_12_1
Suggested Reviewer(s): Jamie, JJ

Description
===========
There were 2 issues with this PR.

1. The .hpl file with 270sec duration with hpl and guid (i.e Switchable) shows as \
OnDemand with incorrect Duration 2. The .hpl file with 270sec duration WITHOUT hpl \
and guid (i.e NON Switchable) shows as OnDemand with incorrect Duration

The first issue was because the way in which Switchable Playlists was determined was \
totally wrong. Really weird how the developer even came up with using the FCSUtil to \
determine if the SSPL stream was  Switchable or Not! (The Developer being me though! \
:P)

So fixed that to correctly determine switchable playlists/Live Appearing playlists as \
one with hpl and guid.

The Second issue was really tricky!

With the sdpgen, the server sent out the SDP of the requested stream with the correct \
duration i.e the duration of the whole playlist in case of .hpl files, but the \
EndTime in each media was still the endtime of the fiest clip of the .hpl file.

And our player uses this "EndTime" (leaving aside the range, length fields) and sent \
it as the range in play request!!

Fix- Enter the duration of playlist files in the EndTime field.


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

./server/fs/sdpmdgen/sdpgenfileobj.cpp
./protocol/sdp/sdpmdgen.cpp


Testing Performed
=================
Unit Tests:
-None

Integration Tests:
- Verified the following
 1. A Live-Appearing Playlist is successfully played till the end with sdpgen
 2. An OnDemand-Appearing Playlist is successfully played till the end with sdpgen
 3. A normal single clip play fine.

  Repeat all 3 tests with rtsp request

Leak Tests:
- None

Performance Tests:
None.
inu
Platforms Tested: : win32-i386-vc7
Build verified: win32-i386-vc7 , linux-rhel4-i686



Index: sdpgenfobj.cpp
===================================================================
RCS file: /cvsroot/server/fs/sdpgenfsys/sdpgenfobj.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- sdpgenfobj.cpp	17 Nov 2008 21:50:18 -0000	1.17
+++ sdpgenfobj.cpp	30 Apr 2009 18:39:40 -0000	1.18
@@ -782,18 +782,15 @@
         {
             HXBOOL bSwitchablePL = FALSE;
 
-#ifdef HELIX_FEATURE_SERVER_FCS
-            FCSUtil fcsConfig(m_pContext);
+            SSPLUtil ssplRequestCheck(m_pContext);
             const char* pURL = NULL;
             m_pRequest->GetURL(pURL);
-            if (fcsConfig.IsFCSRequest(pURL, HTTPMessage::T_GET) && \
                fcsConfig.VerifyFCSLicense())
-            {
-                bSwitchablePL = TRUE;
-            }
-#endif /* HELIX_FEATURE_SERVER_FCS */
 
+            bSwitchablePL = ssplRequestCheck.CheckRequestParams(pURL, \
HTTPMessage::T_GET)  +                                                && \
ssplRequestCheck.VerifySSPLSeekLicense();  ULONG32 ulPLDur = \
                m_pPlaylistHandler->GetPLDuration();   
-            if(ulPLDur > 0) //Set Duration in all streams
+                
+            if(!bSwitchablePL && ulPLDur > 0) //Set Duration in all streams
             {
                 UINT16 nCount = (UINT16)(m_pFileInfo->m_ulStreamCount + 2);
                 for (UINT16 i = 2; i < nCount; i++ )
@@ -801,7 +798,7 @@
                     ppSDPHeaders[i]->SetPropertyULONG32("Duration", ulPLDur);
                 }
             }
-            else //It is Live PL
+            else //It is Live Appearing PL 
             {
                 ppSDPHeaders[1]->SetPropertyULONG32("OpenDuration", 1);
         }


_______________________________________________
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