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

List:       helix-server-cvs
Subject:    [Server-cvs] protocol/http/pub httpprot.h,1.52,1.53
From:       ryuan () helixcommunity ! org
Date:       2011-12-24 3:46:55
[Download RAW message or body]

Update of /cvsroot/server/protocol/http/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv7947/pub

Modified Files:
	httpprot.h 
Log Message:
Synopsis:
=========
Fixes bug 269453 Unable to track iPhone disconnect time for use in a bookmarking URL

Branches: SERVER_14_3_RN and SERVER_CURRENT_RN (HEAD).
Reviewed By: Chytanya

Description:
============
For RTSP clients this can be done through the NPTEnd value passed through Session \
Manager however this is logged as 0 for iPhone disconnects. So the target is to set \
NPTEndTime for HLS.

My solution:
Unlike RTSP/RTMP, there is no Client Session object for HLS. But there is still a \
pClipStats object for each persistent http connection, so set the NPTEndTime in it. \
So I added two functions in HTTPProtocol, one is to get the clip duration, another is \
to set the NPTEndTime.

DetermineSegmentDuration(const char* pszURL, IHXRegistry* pReg) Searching \
MPEG2_Transport_Stream to get the corresponding mount point name of this ts URL, then \
searching the FSMount to get the duration of the mount point.

SetNPTEndTimeForHLS(IHXClipStats* pClipStats, const char* pszURL); Set NPT End Time

Files affected:
===============
server/protocol/http/httpproto.cpp
server/protocol/http/pub/httpproto.h

Testing Performed:
================
Unit Tests:
1. Use a templatized log, Use format to output NPTEndTime<Var \
FormatOnDisconnect="ClientIP:%Client.*.IPAddress%\nEndtime:%Client.*.Session.*.Clip.*.NPTEndTime%\nURL:%Client.*.Session.*.Clip.*.URL%\n\n"/>
 2. For HLS, it can output the corresponding NPTEndTime of the TS file.

Integration Tests:
None

Leak Tests: None
Performance Tests: N/A

Platforms Tested: win-x86_64-vc10
Builds Verified: win-x86_64-vc10

QA Hints
========
None.






Index: httpprot.h
===================================================================
RCS file: /cvsroot/server/protocol/http/pub/httpprot.h,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- httpprot.h	21 Nov 2011 02:59:45 -0000	1.52
+++ httpprot.h	24 Dec 2011 03:46:52 -0000	1.53
@@ -186,6 +186,8 @@
     void                    SetSocketTimeoutTS();
     void                    LogFinalTSRequest();
     HXBOOL                  IsM3ugenReq();
+    void                    DetermineSegmentDuration(const char* pszURL, \
IHXRegistry* pReg); +    void                    SetNPTEndTimeForHLS(IHXClipStats* \
pClipStats, const char* pszURL);  #endif
     void                    ByteRangeReset();
 
@@ -249,6 +251,7 @@
     IHXBuffer*              m_pReadBuffer;
     UINT32                  m_ulReadBufOffset; 
     IHXBuffer*              m_pGzipOutBuffer;
+    UINT32                  m_ulSegmentDuration; 
 #endif //HELIX_FEATURE_SERVER_MPEG2TS
 };
 


_______________________________________________
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