mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backout 471009c10ae0 for web platform test failure on CLOSED TREE
This commit is contained in:
parent
8a44bf7442
commit
ff63002ff5
@ -467,7 +467,10 @@ MediaSource::DurationChange(double aNewDuration, ErrorResult& aRv)
|
||||
double oldDuration = mDuration;
|
||||
mDuration = aNewDuration;
|
||||
if (aNewDuration < oldDuration) {
|
||||
mSourceBuffers->RangeRemoval(aNewDuration, oldDuration);
|
||||
mSourceBuffers->Remove(aNewDuration, oldDuration, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
// TODO: If partial audio frames/text cues exist, clamp duration based on mSourceBuffers.
|
||||
// TODO: Update media element's duration and run element's duration change algorithm.
|
||||
|
@ -188,19 +188,10 @@ SourceBuffer::Remove(double aStart, double aEnd, ErrorResult& aRv)
|
||||
aRv.Throw(NS_ERROR_DOM_INVALID_ACCESS_ERR);
|
||||
return;
|
||||
}
|
||||
if (mUpdating) {
|
||||
if (mUpdating || mMediaSource->ReadyState() != MediaSourceReadyState::Open) {
|
||||
aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
|
||||
return;
|
||||
}
|
||||
if (mMediaSource->ReadyState() == MediaSourceReadyState::Ended) {
|
||||
mMediaSource->SetReadyState(MediaSourceReadyState::Open);
|
||||
}
|
||||
RangeRemoval(aStart, aEnd);
|
||||
}
|
||||
|
||||
void
|
||||
SourceBuffer::RangeRemoval(double aStart, double aEnd)
|
||||
{
|
||||
StartUpdating();
|
||||
/// TODO: Run coded frame removal algorithm.
|
||||
|
||||
|
@ -108,9 +108,6 @@ public:
|
||||
double GetBufferedStart();
|
||||
double GetBufferedEnd();
|
||||
|
||||
// Runs the range removal algorithm as defined by the MSE spec.
|
||||
void RangeRemoval(double aStart, double aEnd);
|
||||
|
||||
#if defined(DEBUG)
|
||||
void Dump(const char* aPath);
|
||||
#endif
|
||||
|
@ -108,12 +108,15 @@ SourceBufferList::AnyUpdating()
|
||||
}
|
||||
|
||||
void
|
||||
SourceBufferList::RangeRemoval(double aStart, double aEnd)
|
||||
SourceBufferList::Remove(double aStart, double aEnd, ErrorResult& aRv)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MSE_DEBUG("SourceBufferList(%p)::RangeRemoval(aStart=%f, aEnd=%f", this, aStart, aEnd);
|
||||
MSE_DEBUG("SourceBufferList(%p)::Remove(aStart=%f, aEnd=%f", this, aStart, aEnd);
|
||||
for (uint32_t i = 0; i < mSourceBuffers.Length(); ++i) {
|
||||
mSourceBuffers[i]->RangeRemoval(aStart, aEnd);
|
||||
mSourceBuffers[i]->Remove(aStart, aEnd, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,8 +66,9 @@ public:
|
||||
// Returns true if updating is true on any SourceBuffers in the list.
|
||||
bool AnyUpdating();
|
||||
|
||||
// Runs the range removal steps from the MSE specification on each SourceBuffer.
|
||||
void RangeRemoval(double aStart, double aEnd);
|
||||
// Calls Remove(aStart, aEnd) on each SourceBuffer in the list. Aborts on
|
||||
// first error, with result returned in aRv.
|
||||
void Remove(double aStart, double aEnd, ErrorResult& aRv);
|
||||
|
||||
// Mark all SourceBuffers input buffers as ended.
|
||||
void Ended();
|
||||
|
@ -8,7 +8,6 @@ support-files =
|
||||
[test_MediaSource.html]
|
||||
[test_MediaSource_disabled.html]
|
||||
[test_BufferedSeek.html]
|
||||
[test_EndOfStream.html]
|
||||
[test_FrameSelection.html]
|
||||
[test_HaveMetadataUnbufferedSeek.html]
|
||||
[test_LoadedMetadataFired.html]
|
||||
|
@ -12,8 +12,6 @@
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var updateCount = 0;
|
||||
|
||||
runWithMSE(function (ms, v) {
|
||||
ms.addEventListener("sourceopen", function () {
|
||||
var sb = ms.addSourceBuffer("video/webm");
|
||||
@ -21,13 +19,7 @@ runWithMSE(function (ms, v) {
|
||||
fetchWithXHR("seek.webm", function (arrayBuffer) {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer));
|
||||
sb.addEventListener("updateend", function () {
|
||||
updateCount++;
|
||||
/* Ensure that we endOfStream on the first update event only as endOfStream can
|
||||
raise more if the duration of the last buffered range and the intial duration
|
||||
differ. See bug 1065207 */
|
||||
if (updateCount == 1) {
|
||||
ms.endOfStream();
|
||||
};
|
||||
ms.endOfStream()
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -1,47 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>MSE: endOfStream call after an appendBuffer</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="text/javascript" src="mediasource.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
runWithMSE(function () {
|
||||
var ms = new MediaSource();
|
||||
|
||||
var v = document.createElement("video");
|
||||
v.src = URL.createObjectURL(ms);
|
||||
document.body.appendChild(v);
|
||||
|
||||
ms.addEventListener("sourceopen", function () {
|
||||
var sb = ms.addSourceBuffer("video/webm");
|
||||
|
||||
fetchWithXHR("seek.webm", function (arrayBuffer) {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 88966));
|
||||
var count = 0;
|
||||
sb.addEventListener("updateend", function () {
|
||||
++count;
|
||||
if (count == 1) {
|
||||
setTimeout(function() {
|
||||
ms.endOfStream();
|
||||
v.play();
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
v.addEventListener("ended", function () {
|
||||
SimpleTest.finish();
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
@ -12,8 +12,6 @@
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var updateCount = 0;
|
||||
|
||||
runWithMSE(function (ms, v) {
|
||||
ms.addEventListener("sourceopen", function () {
|
||||
var sb = ms.addSourceBuffer("video/webm");
|
||||
@ -36,13 +34,13 @@ runWithMSE(function (ms, v) {
|
||||
fetchWithXHR("seek_lowres.webm", function (arrayBuffer) {
|
||||
// Append initialization segment.
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 438));
|
||||
var first = true;
|
||||
sb.addEventListener("updateend", function () {
|
||||
updateCount++;
|
||||
if (updateCount == 1) {
|
||||
if (first) {
|
||||
// Append media segment covering range [2, 4].
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 51003));
|
||||
}
|
||||
else if (updateCount == 2) {
|
||||
first = false;
|
||||
} else {
|
||||
ms.endOfStream();
|
||||
target = targets.shift();
|
||||
v.currentTime = target.currentTime;
|
||||
|
@ -57,12 +57,7 @@ runWithMSE(function () {
|
||||
sb.addEventListener("update", function () {
|
||||
is(sb.updating, false, "SourceBuffer.updating is expected value in update event");
|
||||
updateCount++;
|
||||
/* Ensure that we endOfStream on the first update event only as endOfStream can
|
||||
raise more if the duration of the last buffered range and the intial duration
|
||||
differ. See bug 1065207 */
|
||||
if (updateCount == 1) {
|
||||
ms.endOfStream();
|
||||
}
|
||||
ms.endOfStream();
|
||||
});
|
||||
|
||||
sb.addEventListener("updatestart", function () {
|
||||
@ -89,10 +84,9 @@ runWithMSE(function () {
|
||||
// XXX: Duration should be exactly 4.0, see bug 1065207.
|
||||
ok(Math.abs(v.duration - 4) <= 0.002, "Video has correct duration");
|
||||
ok(Math.abs(v.currentTime - 4) <= 0.002, "Video has played to end");
|
||||
// XXX: 2 update events can be received dueto duration differences, see bug 1065207.
|
||||
ok(updateCount == 1 || updateCount == 2, "update event received");
|
||||
ok(updateendCount == 1 || updateendCount == 2, "updateend event received");
|
||||
ok(updatestartCount == 1 || updatestartCount == 2, "updatestart event received");
|
||||
is(updateCount, 1, "update event received");
|
||||
is(updateendCount, 1, "updateend event received");
|
||||
is(updatestartCount, 1, "updatestart event received");
|
||||
is(loadedmetadataCount, 1, "loadedmetadata event received");
|
||||
v.parentNode.removeChild(v);
|
||||
SimpleTest.finish();
|
||||
|
@ -12,8 +12,6 @@
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var updateCount = 0;
|
||||
|
||||
runWithMSE(function (ms, v) {
|
||||
ms.addEventListener("sourceopen", function () {
|
||||
var sb = ms.addSourceBuffer("video/webm");
|
||||
@ -21,13 +19,7 @@ runWithMSE(function (ms, v) {
|
||||
fetchWithXHR("seek.webm", function (arrayBuffer) {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer));
|
||||
sb.addEventListener("updateend", function () {
|
||||
updateCount++;
|
||||
/* Ensure that we endOfStream on the first update event only as endOfStream can
|
||||
raise more if the duration of the last buffered range and the intial duration
|
||||
differ. See bug 1065207 */
|
||||
if (updateCount == 1) {
|
||||
ms.endOfStream();
|
||||
};
|
||||
ms.endOfStream()
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -24,7 +24,7 @@ runWithMSE(function (ms, v) {
|
||||
if (updateCount == 1) {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 25223));
|
||||
}
|
||||
else if (updateCount == 2) {
|
||||
else {
|
||||
ms.endOfStream();
|
||||
}
|
||||
});
|
||||
|
@ -12,20 +12,18 @@
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var updateCount = 0;
|
||||
|
||||
runWithMSE(function (ms, v) {
|
||||
ms.addEventListener("sourceopen", function () {
|
||||
var sb = ms.addSourceBuffer("video/webm");
|
||||
|
||||
fetchWithXHR("seek.webm", function (arrayBuffer) {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 318));
|
||||
var first = true;
|
||||
sb.addEventListener("updateend", function () {
|
||||
updateCount++;
|
||||
if (updateCount == 1) {
|
||||
if (first) {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 318));
|
||||
}
|
||||
else if (updateCount == 2) {
|
||||
first = false;
|
||||
} else {
|
||||
ms.endOfStream();
|
||||
}
|
||||
});
|
||||
|
@ -12,22 +12,20 @@
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var updateCount = 0;
|
||||
|
||||
runWithMSE(function (ms, v) {
|
||||
ms.addEventListener("sourceopen", function () {
|
||||
var sb = ms.addSourceBuffer("video/webm");
|
||||
|
||||
fetchWithXHR("seek.webm", function (arrayBuffer) {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 0, 318));
|
||||
var first = true;
|
||||
sb.addEventListener("updateend", function () {
|
||||
updateCount++;
|
||||
if (updateCount == 1) {
|
||||
if (first) {
|
||||
window.setTimeout(function () {
|
||||
sb.appendBuffer(new Uint8Array(arrayBuffer, 318));
|
||||
first = false;
|
||||
}, 1000);
|
||||
}
|
||||
else if (updateCount == 2) {
|
||||
} else {
|
||||
ms.endOfStream();
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user