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

List:       helix-server-cvs
Subject:    [Server-cvs] admin/web/build/server config_bookmarking.html, 1.1, 1.1.2.1
From:       yijil () helixcommunity ! org
Date:       2012-02-15 7:55:27
[Download RAW message or body]

Update of /cvsroot/server/admin/web/build/server
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv2298/server/admin/web/build/server


Modified Files:
      Tag: SERVER_14_3
	config_bookmarking.html 
Log Message:
Committed to : SERVER_14_3 and SERVER_CURRENT_RN

Reviewed by : Chytanya

Synopsis:
=========
Fixes: Bug 270193: HLS: Bookmark Buffer defaults to 10 when not set (null) in Admin \
Page, Bug 270194: HLS: HLSBookmark buffer does not work when "start" value equal \
HLSBookmark buffer value and Bug 270195: HLS : HLSBookmark : If set \
start=999999999999, and the stream is multirate, the iPhone can`t playback.

Branch: SERVER_14_3_RN and SERVER_CURRENT_RN

Suggested Reviewers: Chytanya

Description:
============
1. Bug 270193: HLS: Bookmark Buffer defaults to 10 when not set (null) in Admin Page \
Root cause: In config_bookmarking.html, have bellow code to set the default value of \
HLS Bookmark Buffer to 10, so as RTMPBookmarkBuffer and RTSPBookmarkBuffer.

	new PropObj( 'HLSBookmarkBuffer', "10", false, false, null, null, "int", "HLS \
Bookmark Buffer" ),   new PropObj( 'RTMPBookmarkBuffer', "10", false, false, null, \
null, "int", "RTMP Bookmark Buffer" ),   new PropObj( 'RTSPBookmarkBuffer', "10", \
false, false, null, null, "int", "RTSP Bookmark Buffer" ), my solution is to change \
10 to 0.

2. Bug 270194: HLS: HLSBookmark buffer does not work when "start" value equal \
HLSBookmark buffer value Root cause: In M3U8Handler::M3U8Handler(...), execute bellow \
code to reset m_ulStartFrom.

     INT32 lValue = 0;
     if (HXR_OK == m_pProc->pc->registry->GetInt(HLS_BOOKMARK_BUFFER, &lValue, \
m_pProc))  {
         // adjust start time by buffer time
         m_ulStartFrom > lValue ? (m_ulStartFrom-=lValue) : 0;
     }

For the issue when "start" smaller than or equal to HLSBookmark buffer value, it does \
not work. The cause is when m_ulStartFrom < lValue, code " m_ulStartFrom > lValue ? \
(m_ulStartFrom-=lValue) : 0;" only execute "0", but not set the value of \
m_ulStartFrom.

My solution:
set the value of m_ulStartFrom to 0 when m_ulStartFrom <= lValue .

3. Bug 270195: HLS : HLSBookmark : If set start=999999999999, and the stream is \
multirate, the iPhone can`t playback. Root cause:
When start is set to a very large value like "999999999999" or set to a negative \
value like "-10", UINT32 m_ulStartFrom will be a very large number, it need to call \
bellow code to check whether it is larger than video duration.

//Using DatFile to check whether the value is out of the last segment CHXString \
strMDatFile( m_pPlaylistPath ); int  nPos = strMDatFile.ReverseFind( '.' ); if( nPos \
!= -1 ) {  strMDatFile = strMDatFile.Left( nPos + 1 );
   nPos = strMDatFile.ReverseFind('-');
   strMDatFile += HLS_MDAT_EXTENSION;
   DATFile datFile( (const char*)strMDatFile );
   if (datFile.ParseFile())
   {
      if( datFile.GetDuration() <= m_ulStartFrom )
      {
         bIsValid = FALSE;
      }
   }
}

When media is mutirate, then m_pPlaylistPath is like \
"Content\iPhone\iPhone-src\multi.mp4-20120214-144227\multi.mp4-20120214-144227-mr48k.m3u8" \
on windows or " Content/iPhone/iPhone-src/multirate1.mp4-20120214-161406/ \
multirate1.mp4-20120214-161406-mr48k.m3u8" on linux/solaris.  So before " DATFile \
datFile( (const char*)strMDatFile );", strMdatFile is \
"Content\iPhone\iPhone-src\multi.mp4-20120214-144227\multi.mp4-20120214-144227-mr48k.mdat" \
on windows or " Content/iPhone/iPhone-src/multirate1.mp4-20120214-161406/ \
multirate1.mp4-20120214-161406-mr48k.mdat" on linux/solaris. But in folder \
"multirate1.mp4-20120214-161406", there is no ".mdat" file, so "datFile.ParseFile()" \
failed.

My solution:
When mutirate, let "strMDatFile" point to ".mdat" file in the parent folder. 

Files affected:
===============
server/admin/web/build/mserver/config_bookmarking.html
server/admin/web/src/srvprxy/config_bookmarking.html.wasm
server/admin/web/build/server/config_bookmarking.html
server-restricted/protocol/http/m3u8hdlr.cpp

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

Integration Tests:
1. Bug 270193: HLS: Bookmark Buffer defaults to 10 when not set (null) in Admin Page
    1). Do not define HLSbookmark buffer in admin page.
    2). Restart the server
    Result
    The admin page show HLSbookmark buffer value is 0 2. Bug 270194: HLS: HLSBookmark \
buffer does not work when "start" value equal HLSBookmark buffer value  1)Set \
HLSBookmarkBuffer to 30 like bellow.  <Var HLSBookmarkBuffer="30"/>
    2)set start to 20 and 30
    3)Using HLS to play multi/single rate video
    Result:
    Video can play from first clip.
3. Bug 270195: HLS : HLSBookmark : If set start=999999999999, and the stream is \
multirate, the iPhone can`t playback  1)Set HLSBookmarkBuffer to 30 like bellow.
      <Var HLSBookmarkBuffer="30"/>
   2) set start=999999999999 and start=-10
   3) using HLS to play multi video
   Result:
   Video can play from first clip

Platforms Tested: CentOs64

Builds Verified: CentOs64

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



Index: config_bookmarking.html
===================================================================
RCS file: /cvsroot/server/admin/web/build/server/config_bookmarking.html,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -d -r1.1 -r1.1.2.1
--- config_bookmarking.html	2 Nov 2011 09:15:48 -0000	1.1
+++ config_bookmarking.html	15 Feb 2012 07:55:23 -0000	1.1.2.1
@@ -38,9 +38,9 @@
 var propSet =
 [
 	new PropObj( 'BookmarkName', "start", false, false, null, null, "url", "Bookmark \
                Name" ), 
-	new PropObj( 'HLSBookmarkBuffer', "10", false, false, null, null, "int", "HLS \
                Bookmark Buffer" ), 
-	new PropObj( 'RTMPBookmarkBuffer', "10", false, false, null, null, "int", "RTMP \
                Bookmark Buffer" ), 
-	new PropObj( 'RTSPBookmarkBuffer', "10", false, false, null, null, "int", "RTSP \
Bookmark Buffer" ),  +	new PropObj( 'HLSBookmarkBuffer', "0", false, false, null, \
null, "int", "HLS Bookmark Buffer" ),  +	new PropObj( 'RTMPBookmarkBuffer', "0", \
false, false, null, null, "int", "RTMP Bookmark Buffer" ),  +	new PropObj( \
'RTSPBookmarkBuffer', "0", false, false, null, null, "int", "RTSP Bookmark Buffer" ), \
  ];
 
 function BookmarkPropView()


_______________________________________________
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