Bug 160316 - [MSE] SourceBuffer abort() causes decoder failure
Summary: [MSE] SourceBuffer abort() causes decoder failure
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Safari 9
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2016-07-28 14:38 PDT by Joey Parrish
Modified: 2016-12-02 11:56 PST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joey Parrish 2016-07-28 14:38:50 PDT
Shaka Player (https://github.com/google/shaka-player) discovered that calling abort() on Safari's SourceBuffer causes a decoder error.

In our test, we append several segments, then call abort() and append several more.  The abort() call should reset the decoder's timestamp, but instead causes a complete failure.

To reproduce:

1. Visit http://storage.googleapis.com/shaka-demo-assets/_bugs/safari-abort/index.html in Safari
2. Open the JavaScript console
3. Observe failures instead of playback

In Chrome, Firefox, Opera, Edge, and IE 11, the result is that the video plays.

In Safari 9, nothing plays and there are several errors in the JS console:
  MSE OPERATION FAILED
  VIDEO ERROR - MediaError {code: 3}
  EXCEPTION - Error: InvalidStateError: DOM Exception 11

OS X El Capitan, Safari 9.0.3 (11601.4.4) and in WebKit nightly r203816.

I'm not sure, but this may be a duplicate of https://bugs.webkit.org/show_bug.cgi?id=135164
Comment 1 Radar WebKit Bug Importer 2016-07-29 01:35:08 PDT
<rdar://problem/27605812>
Comment 2 Jon Lee 2016-09-27 16:05:13 PDT
rdar://problem/28438637
Comment 3 Jer Noble 2016-09-27 16:48:45 PDT
Joey, we have an old bugzilla bug tracking this scenario: <https://bugs.webkit.org/show_bug.cgi?id=135164>
Comment 4 Joey Parrish 2016-09-27 17:02:02 PDT
Great, thanks for letting me know.  I'll follow along there if you want to close this one.
Comment 5 Joey Parrish 2016-12-02 11:56:01 PST
This is not reproducible on Safari 10.