| <!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> |