<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>21276</bug_id>
          
          <creation_ts>2013-03-13 21:08:47 +0000</creation_ts>
          <short_desc>Some instances of throwing append error should call endOfStream</short_desc>
          <delta_ts>2013-03-26 17:56:21 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>HTML WG</product>
          <component>Media Source Extensions</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Bateman [MSFT]">adrianba</reporter>
          <assigned_to name="Aaron Colwell (c)">acolwell</assigned_to>
          <cc>acolwell</cc>
    
    <cc>mike</cc>
    
    <cc>public-html-media</cc>
          
          <qa_contact name="HTML WG Bugzilla archive list">public-html-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>84367</commentid>
    <comment_count>0</comment_count>
      <attachid>1338</attachid>
    <who name="Adrian Bateman [MSFT]">adrianba</who>
    <bug_when>2013-03-13 21:08:47 +0000</bug_when>
    <thetext>Created attachment 1338
Proposed patch

In general, the append error algorithm should be used for errors from which it is expected that an app can recover from. Errors where the equivalent behavior in a progressive download would not be recoverable should call endOfStream.

The attached patch proposes three changes where the append error algorithm is called but where we think endOfStream makes more sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84509</commentid>
    <comment_count>1</comment_count>
    <who name="Aaron Colwell (c)">acolwell</who>
    <bug_when>2013-03-16 15:16:50 +0000</bug_when>
    <thetext>I&apos;m fine with the first two changes since they basically trigger playback to error out if the web application passes in invalid data.  

The third change that calls endOfStream(&quot;network&quot;) I&apos;m not so sure about. I would prefer it if the application was able to make this call instead because it may not want to terminate playback if this occurs. I&apos;m assuming this is the case where the HTTP connection closes unexpectedly for some reason. If so then I would prefer the application to be able to handle this without triggering playback to halt because it may want to retry the request or may have alternate backup URLs that it could try (ie different bitrates or alternate CDNs).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84563</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Bateman [MSFT]">adrianba</who>
    <bug_when>2013-03-18 15:02:22 +0000</bug_when>
    <thetext>The problem is that you don&apos;t know what state the buffer is in after a partial append. If we don&apos;t halt at this point then we need to somehow get the buffer into a &quot;known good&quot; state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84742</commentid>
    <comment_count>3</comment_count>
    <who name="Aaron Colwell (c)">acolwell</who>
    <bug_when>2013-03-20 15:02:47 +0000</bug_when>
    <thetext>(In reply to comment #2)
&gt; The problem is that you don&apos;t know what state the buffer is in after a
&gt; partial append. If we don&apos;t halt at this point then we need to somehow get
&gt; the buffer into a &quot;known good&quot; state.

I figured that this was roughly equivalent to abort() being called since the &quot;reset parser state algorithm&quot; is run to put the parser into a known state. The application can look at the buffered attribute to assess what likely got successfully appended in the buffer. It can then choose to retry the append or it could select a different media segment to cover the unbuffered range that would have been covered by the failed append.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84997</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Bateman [MSFT]">adrianba</who>
    <bug_when>2013-03-26 05:33:43 +0000</bug_when>
    <thetext>(In reply to comment #3)
&gt; I figured that this was roughly equivalent to abort() being called since the
&gt; &quot;reset parser state algorithm&quot; is run to put the parser into a known state.
&gt; The application can look at the buffered attribute to assess what likely got
&gt; successfully appended in the buffer. It can then choose to retry the append
&gt; or it could select a different media segment to cover the unbuffered range
&gt; that would have been covered by the failed append.

We agree that we can make this work dropping the third endOfStream(&quot;network&quot;) change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85017</commentid>
    <comment_count>5</comment_count>
    <who name="Aaron Colwell (c)">acolwell</who>
    <bug_when>2013-03-26 17:56:21 +0000</bug_when>
    <thetext>Changes committed.
https://dvcs.w3.org/hg/html-media/rev/1e6898152c5b

The two endOfStream(&quot;decode&quot;) changes were applied. The endOfStream(&quot;network&quot;) was left out.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>1338</attachid>
            <date>2013-03-13 21:08:47 +0000</date>
            <delta_ts>2013-03-13 21:08:47 +0000</delta_ts>
            <desc>Proposed patch</desc>
            <filename>endofstream.patch</filename>
            <type>text/plain</type>
            <size>4398</size>
            <attacher name="Adrian Bateman [MSFT]">adrianba</attacher>
            
              <data encoding="base64">ZGlmZiAtciBmMGZiNThkNDVmOTYgbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNwZWMuaHRt
bAotLS0gYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc3BlYy5odG1sCVR1ZSBNYXIgMTIg
MTE6NDM6MDMgMjAxMyAtMDcwMAorKysgYi9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc3Bl
Yy5odG1sCVdlZCBNYXIgMTMgMTQ6MDA6NDggMjAxMyAtMDcwMApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sIFNZU1RFTSAiYWJvdXQ6bGVnYWN5LWNvbXBhdCI+Civvu788IURPQ1RZUEUg
aHRtbCBTWVNURU0gImFib3V0OmxlZ2FjeS1jb21wYXQiPgogPGh0bWw+CiAgIDxoZWFkPgogICAg
IDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy
c2V0PXV0Zi04Ij4KQEAgLTk2Niw3ICs5NjYsNyBAQAogCiAgICAgICAgICAgPG9sPgogICAgICAg
ICAgICAgPGxpPjxpPkxvb3AgVG9wOjwvaT4gSWYgdGhlIDxhIGRlZi1pZD0iaW5wdXQtYnVmZmVy
Ij48L2E+IGlzIGVtcHR5LCB0aGVuIGp1bXAgdG8gdGhlIDxpPm5lZWQgbW9yZSBkYXRhPC9pPiBz
dGVwIGJlbG93LjwvbGk+Ci0gICAgICAgICAgICA8bGk+SWYgdGhlIDxhIGRlZi1pZD0iaW5wdXQt
YnVmZmVyIj48L2E+IHN0YXJ0cyB3aXRoIGJ5dGVzIHRoYXQgdmlvbGF0ZSB0aGUgPGEgZGVmLWlk
PSJieXRlLXN0cmVhbS1mb3JtYXQtc3BlY3MiPjwvYT4sIHRoZW4gcnVuIHRoZSA8YSBkZWYtaWQ9
ImFwcGVuZC1lcnJvci1hbGdvcml0aG0iPjwvYT4gYW5kIGFib3J0IHRoaXMgYWxnb3JpdGhtLjwv
bGk+CisgICAgICAgICAgICA8bGk+SWYgdGhlIDxhIGRlZi1pZD0iaW5wdXQtYnVmZmVyIj48L2E+
IHN0YXJ0cyB3aXRoIGJ5dGVzIHRoYXQgdmlvbGF0ZSB0aGUgPGEgZGVmLWlkPSJieXRlLXN0cmVh
bS1mb3JtYXQtc3BlY3MiPjwvYT4sIHRoZW4gY2FsbCA8YSBkZWYtaWQ9ImVvcy1kZWNvZGUiPjwv
YT4gYW5kIGFib3J0IHRoaXMgYWxnb3JpdGhtLjwvbGk+CiAgICAgICAgICAgICA8bGk+UmVtb3Zl
IGFueSBieXRlcyB0aGF0IHRoZSA8YSBkZWYtaWQ9ImJ5dGUtc3RyZWFtLWZvcm1hdC1zcGVjcyI+
PC9hPiBzYXkgc2hvdWxkIGJlIGlnbm9yZWQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIDxhIGRlZi1p
ZD0iaW5wdXQtYnVmZmVyIj48L2E+LjwvbGk+CiAgICAgICAgICAgICA8bGk+CiAJICAgICAgPHA+
SWYgdGhlIDxhIGRlZi1pZD0iYXBwZW5kLXN0YXRlIj48L2E+IGVxdWFscyA8YSBkZWYtaWQ9Indh
aXRpbmctZm9yLXNlZ21lbnQiPjwvYT4sIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6PC9w
PgpAQCAtOTg5LDcgKzk4OSw3IEBACiAgICAgICAgICAgICA8bGk+CiAJICAgICAgPHA+SWYgdGhl
IDxhIGRlZi1pZD0iYXBwZW5kLXN0YXRlIj48L2E+IGVxdWFscyA8YSBkZWYtaWQ9InBhcnNpbmct
bWVkaWEtc2VnbWVudCI+PC9hPiwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczo8L3A+CiAJ
ICAgICAgPG9sPgotICAgICAgICAgICAgICAgIDxsaT5JZiB0aGUgPGEgZGVmLWlkPSJmaXJzdC1p
bml0LXNlZ21lbnQtZmxhZyI+PC9hPiBpcyBmYWxzZSwgdGhlbiBydW4gdGhlIDxhIGRlZi1pZD0i
YXBwZW5kLWVycm9yLWFsZ29yaXRobSI+PC9hPiBhbmQgYWJvcnQgdGhpcyBhbGdvcml0aG0uPC9s
aT4KKyAgICAgICAgICAgICAgICA8bGk+SWYgdGhlIDxhIGRlZi1pZD0iZmlyc3QtaW5pdC1zZWdt
ZW50LWZsYWciPjwvYT4gaXMgZmFsc2UsIHRoZW4gY2FsbCA8YSBkZWYtaWQ9ImVvcy1kZWNvZGUi
PjwvYT4gYW5kIGFib3J0IHRoaXMgYWxnb3JpdGhtLjwvbGk+CiAJICAgICAgICA8bGk+CiAJICAg
ICAgICAgIDxwPklmIHRoZSA8YSBkZWYtaWQ9ImlucHV0LWJ1ZmZlciI+PC9hPiBkb2VzIG5vdCBj
b250YWluIGEgY29tcGxldGUgPGEgZGVmLWlkPSJtZWRpYS1zZWdtZW50Ij48L2E+IGhlYWRlciB5
ZXQsIHRoZW4ganVtcCB0byB0aGUgPGk+bmVlZCBtb3JlIGRhdGE8L2k+IHN0ZXAgYmVsb3cuPC9w
PgogCSAgICAgICAgICA8cCBjbGFzcz0ibm90ZSI+SW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ug
dG8gaW1wbGVtZW50IHRoaXMgc3RhdGUgYXMgYW4gaW5jcmVtZW50YWwgcGFyc2VyIHNvIHRoYXQg
aXQgaXMgbm90IG5lY2Vzc2FyeSB0byBoYXZlIHRoZSBlbnRpcmUgbWVkaWEgc2VnbWVudCBiZWZv
cmUgcnVubmluZyB0aGUgPGEgZGVmLWlkPSJjb2RlZC1mcmFtZS1wcm9jZXNzaW5nLWFsZ29yaXRo
bSI+PC9hPi48L3A+CkBAIC0xMDU5LDcgKzEwNTksNyBAQAogICAgICAgICAgICAgICAgIDxkZD5S
ZWFkIGFsbCBhdmFpbGFibGUgYnl0ZXMgaW4gPHZhcj5zdHJlYW08L3Zhcj4gaW50byA8dmFyPmRh
dGE8L3Zhcj4uPC9kZD4KICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgIDwvbGk+Ci0g
ICAgICAgICAgICA8bGk+SWYgYW4gZXJyb3Igb2NjdXJlZCB3aGlsZSByZWFkaW5nIGZyb20gPHZh
cj5zdHJlYW08L3Zhcj4sIHRoZW4gcnVuIHRoZSA8YSBkZWYtaWQ9ImFwcGVuZC1lcnJvci1hbGdv
cml0aG0iPjwvYT4gYW5kIGFib3J0IHRoaXMgYWxnb3JpdGhtLjwvbGk+CisgICAgICAgICAgICA8
bGk+SWYgYW4gZXJyb3Igb2NjdXJlZCB3aGlsZSByZWFkaW5nIGZyb20gPHZhcj5zdHJlYW08L3Zh
cj4sIHRoZW4gY2FsbCA8YSBkZWYtaWQ9ImVvcy1uZXR3b3JrIj48L2E+IGFuZCBhYm9ydCB0aGlz
IGFsZ29yaXRobS48L2xpPgogICAgICAgICAgICAgPGxpPlJ1biB0aGUgPGEgZGVmLWlkPSJjb2Rl
ZC1mcmFtZS1ldmljdGlvbi1hbGdvcml0aG0iPjwvYT4uPC9saT4KICAgICAgICAgICAgIDxsaT4K
ICAgICAgICAgICAgICAgPHA+SWYgdGhlIDxhIGRlZi1pZD0iYnVmZmVyLWZ1bGwtZmxhZyI+PC9h
PiBlcXVhbHMgdHJ1ZSwgdGhlbiBydW4gdGhlIDxhIGRlZi1pZD0iYXBwZW5kLWVycm9yLWFsZ29y
aXRobSI+PC9hPiBhbmQgYWJvcnQgdGhpcyBhbGdvcml0aG0uPC9wPgpkaWZmIC1yIGYwZmI1OGQ0
NWY5NiBtZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmpzCi0tLSBhL21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UuanMJVHVlIE1hciAxMiAxMTo0MzowMyAyMDEzIC0wNzAwCisrKyBiL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UuanMJV2VkIE1hciAxMyAxNDowMDo0OCAyMDEzIC0wNzAwCkBAIC03
Miw3ICs3Miw4IEBACiAgICAgJ2FkZFNvdXJjZUJ1ZmZlcic6IHsgZnVuYzogaWRscmVmX2hlbHBl
ciwgZnJhZ21lbnQ6ICd3aWRsLU1lZGlhU291cmNlLWFkZFNvdXJjZUJ1ZmZlci1Tb3VyY2VCdWZm
ZXItRE9NU3RyaW5nLXR5cGUnLCBsaW5rX3RleHQ6ICdhZGRTb3VyY2VCdWZmZXIoKScsICB9LAog
ICAgICdlbmRPZlN0cmVhbSc6IHsgZnVuYzogaWRscmVmX2hlbHBlciwgZnJhZ21lbnQ6ICd3aWRs
LU1lZGlhU291cmNlLWVuZE9mU3RyZWFtLXZvaWQtRW5kT2ZTdHJlYW1FcnJvci1lcnJvcicsIGxp
bmtfdGV4dDogJ2VuZE9mU3RyZWFtKCknLCAgfSwKICAgICAnZW9zLWRlY29kZSc6IHsgZnVuYzog
aWRscmVmX2hlbHBlciwgZnJhZ21lbnQ6ICd3aWRsLU1lZGlhU291cmNlLWVuZE9mU3RyZWFtLXZv
aWQtRW5kT2ZTdHJlYW1FcnJvci1lcnJvcicsIGxpbmtfdGV4dDogJ2VuZE9mU3RyZWFtKCJkZWNv
ZGUiKScsICB9LAotICAgICdyZWFkeVN0YXRlJzogeyBmdW5jOiBpZGxyZWZfaGVscGVyLCBmcmFn
bWVudDogJ3dpZGwtTWVkaWFTb3VyY2UtcmVhZHlTdGF0ZScsIGxpbmtfdGV4dDogJ3JlYWR5U3Rh
dGUnLCAgfSwKKyAgICAnZW9zLW5ldHdvcmsnOiB7IGZ1bmM6IGlkbHJlZl9oZWxwZXIsIGZyYWdt
ZW50OiAnd2lkbC1NZWRpYVNvdXJjZS1lbmRPZlN0cmVhbS12b2lkLUVuZE9mU3RyZWFtRXJyb3It
ZXJyb3InLCBsaW5rX3RleHQ6ICdlbmRPZlN0cmVhbSgibmV0d29yayIpJywgfSwKKyAgICAncmVh
ZHlTdGF0ZSc6IHsgZnVuYzogaWRscmVmX2hlbHBlciwgZnJhZ21lbnQ6ICd3aWRsLU1lZGlhU291
cmNlLXJlYWR5U3RhdGUnLCBsaW5rX3RleHQ6ICdyZWFkeVN0YXRlJywgfSwKICAgICAnZHVyYXRp
b24nOiB7IGZ1bmM6IGlkbHJlZl9oZWxwZXIsIGZyYWdtZW50OiAnd2lkbC1NZWRpYVNvdXJjZS1k
dXJhdGlvbicsIGxpbmtfdGV4dDogJ2R1cmF0aW9uJywgIH0sCiAgICAgJ2FwcGVuZEJ1ZmZlcic6
IHsgZnVuYzogaWRscmVmX2hlbHBlciwgZnJhZ21lbnQ6ICd3aWRsLVNvdXJjZUJ1ZmZlci1hcHBl
bmRCdWZmZXItdm9pZC1BcnJheUJ1ZmZlclZpZXctZGF0YScsIGxpbmtfdGV4dDogJ2FwcGVuZEJ1
ZmZlcigpJywgIH0sCiAgICAgJ2FwcGVuZFN0cmVhbSc6IHsgZnVuYzogaWRscmVmX2hlbHBlciwg
ZnJhZ21lbnQ6ICd3aWRsLVNvdXJjZUJ1ZmZlci1hcHBlbmRTdHJlYW0tdm9pZC1TdHJlYW0tc3Ry
ZWFtLXVuc2lnbmVkLWxvbmctbG9uZy1tYXhTaXplJywgbGlua190ZXh0OiAnYXBwZW5kU3RyZWFt
KCknLCAgfSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>