[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> </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’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> </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\000D\000A \
Roman"'>Henry,<br> <br>
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.<br>
<br>
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.<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'> 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. \
<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'> 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. <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'> 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. \
<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'> If do not
this callback , 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'> 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> </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'>+ 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'>+ \
{<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'>+ \
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'>+ \
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'>+ \
m_pFileResponse->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'>+ \
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'>+ \
}<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'>+ if (m_bMimeResponsePending && \
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'>+ \
{<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'>+ \
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'>+ \
m_pMimeMapperResponse->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'>+ \
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'>+ \
}<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'>+ if (m_bFileExistsResponsePending \
&& 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'>+ \
{<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'>+ \
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'>+ \
m_pFileExistsResponse->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'>+ \
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'>+ \
}<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'>+ if(m_bStatPending && \
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'>+ \
{<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'>+ 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'>+ \
m_pFileStatResponse->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'>+ \
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'>+ \
}<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'>+ if (m_bInitResponsePending && \
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'>+ \
{<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'>+ \
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'>+ \
m_pFileResponse->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'>+ \
}<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? 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.<br>
<br>
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.<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> </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'> 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.<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'> 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> </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 \
</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> </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> </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> </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> </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> </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> </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> </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> </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> </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