// Tests that files with a default key and a seperate sample keyids in the
// sgpd box play correctly (if the keyid from the sgpd box is not parsed
// or assigned to the sample we will wait indefinitely for the default
// key).
SimpleTest.waitForExplicitFinish();
// Test files for samples encrypted with different media keys. var gEMESampleGoupTests = [
{
name:"video with 4 keys in sgpd (sbgp in traf sgpd in stbl)", track: {
name:"video",
type:"video/mp4; codecs=\"avc1.64000d\"",
fragments:[ "sample-encrypted-sgpdstbl-sbgptraf.mp4"
]
},
keys: {
// "keyid" : "key" "279926496a7f5d25da69f2b3b2799a7f": "5544694d47473326622665665a396b36", "597669572e55547e656b56586e2f6f68": "7959493a764556786527517849756635", "205b2b293a342f3d3268293e6f6f4e29": "3a4f3674376d6c48675a273464447b40", "32783e367c2e4d4d6b46467b3e6b5478": "3e213f6d45584f51713d534f4b417855",
},
sessionType:"temporary",
sessionCount:1,
duration:2,
},
],
test = gEMESampleGoupTests[0];
video.addEventListener("waitingforkey", () => {
Log(test.name, "waitingforkey");
ok(false, test.name + " Video is waitingforkey, indicating that the samples are not being assigned the correct id from the sgpd box!");
SimpleTest.finish();
});
function LoadEME() { var options = [{
initDataType: "cenc",
videoType: test.track.type,
}];
return navigator.requestMediaKeySystemAccess("org.w3.clearkey", options)
.then((keySystemAccess) => {
return keySystemAccess.createMediaKeys();
}, bail("Failed to request key system access."))
function DownloadMedia(url, type, mediaSource) {
return new Promise((resolve) => { var sourceBuffer = mediaSource.addSourceBuffer(type);
fetchWithXHR(url, (response) => {
once(sourceBuffer, "updateend", resolve);
sourceBuffer.appendBuffer(new Uint8Array(response));
});
});
}
function LoadMSE() {
// Only set the source of the video and download the tracks after we
// have set the license keys, so we don't hit the waitingforkey event
// unless samples are being incorrectly assigned the default key
// (and we can safely fail).
LoadEME()
.then(() => { var ms = new MediaSource(); video.src = URL.createObjectURL(ms);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.