[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-server-cvs
Subject: [Server-cvs] engine/session/pub clientsession.h,1.7.2.19,1.7.2.20
From: jgordon () helixcommunity ! org
Date: 2007-08-31 1:34:01
Message-ID: 200708310134.l7V1YGjQ020237 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/server/engine/session/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv30846/session/pub
Modified Files:
Tag: SERVER_BORABORA
clientsession.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: clientsession.h
===================================================================
RCS file: /cvsroot/server/engine/session/pub/clientsession.h,v
retrieving revision 1.7.2.19
retrieving revision 1.7.2.20
diff -u -d -r1.7.2.19 -r1.7.2.20
--- clientsession.h 15 Aug 2007 21:31:49 -0000 1.7.2.19
+++ clientsession.h 31 Aug 2007 01:33:58 -0000 1.7.2.20
@@ -511,6 +511,9 @@
void GetStat(IUnknown* pFileObject);
void ConfigureSource();
+ void ClipDone();
+ void InitClipStats();
+
BOOL m_bBegun;
ULONG32 m_ulRefCount;
StreamInfo** m_ppStreams;
@@ -544,6 +547,9 @@
UINT16 m_uStreamSetupCount;
UINT32 m_ulMaxPreRoll;
+ UINT32 m_ulPlayTimeOffset;
+ UINT32 m_ulEndTime;
+ UINT32 m_ulSwitchCount;
//* represents the adaptation parameters
//* for aggregate rate adaptation
_______________________________________________
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