Bug 160316

Summary: [MSE] SourceBuffer abort() causes decoder failure
Product: WebKit Reporter: Joey Parrish <joeyparrish>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: eric.carlson, jer.noble, jonlee, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 9   
Hardware: Unspecified   
OS: Unspecified   

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.