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

List:       helix-server-cvs
Subject:    [Server-cvs] engine/dataflow/pub basicpcktflow.h, 1.25, 1.26 ppm.h,
From:       jgordon () helixcommunity ! org
Date:       2007-08-31 1:32:35
Message-ID: 200708310132.l7V1WouZ028204 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/engine/dataflow/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv30729/dataflow/pub

Modified Files:
	basicpcktflow.h ppm.h 
Log Message:
Synopsis
========
Fixes PR 201655 (clip PlayTime not updated after first clip) and
some other clip stats reporting problems

Branches: SERVER_BORABORA, HEAD (SERVER_CURRENT)
Reviewer: seansmith


Description
===========
This fixes a few issues that I was not really able to separate into
separate diffs

SwitchCount:
SwitchCount was beginning with 1 rather than 0 and not being
incremented for the last clip in a session. This is because it
is a Session level stat but is actually a clip stat, and the log
callback was occurring after the stat had been updated for the
next clip. Also it was only updated in Switch but not on End.


PlayTime:
PPM and BasicPacketflow were getting the first ClipStats object
from the session and storing it as a member, and then updating
that ClipStats PlayTime. This does not work since it will just
always be holding onto the first clip stats object rather than
updating the correct one. Packet flows are not aware of switch
state and should only be in charge of session level stats.

The fix here is to simply update the clip's PlayTime based on
the overall session PlayTime whenever a clip ends.


Various:
Moved clip stats create/init and close/release to ClientSession
methods that can be called at start/end and switch, in order to
avoid duplicate code in both places and bugs with values being
set in only one.


Files Affected
==============
common/include/hxstats.h
server/log/tmplgpln/base_log.cpp
server/log/tmplgpln/legacy_access_log.h
server/engine/context/server_stats.cpp
server/engine/context/pub/server_stats.h
server/engine/dataflow/basicpcktflow.cpp
server/engine/dataflow/ppm.cpp
server/engine/dataflow/pub/basicpcktflow.h
server/engine/dataflow/pub/ppm.h
server/engine/session/clientsession.cpp
server/engine/session/pub/clientsession.h


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

Integration Tests:
Verified PlayTime, SwitchCount, FinalSwitch are all correct for:
* Normal non-switchable straming
* Switchable stream with no switches
* Normal Switch
* Delayed Switch
* Stream stopped by user
* Stream played out to end

Leak Tests:
None

Performance Tests:
None

Platforms Tested: linux-rhel4-i686
Build verified: linux-rhel4-i686, win32-i386-vc7, sunos-5.10-sparc-server


QA Hints
===============

n/a


Index: basicpcktflow.h
===================================================================
RCS file: /cvsroot/server/engine/dataflow/pub/basicpcktflow.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- basicpcktflow.h	6 Aug 2007 22:09:16 -0000	1.25
+++ basicpcktflow.h	31 Aug 2007 01:32:32 -0000	1.26
@@ -247,7 +247,6 @@
     BOOL                    m_bSessionPlaying;
     BOOL                    m_bDeliveryBandwidthSet;
     IHXSessionStats*        m_pStats;
-    IHXClipStats*           m_pClipStats;
 
     // PlayTime tracking.  Declare as Timeval so we can do math with them.
 

Index: ppm.h
===================================================================
RCS file: /cvsroot/server/engine/dataflow/pub/ppm.h,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- ppm.h	18 Aug 2007 00:21:12 -0000	1.46
+++ ppm.h	31 Aug 2007 01:32:32 -0000	1.47
@@ -403,7 +403,6 @@
     Client*             m_pClient;
     IHXBuffer*          m_pPlayerSessionId;
     IHXSessionStats*    m_pSessionStats;
-    IHXClipStats*       m_pClipStats;
     IHXSessionStats2*   m_pSessionStats2;
     BOOL                m_bSeekPacketPending;
     BOOL                m_bSessionPlaying;


_______________________________________________
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