mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1146733 - remove PlayFragmented() from eme.js r=ediwn.
This commit is contained in:
parent
08529c6a80
commit
77bab63134
@ -156,65 +156,6 @@ function MaybeCrossOriginURI(test, uri)
|
||||
}
|
||||
}
|
||||
|
||||
function PlayFragmented(test, elem, token)
|
||||
{
|
||||
if (!test.fragments) {
|
||||
ok(false, token + " test does not have a fragments list");
|
||||
return Promise.reject();
|
||||
}
|
||||
|
||||
return new Promise(function(resolve, reject) {
|
||||
var ms = new MediaSource();
|
||||
elem.src = URL.createObjectURL(ms);
|
||||
|
||||
var sb;
|
||||
var curFragment = 0;
|
||||
|
||||
function addNextFragment() {
|
||||
/* We can get another updateevent as a result of calling ms.endOfStream() if
|
||||
the highest end time of our source buffers is different from that of the
|
||||
media source duration. Due to bug 1065207 this can happen because of
|
||||
inaccuracies in the frame duration calculations. Check if we are already
|
||||
"ended" and ignore the update event */
|
||||
if (ms.readyState == "ended") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (curFragment >= test.fragments.length) {
|
||||
Log(token, "addNextFragment() end of stream");
|
||||
ms.endOfStream();
|
||||
resolve();
|
||||
return;
|
||||
}
|
||||
|
||||
var fragmentFile = MaybeCrossOriginURI(test, test.fragments[curFragment++]);
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open("GET", fragmentFile);
|
||||
req.responseType = "arraybuffer";
|
||||
|
||||
req.addEventListener("load", function() {
|
||||
Log(token, "fetch of " + fragmentFile + " complete, appending");
|
||||
sb.appendBuffer(new Uint8Array(req.response));
|
||||
});
|
||||
|
||||
req.addEventListener("error", function(){info(token + " error fetching " + fragmentFile);});
|
||||
req.addEventListener("abort", function(){info(token + " aborted fetching " + fragmentFile);});
|
||||
|
||||
Log(token, "addNextFragment() fetching next fragment " + fragmentFile);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
ms.addEventListener("sourceopen", function () {
|
||||
Log(token, "sourceopen");
|
||||
sb = ms.addSourceBuffer(test.type);
|
||||
sb.addEventListener("updateend", addNextFragment);
|
||||
|
||||
addNextFragment();
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
function AppendTrack(test, ms, track, token)
|
||||
{
|
||||
return new Promise(function(resolve, reject) {
|
||||
@ -275,7 +216,9 @@ function AppendTrack(test, ms, track, token)
|
||||
});
|
||||
}
|
||||
|
||||
function PlayMultiTrack(test, elem, token)
|
||||
//Returns a promise that is resolved when the media element is ready to have
|
||||
//its play() function called; when it's loaded MSE fragments.
|
||||
function LoadTest(test, elem, token)
|
||||
{
|
||||
if (!test.tracks) {
|
||||
ok(false, token + " test does not have a tracks list");
|
||||
@ -306,27 +249,6 @@ function PlayMultiTrack(test, elem, token)
|
||||
});
|
||||
}
|
||||
|
||||
// Returns a promise that is resolved when the media element is ready to have
|
||||
// its play() function called; when it's loaded MSE fragments, or once the load
|
||||
// has started for non-MSE video.
|
||||
function LoadTest(test, elem, token)
|
||||
{
|
||||
if (test.fragments) {
|
||||
// A |fragments| array indicates that this is an MSE test case with one track.
|
||||
return PlayFragmented(test, elem, token);
|
||||
}
|
||||
|
||||
if (test.tracks) {
|
||||
// A |tracks| array indicates that this is an MSE test case with multiple tracks.
|
||||
return PlayMultiTrack(test, elem, token);
|
||||
}
|
||||
|
||||
// This file isn't fragmented; won't set the media source normally because
|
||||
// EME doesn't support non-MSE source.
|
||||
ok(false, token + " test does not have a fragments or tracks list");
|
||||
return Promise.reject();
|
||||
}
|
||||
|
||||
function SetupEME(test, token, params)
|
||||
{
|
||||
var v = document.createElement("video");
|
||||
|
@ -648,11 +648,16 @@ var gMetadataTests = [
|
||||
var gEMETests = [
|
||||
{
|
||||
name:"bipbop-cenc-videoinit.mp4",
|
||||
type:"video/mp4; codecs=\"avc1.64000d,mp4a.40.2\"",
|
||||
fragments:[ "bipbop-cenc-videoinit.mp4",
|
||||
"bipbop-cenc-video1.m4s",
|
||||
"bipbop-cenc-video2.m4s",
|
||||
],
|
||||
tracks: [
|
||||
{
|
||||
name:"video",
|
||||
type:"video/mp4; codecs=\"avc1.64000d\"",
|
||||
fragments:[ "bipbop-cenc-videoinit.mp4",
|
||||
"bipbop-cenc-video1.m4s",
|
||||
"bipbop-cenc-video2.m4s",
|
||||
]
|
||||
}
|
||||
],
|
||||
keys: {
|
||||
// "keyid" : "key"
|
||||
"7e571d037e571d037e571d037e571d03" : "7e5733337e5733337e5733337e573333",
|
||||
@ -663,11 +668,16 @@ var gEMETests = [
|
||||
},
|
||||
{
|
||||
name:"bipbop-cenc-videoinit.mp4",
|
||||
type:"video/mp4; codecs=\"avc1.64000d,mp4a.40.2\"",
|
||||
fragments:[ "bipbop-cenc-videoinit.mp4",
|
||||
"bipbop-cenc-video1.m4s",
|
||||
"bipbop-cenc-video2.m4s",
|
||||
],
|
||||
tracks: [
|
||||
{
|
||||
name:"video",
|
||||
type:"video/mp4; codecs=\"avc1.64000d\"",
|
||||
fragments:[ "bipbop-cenc-videoinit.mp4",
|
||||
"bipbop-cenc-video1.m4s",
|
||||
"bipbop-cenc-video2.m4s",
|
||||
]
|
||||
}
|
||||
],
|
||||
keys: {
|
||||
// "keyid" : "key"
|
||||
"7e571d037e571d037e571d037e571d03" : "7e5733337e5733337e5733337e573333",
|
||||
@ -679,7 +689,6 @@ var gEMETests = [
|
||||
},
|
||||
{
|
||||
name:"bipbop-cenc-videoinit.mp4",
|
||||
type:"video/mp4; codecs=\"avc1.64000d,mp4a.40.2\"",
|
||||
tracks: [
|
||||
{
|
||||
name:"audio",
|
||||
@ -709,7 +718,6 @@ var gEMETests = [
|
||||
},
|
||||
{
|
||||
name:"bipbop-cenc-videoinit.mp4",
|
||||
type:"video/mp4; codecs=\"avc1.64000d,mp4a.40.2\"",
|
||||
tracks: [
|
||||
{
|
||||
name:"audio",
|
||||
|
Loading…
Reference in New Issue
Block a user