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

List:       helix-filesystem-dev
Subject:    RE: [Filesystem-dev] CR: provide the interface to open different
From:       Henry Xing <hxing () real ! com>
Date:       2011-07-08 11:17:02
Message-ID: 7ECCEA249B7CDC49A079EC0075E999AA082C28BD03 () SEAMBX ! corp ! real ! com
[Download RAW message or body]

Thanks!
Checked into 310 361 and head
henry
________________________________
From: Qiang Luo
Sent: Friday, July 08, 2011 4:33 PM
To: Henry Xing
Cc: common-dev@helixcommunity.org; filesystem-dev@helixcommunity.org
Subject: Re: [Filesystem-dev] CR: provide the interface to open different url with \
one file object

Looks good.

Please merge to the head and 310 branches.

Qiang

On 7/8/2011 12:30 AM, Henry Xing wrote:
Udpate the patch follow qiang's advice.
henry
________________________________
From: Qiang Luo
Sent: Friday, July 08, 2011 12:51 PM
To: Henry Xing
Cc: common-dev@helixcommunity.org<mailto:common-dev@helixcommunity.org>; \
                filesystem-dev@helixcommunity.org<mailto:filesystem-dev@helixcommunity.org>
                
Subject: Re: [Filesystem-dev] CR: provide the interface to open different url with \
one file object

Henry,

The Reset() indicates that the client is done with the current remote file.  It wants \
to reuse the file object's socket resource for the next file on the same host/port.  \
I still think it is best to not send the response with error codes.  All client needs \
to do is to clear all pending states before calling Reset().  Otherwise, if the \
client get callback such as m_pFileResponse->InitDone(HXR_FAILED), the client must \
have code to determine such error is due to the Reset() call or it is a actual \
filesystem error.

You may keep the callbacks if you want.  In practice,  it shouldn't matter one way or \
the other since we are calling Reset() to prepare for the next file with no pending \
request on the previous file.

Qiang

On 7/7/2011 8:54 PM, Henry Xing wrote:
Qiang
   For Reset() function,  it was designed to  set the variable in class to the \
initialization value,  not to prepare to close player,  so I think if the action is \
pending  it need to invoke this callbacks.  Because have no restriction when to \
invoke reset(),  I wonder some errors will happen in the http file object caller if \
we do not invoke this callback function, affect the normal playing.  If the seek \
action was executed when reading data from http file object,  in http live fileformat \
invoke fileobject's reset() function,  if no readdone to file format,  the file \
format will pend in read state.  If do not this callback ,  we need the caller do \
more works before do reset function except for closure will happen.  henry
________________________________
From: Qiang Luo
Sent: Friday, July 08, 2011 11:05 AM
To: Henry Xing
Cc: common-dev@helixcommunity.org<mailto:common-dev@helixcommunity.org>; \
                filesystem-dev@helixcommunity.org<mailto:filesystem-dev@helixcommunity.org>
                
Subject: Re: [Filesystem-dev] CR: provide the interface to open different url with \
one file object

Henry,

In the ::Reset() function:





+    while (m_PendingReadList.GetCount())

+    {

+        m_PendingReadList.RemoveHead();

+        HX_UNLOCK(m_pMutex);

+        m_pFileResponse->ReadDone(HXR_CANCELLED, NULL);

+        HX_LOCK(m_pMutex);

+    }





+    if (m_bMimeResponsePending && m_pMimeMapperResponse)

+    {

+        m_bMimeResponsePending = FALSE;

+        m_pMimeMapperResponse->MimeTypeFound(HXR_FAIL, NULL);

+        HX_RELEASE(m_pMimeMapperResponse);

+    }

+    if (m_bFileExistsResponsePending && m_pFileExistsResponse)

+    {

+        m_bFileExistsResponsePending = FALSE;

+        m_pFileExistsResponse->DoesExistDone(FALSE);

+        HX_RELEASE(m_pFileExistsResponse);

+    }

+    if(m_bStatPending && m_pFileStatResponse)

+    {

+        m_bStatPending = FALSE;

+        m_pFileStatResponse->StatDone(HXR_FAIL,0, 0, 0, 0, 0);

+        HX_RELEASE(m_pFileStatResponse);

+    }

+    if (m_bInitResponsePending && m_pFileResponse)

+    {

+        m_bInitResponsePending = FALSE;

+        m_pFileResponse->InitDone(HXR_FAILED);

+    }
is there any restrictions on when Reset() can be called?  Normally when the client \
calls Close()/Reset(), its intention is clear: it is done with the object.  The \
client doesn't expect any more callbacks via the response.  You may consider not send \
any HXR_FAIL/HXR_CANCELLED/FALSE responses.

The rest looks good!  This feature is going to be essential in improving the \
performance of the http adaptive rate streaming applications where we need to \
download many small fragment/segment files.  The ability to reuse the socket can save \
us the resolver-look-up and a few client/server round trips per fragment file.

Please merge to the head and 310 branches.

Thanks,
Qiang

On 7/7/2011 7:23 PM, Henry Xing wrote:
Modified by: hxing@real.com<mailto:hxing@real.com>
Project: HLS for LGE bryce

Synopsis: update to reuse socket(file object) to download ts file and playlist file
Overview:
  Currently http file object only provide the interface open/read/seek the url input \
when object initialization. When fileformat want to open another url for reading \
data,  need create a new file object to download this new file. it have the influence \
to performance when the number of files increase.  This update provide two motheds \
for reuse this file object to download different url.  test it on 361branch and 8x55 \
chipset

Files Modified:
common/include/hxiids.h
common/include/hxfiles.h
filesystem/http/httpfsys.h
filesystem/http/httpfsys.cpp
Platforms and Profiles Affected:

Platform: hxclient_3_6_1_atlas

Profile: helix-client-android-full

Copyright assignment: I am a RealNetworks employee or contractor

Best Regards

Henry hhsing


[Attachment #3 (text/html)]

<html xmlns:v="urn:schemas-microsoft-com:vml" \
xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:st1="urn:schemas-microsoft-com:office:smarttags" \
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:"Times New\000D\000A              Roman";
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Times New Roman \;";
	panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	text-align:justify;
	text-justify:inter-ideograph;
	font-size:10.5pt;
	font-family:"Times New Roman";
	color:black;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
pre
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	color:black;}
span.EmailStyle18
	{mso-style-type:personal;
	font-family:Arial;
	color:windowtext;}
span.EmailStyle19
	{mso-style-type:personal;
	font-family:Arial;
	color:navy;}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:Arial;
	color:navy;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:Arial;
	color:navy;}
@page Section1
	{size:595.3pt 841.9pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	layout-grid:15.6pt;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=ZH-CN link=blue vlink=purple>

<div class=Section1 style='layout-grid:15.6pt'>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>Thanks!<o:p></o:p></span></font></p>


<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>Checked into 310 361 and
head<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>henry<o:p></o:p></span></font></p>


<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
color=black face="Times New Roman"><span lang=EN-US style='font-size:12.0pt;
color:windowtext'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal align=left style='text-align:left'><b><font size=2
color=black face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:
Tahoma;color:windowtext;font-weight:bold'>From:</span></font></b><font size=2
color=black face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:
Tahoma;color:windowtext'> Qiang Luo <br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, July 08, 2011 4:33
PM<br>
<b><span style='font-weight:bold'>To:</span></b> Henry Xing<br>
<b><span style='font-weight:bold'>Cc:</span></b> <st1:PersonName \
w:st="on">common-dev@helixcommunity.org</st1:PersonName>; <st1:PersonName \
w:st="on">filesystem-dev@helixcommunity.org</st1:PersonName><br> <b><span \
style='font-weight:bold'>Subject:</span></b> Re: [Filesystem-dev] CR: provide the \
interface to open different url with one file object</span></font><font size=3 \
color=black><span lang=EN-US \
style='font-size:12.0pt;color:windowtext'><o:p></o:p></span></font></p>

</div>

<p class=MsoNormal align=left style='text-align:left'><font size=2 color=black
face="Times New Roman"><span lang=EN-US \
style='font-size:10.5pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black face="Times New Roman"><span
lang=EN-US style='font-size:10.5pt'>Looks good.<br>
<br>
Please merge to the head and 310 branches.<br>
<br>
Qiang<br>
<br>
On 7/8/2011 12:30 AM, Henry Xing wrote: <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'><u1:smarttagtype \
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"><!--[if \
gte mso 9]><xml>  <u1:shapedefaults u2:ext="edit" spidmax="1026"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
  <u1:shapelayout u3:ext="edit">
   <u1:idmap u3:ext="edit" data="1"/>
  </u1:shapelayout>
</xml><![endif]-->Udpate the patch follow qiang&#8217;s \
advice.<u1:p></u1:p></span></font><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>henry<u1:p></u1:p></span></font><span
 lang=EN-US><o:p></o:p></span></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
color=black face="Times New Roman"><span lang=EN-US style='font-size:12.0pt;
color:windowtext'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal align=left style='text-align:left'><b><font size=2
color=black face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:
Tahoma;color:windowtext;font-weight:bold'>From:</span></font></b><font size=2
color=black face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:
Tahoma;color:windowtext'> Qiang Luo <br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, July 08, 2011 12:51
PM<br>
<b><span style='font-weight:bold'>To:</span></b> Henry Xing<br>
<b><span style='font-weight:bold'>Cc:</span></b> <st1:personname u4:st="on"><a
href="mailto:common-dev@helixcommunity.org">common-dev@helixcommunity.org</a></st1:personname>;
 <st1:personname u4:st="on"><a \
href="mailto:filesystem-dev@helixcommunity.org">filesystem-dev@helixcommunity.org</a></st1:personname><br>
 <b><span style='font-weight:bold'>Subject:</span></b> Re: [Filesystem-dev] CR:
provide the interface to open different url with one file object</span></font><span
lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

</div>

<p class=MsoNormal align=left style='text-align:left'><font size=2 color=black
face="Times New Roman"><span lang=EN-US \
style='font-size:10.5pt'><u1:p>&nbsp;</u1:p><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=black
face="Times New&#13;&#10;              Roman"><span lang=EN-US
style='font-size:10.5pt;font-family:"Times New\000D\000A              \
Roman"'>Henry,<br> <br>
The Reset() indicates that the client is done with the current remote file.&nbsp;
It wants to reuse the file object's socket resource for the next file on the
same host/port.&nbsp; I still think it is best to not send the response with error
codes.&nbsp; All client needs to do is to clear all pending states before
calling Reset().&nbsp; Otherwise, if the client get callback such as
m_pFileResponse-&gt;InitDone(HXR_FAILED), the client must have code to
determine such error is due to the Reset() call or it is a actual filesystem
error.<br>
<br>
You may keep the callbacks if you want.&nbsp; In practice,&nbsp; it shouldn't
matter one way or the other since we are calling Reset() to prepare for the
next file with no pending request on the previous file.<br>
<br>
Qiang<br>
<br>
On 7/7/2011 8:54 PM, Henry Xing wrote: <u1:p></u1:p></span></font><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'><u5:smarttagtype \
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"><!--[if \
gte mso 9]><xml>  <u5:shapedefaults u2:ext="edit" spidmax="1026"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
   <u5:shapelayout u3:ext="edit">
    <u5:idmap u3:ext="edit" data="1"/>
   </u5:shapelayout>
</xml><![endif]-->Qiang<u5:p></u5:p></u5:smarttagtype></span></font><span
lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>&nbsp;&nbsp; For Reset()
function, &nbsp;it was designed to&nbsp; set the variable in class to the
initialization value,&nbsp; not to prepare to close player, &nbsp;so I think if
the action is pending&nbsp; it need to invoke this callbacks. \
<u5:p></u5:p></span></font><span lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>&nbsp;&nbsp; Because have
no restriction when to invoke reset(), &nbsp;I wonder some errors will happen
in the http file object caller if we do not invoke this callback function,
affect the normal playing. <u5:p></u5:p></span></font><span \
lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>&nbsp; &nbsp;If the seek
action was executed when reading data from http file object, &nbsp;in http live
fileformat&nbsp; invoke fileobject&#8217;s reset() function,&nbsp; if no readdone to
file format,&nbsp; the file format will pend in read state. \
<u5:p></u5:p></span></font><span lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>&nbsp;&nbsp; If do not
this callback ,&nbsp; we need the caller do more works before do reset function
except for closure will happen. <u5:p></u5:p></span></font><span \
lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=navy face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial;color:navy'>&nbsp;henry<u5:p></u5:p></span></font><span
 lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
color=black face="Times New Roman"><span lang=EN-US style='font-size:12.0pt;
color:windowtext'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal align=left style='text-align:left'><b><font size=2
color=black face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:
Tahoma;color:windowtext;font-weight:bold'>From:</span></font></b><font size=2
color=black face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:
Tahoma;color:windowtext'> Qiang Luo <br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, July 08, 2011 11:05
AM<br>
<b><span style='font-weight:bold'>To:</span></b> Henry Xing<br>
<b><span style='font-weight:bold'>Cc:</span></b> <st1:personname u6:st="on"><a
href="mailto:common-dev@helixcommunity.org" \
moz-do-not-send=true>common-dev@helixcommunity.org</a></st1:personname>; \
<st1:personname u6:st="on"><a href="mailto:filesystem-dev@helixcommunity.org" \
moz-do-not-send=true>filesystem-dev@helixcommunity.org</a></st1:personname><br> \
<b><span style='font-weight:bold'>Subject:</span></b> Re: [Filesystem-dev] CR: \
provide the interface to open different url with one file object</span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

</div>

<p class=MsoNormal align=left style='text-align:left'><font size=2 color=black
face="Times New Roman"><span lang=EN-US \
style='font-size:10.5pt'><u5:p>&nbsp;</u5:p><u1:p></u1:p><o:p></o:p></span></font></p>


<p class=MsoNormal><font size=2 color=black face="Times New Roman ;"><span
lang=EN-US style='font-size:10.5pt;font-family:"Times New Roman \;"'>Henry,<br>
<br>
In the ::Reset() function:<br>
<br>
<br>
<br>
<br>
</span></font><span lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<pre><font size=2 color=black face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; while \
(m_PendingReadList.GetCount())<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
{<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_PendingReadList.RemoveHead();<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
HX_UNLOCK(m_pMutex);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_pFileResponse-&gt;ReadDone(HXR_CANCELLED, \
NULL);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
HX_LOCK(m_pMutex);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font \
size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
}<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre>

<p class=MsoNormal><font size=2 color=black face="Times New Roman ;"><span
lang=EN-US style='font-size:10.5pt;font-family:"Times New Roman \;"'><br>
<br>
<br>
<br>
</span></font><span lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<pre><font size=2 color=black face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; if (m_bMimeResponsePending &amp;&amp; \
m_pMimeMapperResponse)<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
{<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_bMimeResponsePending = \
FALSE;<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_pMimeMapperResponse-&gt;MimeTypeFound(HXR_FAIL, \
NULL);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
HX_RELEASE(m_pMimeMapperResponse);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
}<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; if (m_bFileExistsResponsePending \
&amp;&amp; m_pFileExistsResponse)<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
{<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_bFileExistsResponsePending = \
FALSE;<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_pFileExistsResponse-&gt;DoesExistDone(FALSE);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
HX_RELEASE(m_pFileExistsResponse);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
}<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; if(m_bStatPending &amp;&amp; \
m_pFileStatResponse)<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
{<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_bStatPending = \
FALSE;<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_pFileStatResponse-&gt;StatDone(HXR_FAIL,0, 0, 0, 0, \
0);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
HX_RELEASE(m_pFileStatResponse);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
}<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; if (m_bInitResponsePending &amp;&amp; \
m_pFileResponse)<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font \
size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
{<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_bInitResponsePending = \
FALSE;<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font size=2 \
color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
m_pFileResponse-&gt;InitDone(HXR_FAILED);<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre><pre><font
 size=2 color=black face="Courier New"><span lang=EN-US \
style='font-size:10.0pt'>+&nbsp;&nbsp;&nbsp; \
}<u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></font></pre>

<p class=MsoNormal><font size=2 color=black face="Times New Roman ;"><span
lang=EN-US style='font-size:10.5pt;font-family:"Times New Roman \;"'>is there
any restrictions on when Reset() can be called?&nbsp; Normally when the client
calls Close()/Reset(), its intention is clear: it is done with the object.&nbsp;
The client doesn't expect any more callbacks via the response.&nbsp; You may
consider not send any HXR_FAIL/HXR_CANCELLED/FALSE responses.<br>
<br>
The rest looks good!&nbsp; This feature is going to be essential in improving
the performance of the http adaptive rate streaming applications where we need
to download many small fragment/segment files.&nbsp; The ability to reuse the
socket can save us the resolver-look-up and a few client/server round trips per
fragment file.<br>
<br>
Please merge to the head and 310 branches.<br>
<br>
Thanks,<br>
Qiang<br>
<br>
On 7/7/2011 7:23 PM, Henry Xing wrote: <u5:p></u5:p></span></font><span
lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><!--[if gte mso 9]><xml>
  <u7:shapedefaults u2:ext="edit" spidmax="1026"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
  <u3:shapelayout u8:ext="edit">
   <u3:idmap u8:ext="edit" data="1"/>
  </u3:shapelayout>
</xml><![endif]-->Modified by: <a href="mailto:hxing@real.com"
moz-do-not-send=true>hxing@real.com</a><u9:p></u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Project: HLS for LGE \
bryce<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Synopsis: update to reuse socket(file
object) to download ts file and playlist file<u9:p></u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Overview: <u9:p></u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>&nbsp; Currently http file object
only provide the interface open/read/seek the url input when object
initialization. When fileformat want to open another url for reading
data,&nbsp; need create a new file object to download this new file. it have
the influence to performance when the number of files increase.&nbsp; This
update provide two motheds for reuse this file object to download different \
url.<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>&nbsp; &nbsp;test it on 361branch and
8x55 chipset<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Files \
Modified:<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:18.0pt'><font size=1 color=black
face=Arial><span lang=EN-US \
style='font-size:9.0pt;font-family:Arial'>common/include/hxiids.h</span></font><span \
lang=EN-US><u9:p></u9:p><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:18.0pt'><font size=1 color=black
face=Arial><span lang=EN-US \
style='font-size:9.0pt;font-family:Arial'>common/include/hxfiles.h</span></font><span \
lang=EN-US><u9:p></u9:p><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:18.0pt'><font size=1 color=black
face=Arial><span lang=EN-US \
style='font-size:9.0pt;font-family:Arial'>filesystem/http/httpfsys.h&nbsp;&nbsp; \
</span></font><span lang=EN-US><u9:p></u9:p><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>


<p class=MsoNormal style='text-indent:18.0pt'><font size=1 color=black
face=Arial><span lang=EN-US \
style='font-size:9.0pt;font-family:Arial'>filesystem/http/httpfsys.cpp</span></font><span
 lang=EN-US><u9:p></u9:p><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Platforms and Profiles \
Affected:<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Platform: hxclient_3_6_1_atlas \
<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Profile: \
helix-client-android-full<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Copyright assignment: I am a
RealNetworks employee or contractor<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Best \
Regards<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'>Henry \
hhsing<u9:p></u9:p></span></font><span \
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal><font size=1 color=black face=Arial><span lang=EN-US
style='font-size:9.0pt;font-family:Arial'><u9:p>&nbsp;</u9:p></span></font><span
lang=EN-US><u5:p></u5:p><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal align=left style='text-align:left'><font size=3 color=black
face="Times New Roman"><span lang=EN-US \
style='font-size:12.0pt'><u5:p>&nbsp;</u5:p></span></font><span \
lang=EN-US><u1:p></u1:p><o:p></o:p></span></p>

<p class=MsoNormal align=left style='text-align:left'><font size=3 color=black
face="Times New Roman"><span lang=EN-US \
style='font-size:12.0pt'><u1:p>&nbsp;</u1:p></span></font><span \
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNormal align=left style='text-align:left'><font size=3 color=black
face="Times New Roman"><span lang=EN-US \
style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</u1:smarttagtype></div>

</body>

</html>



_______________________________________________
Filesystem-dev mailing list
Filesystem-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/filesystem-dev

--===============0511394661==--


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

Configure | About | News | Add a list | Sponsored by KoreLogic