| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>media-allowed-codecs</title> |
| <script src="video-test.js"></script> |
| <script> |
| window.addEventListener('load', async event => { |
| if (!window.internals) { |
| failTest('Requires window.internals'); |
| return; |
| } |
| |
| video = document.createElement('video'); |
| run('internals.settings.setAllowedMediaVideoCodecIDs(null)'); |
| run('internals.settings.setAllowedMediaAudioCodecIDs(null)'); |
| run('internals.settings.setAllowedMediaCodecTypes(null)'); |
| testExpected('video.canPlayType("video/mp4; codecs=avc1")', 'probably'); |
| testExpected('video.canPlayType("video/mp4; codecs=mp4v")', 'probably'); |
| run('video.src = "content/test.mp4"'); |
| await Promise.race([waitForAndSucceed(video, 'canplay'), waitForAndFail(video, 'error')]); |
| |
| video = document.createElement('video'); |
| run('internals.settings.setAllowedMediaVideoCodecIDs("avc1")'); |
| run('internals.settings.setAllowedMediaAudioCodecIDs("aac ")'); |
| run('internals.settings.setAllowedMediaCodecTypes("avc1,mp4a.40")'); |
| testExpected('video.canPlayType("video/mp4; codecs=avc1")', 'probably'); |
| testExpected('video.canPlayType("video/mp4; codecs=mp4v")', ''); |
| run('video.src = "content/test.mp4"'); |
| await Promise.race([waitForAndSucceed(video, 'canplay'), waitForAndFail(video, 'error')]); |
| |
| video = document.createElement('video'); |
| run('internals.settings.setAllowedMediaVideoCodecIDs("vp09")'); |
| run('internals.settings.setAllowedMediaAudioCodecIDs("opus")'); |
| run('internals.settings.setAllowedMediaCodecTypes("vp09,opus")'); |
| testExpected('video.canPlayType("video/mp4; codecs=avc1")', ''); |
| testExpected('video.canPlayType("video/mp4; codecs=mp4v")', ''); |
| run('video.src = "content/test.mp4"'); |
| await Promise.race([waitForAndSucceed(video, 'error'), waitForAndFail(video, 'canplay')]); |
| |
| video = document.createElement('video'); |
| run('internals.settings.setAllowedMediaVideoCodecIDs("avc1")'); |
| run('internals.settings.setAllowedMediaAudioCodecIDs("opus")'); |
| run('internals.settings.setAllowedMediaCodecTypes("avc1,opus")'); |
| run('video.src = "content/test.mp4"'); |
| await Promise.race([waitForAndSucceed(video, 'error'), waitForAndFail(video, 'canplay')]); |
| |
| video = document.createElement('video'); |
| run('internals.settings.setAllowedMediaVideoCodecIDs("vp09")'); |
| run('internals.settings.setAllowedMediaAudioCodecIDs("aac ")'); |
| run('internals.settings.setAllowedMediaCodecTypes("vp09,mp4a.40")'); |
| run('video.src = "content/test.mp4"'); |
| await Promise.race([waitForAndSucceed(video, 'error'), waitForAndFail(video, 'canplay')]); |
| |
| endTest(); |
| }); |
| </script> |
| </head> |
| <body> |
| </body> |
| </html> |