Bug 177483 - Appending media to the start of a buffer range drops buffer after the append.
Summary: Appending media to the start of a buffer range drops buffer after the append.
Status: RESOLVED CONFIGURATION CHANGED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Safari 10
Hardware: Mac macOS 10.12
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-09-26 03:51 PDT by Robert Bryer
Modified: 2019-09-20 15:35 PDT (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Bryer 2017-09-26 03:51:23 PDT
When appending media to the start of a buffered range, webkit will remove a portion of buffer after the append, keeping the buffer as two separate ranges.

To reproduce:
http://reference.dashif.org/dash.js/v2.6.0/samples/dash-if-reference-player/index.html

1. Click load.
2. Seek forward to a time like 3:00, await some buffer at this time.
3. Seek back to 2:45, play until 3:00.
4. Observe that there is a gap in the buffer at the first segment downloaded(between 176 and 178).

When appending the segment again to fill the gap, a new gap appears at the next segment boundary, and so on - effectively meaning we need to replace all the buffered media from 3:00 onwards.

The fact that the above example doesn't play out is our fault(we should be checking .buffered when deciding what to fetch, and we have a fix already for this so we can make it play). But we probably shouldn't need to replace all the buffer ahead after seeking backwards. What's going on here?
Comment 1 Radar WebKit Bug Importer 2019-08-15 11:24:29 PDT
<rdar://problem/54354873>
Comment 2 Peng Liu 2019-09-16 19:59:14 PDT
Hi Robert, is this bug still reproducible? Thanks!
Comment 3 Robert Bryer 2019-09-20 02:50:41 PDT
On Safari 12.1.2 I can't reproduce it, it looks fixed - It was reported for a Safari 10 version though.
Comment 4 Peng Liu 2019-09-20 15:35:17 PDT
Great! Thanks for the information.