Bug 165342

Summary: [MSE] SourceBuffer abort() before appending segment causes partial segment
Product: WebKit Reporter: Joey Parrish <joeyparrish>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: eric.carlson, jer.noble, jonlee, webkit-bug-importer
Priority: P1 Keywords: InRadar
Version: Safari 10   
Hardware: Unspecified   
OS: Unspecified   

Description Joey Parrish 2016-12-02 14:54:55 PST
Shaka Player (https://github.com/google/shaka-player) discovered that calling abort() on Safari's SourceBuffer before appending a segment sometimes results in only part of the segment showing up in buffer.

In our test, we append the init segment, then call abort(), then append the first media segment.  Only 6.9 seconds of the 10-second segment show up.

This is similar in many ways to this bug on Safari 9:  https://bugs.webkit.org/show_bug.cgi?id=160316
However, the content from that bug does not trigger this one.  It is unclear to me why this bug on Safari 10 is content-specific.


To reproduce:

1. Visit http://storage.googleapis.com/shaka-demo-assets/_bugs/safari-10-mse-abort/index.html in Safari
2. Open the JavaScript console
3. Observe the error message showing that only part of the segment is in buffer.

Reproducible on macOS Sierra, Safari 10.0.1 (12602.2.14.0.7) and WebKit nightly r209234.
Comment 1 Radar WebKit Bug Importer 2017-02-26 17:07:31 PST
<rdar://problem/30725484>
Comment 2 Radar WebKit Bug Importer 2017-02-26 17:08:11 PST
<rdar://problem/30725499>
Comment 3 Joey Parrish 2017-03-23 12:12:50 PDT
Hi all,

Any progress on this?  This is particularly harming our ability to play TS content via MediaSource on Safari.  I am very much looking forward to a Safari tech preview or WebKit nightly with a fix so that we can verify our HLS work on Safari.
Comment 4 Jon Lee 2017-04-01 21:24:48 PDT
<rdar://problem/30725484>
Comment 5 Joey Parrish 2017-10-03 14:46:17 PDT
Still reproducible on Safari 11.