45 lines
2.1 KiB
HTML
45 lines
2.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="video-test.js"></script>
|
|
<script>
|
|
function HEVCParameterSetToString(set) {
|
|
return `{ ${set.generalProfileSpace }, ${set.generalProfileIDC }, ${set.generalProfileCompatibilityFlags }, ${set.generalLevelIDC } }`;
|
|
}
|
|
function isEqualHEVCParameterSet(setA, setB) {
|
|
return setA.generalProfileSpace === setB.generalProfileSpace
|
|
&& setA.generalProfileIDC === setB.generalProfileIDC
|
|
&& setA.generalProfileCompatibilityFlags === setB.generalProfileCompatibilityFlags
|
|
&& setA.generalLevelIDC === setB.generalLevelIDC
|
|
}
|
|
function makeHEVCParameterSet(generalProfileSpace, generalProfileIDC, generalProfileCompatibilityFlags, generalLevelIDC)
|
|
{
|
|
return {
|
|
generalProfileSpace: generalProfileSpace,
|
|
generalProfileIDC: generalProfileIDC,
|
|
generalProfileCompatibilityFlags: generalProfileCompatibilityFlags,
|
|
generalLevelIDC: generalLevelIDC,
|
|
};
|
|
}
|
|
function testExpectedHEVCParameterSet(testFuncString, expected)
|
|
{
|
|
let observed = eval(testFuncString);
|
|
let success = isEqualHEVCParameterSet(observed, expected);
|
|
reportExpected(success, testFuncString, '===', HEVCParameterSetToString(expected), HEVCParameterSetToString(observed));
|
|
}
|
|
window.addEventListener('load', event => {
|
|
testExpected('internals.parseHEVCCodecParameters("bad-parameter")', null);
|
|
testExpected('internals.parseHEVCCodecParameters("hvc1")', null);
|
|
testExpectedHEVCParameterSet('internals.parseHEVCCodecParameters("hev1.1.6.L93")', makeHEVCParameterSet(0, 1, 6, 93));
|
|
testExpectedHEVCParameterSet('internals.parseHEVCCodecParameters("hev1.A4.41.H120")', makeHEVCParameterSet(1, 4, 65, 120));
|
|
testExpectedHEVCParameterSet('internals.parseHEVCCodecParameters("hev1.B1.4.L63")', makeHEVCParameterSet(2, 1, 4, 63));
|
|
testExpected('internals.parseHEVCCodecParameters("hev1.D1.4.L63")', null);
|
|
testExpected('internals.parseHEVCCodecParameters("hev1.B1.4.L68000")', null);
|
|
endTest();
|
|
}, { once: true });
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|