Skip to content

Commit

Permalink
Bug 1538433 [wpt PR 15991] - MSE: Fix mediasource-changetype-play to …
Browse files Browse the repository at this point in the history
…work with MseBufferByPts, a=testonly

Automatic update from web-platform-tests
MSE: Fix mediasource-changetype-play to work with MseBufferByPts

This web-platform-test exercises changeType as it splice-overlaps
pairs of audio or video media streams at varying offsets in the
presentation timeline. Splice-overlapping an out-of-order decode stream
(such as the test AVC MP4 media) at arbitrary times can, per spec, drop
significant decode dependencies from a partially-overlapped GOP such
that a buffered range gap could result.

This change is more careful about where it performs splice-overlaps when
the overlapped media is out-of-order-decode, adjusting the splice point
to be at or very near to the next overlapped keyframe. This prevents
removing out-of-order non-keyframes and their dependents from the
overlapped media such that no buffered range gap nor playback stall
should result.

Note that Chromium is sensitive to such out-of-order buffering overlaps
with the new, compliant, MseBufferByPts behavior. Fixing
w3c/media-source#160 could greatly simplify
this problem by allowing apps to explicitly control how the
user agent behaves at these small gaps.

BUG=807793

Change-Id: I020e244c230756eaa1804f81b58a577124a6a28b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1428601
Commit-Queue: Matthew Wolenetz <wolenetzchromium.org>
Reviewed-by: Dan Sanders <sandersdchromium.org>
Cr-Commit-Position: refs/heads/master{#643473}

--

wpt-commits: 27ad6759d421b95b4572f20cabaeb750b3eb9799
wpt-pr: 15991

UltraBlame original commit: fc846bf83bfdae75b97fec2fb139b4b88dc9be7f
  • Loading branch information
marco-c committed Oct 4, 2019
1 parent fe7bd9c commit 5ff6b17
Show file tree
Hide file tree
Showing 2 changed files with 355 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,11 @@
{
async_test
(
function
(
test
)
=
>
{
assert_true
(
Expand All @@ -162,8 +163,6 @@
test
media
"
+
audio_types
)
;
assert_true
Expand Down
Loading

0 comments on commit 5ff6b17

Please sign in to comment.