Bug 1357040: P3. Don't expect that all data has been processed after metadata. r?gerald
Following P2, the init segment is processed as soon as it's available.
Assuming that the buffered range has been updated when loadedmetadata was fired was wrong. Only once the data has been fully appended to the source buffer, can seeking complete.
MozReview-Commit-ID: LRY0PRaMEw9
--- a/dom/media/mediasource/test/test_BufferedSeek.html
+++ b/dom/media/mediasource/test/test_BufferedSeek.html
@@ -29,22 +29,17 @@ runWithMSE(function (ms, v) {
ms.endOfStream();
};
});
});
var target = 2;
v.addEventListener("loadedmetadata", function () {
- if (v.currentTime != target &&
- v.buffered.length &&
- target >= v.buffered.start(0) &&
- target < v.buffered.end(0)) {
- v.currentTime = target;
- }
+ v.currentTime = target;
});
var wasSeeking = false;
v.addEventListener("seeking", function () {
wasSeeking = true;
is(v.currentTime, target, "Video currentTime at target");
});
--- a/dom/media/mediasource/test/test_BufferedSeek_mp4.html
+++ b/dom/media/mediasource/test/test_BufferedSeek_mp4.html
@@ -29,22 +29,17 @@ runWithMSE(function (ms, v) {
ms.endOfStream();
};
});
});
var target = 1.3;
v.addEventListener("loadedmetadata", function () {
- if (v.currentTime != target &&
- v.buffered.length &&
- target >= v.buffered.start(0) &&
- target < v.buffered.end(0)) {
- v.currentTime = target;
- }
+ v.currentTime = target;
});
var wasSeeking = false;
v.addEventListener("seeking", function () {
wasSeeking = true;
is(v.currentTime, target, "Video currentTime at target");
});