- From: <bugzilla@jessica.w3.org>
- Date: Sun, 08 Feb 2015 10:07:01 +0000
- To: public-html-media@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27980 Bug ID: 27980 Summary: [MSE] Ambiguous behaviour when running sourcebuffer.abort() Product: HTML WG Version: unspecified Hardware: PC OS: All Status: NEW Severity: normal Priority: P2 Component: Media Source Extensions Assignee: adrianba@microsoft.com Reporter: jyavenard@mozilla.com QA Contact: public-html-bugzilla@w3.org CC: mike@w3.org, public-html-media@w3.org http://w3c.github.io/media-source/#widl-SourceBuffer-abort-void as of 2015-02-08 3.2 Methods: abort() states "If the updating attribute equals true, then run the following steps: Abort the buffer append and stream append loop algorithms if they are running. Set the updating attribute to false. Queue a task to fire a simple event named abort at this SourceBuffer object. Queue a task to fire a simple event named updateend at this SourceBuffer object. " So abort() should abort buffer append and stream append loop algorithm However: 3.4 Event Summary we have: "The append or remove was aborted by an abort() call. updating transitions from true to false." So here, abort() can abort the remove() operation. Now, there's an ambiguous case. What needs to be done when you do something like: mediasource.duration = X sourceBuffer.abort() setting mediasource.duration is to run the range remove algorithm which will fire updatestart then later update/updateend abort() is to fire abort/updateend If we follow the spec to the letter, and abort doesn't abort then range removal algorithm. We should have then: updatestart abort updateend and once range removal algorithm gets to run: update updateend Chrome fires: updatestart abort updateend IE11: updatestart update updateend For both browsers, range removal algorithm has been run and the sourcebuffer buffered range is now { 0 , 5 } -- You are receiving this mail because: You are on the CC list for the bug.
Received on Sunday, 8 February 2015 10:07:03 UTC