blob: 475705c5f71e105ae4a1409fbece650f95d73728 [file] [log] [blame]
<!DOCTYPE html>
<script src=../resources/testharness.js></script>
<script src=../resources/testharnessreport.js></script>
<script>
// Checks navigator.mediaCapabilities.encodingInfo() with some MIME types that
// should be recordable and a few that shouldn't.
[ [ 'video/webm', true ],
[ 'video/webm;codecs=vp8', true ],
[ 'video/webm;codecs=vp9', true ],
[ 'video/webm;codecs=vp8.0', true ],
[ 'video/webm;codecs=vp9.0', true ],
// 'video/webm' supports audio codec specification, see
// http://www.webmproject.org/docs/container/
[ 'video/webm;codecs="vp8,opus"', true ],
[ 'video/WEBM;codecs="VP8,OPUS"', true ],
[ 'video/webm;codecs="vp9,opus"', true ],
[ 'video/webm;codecs="vp8,vp9,opus"', true ],
[ 'audio/webm', true ],
[ 'audio/webm;codecs=opus', true ],
// Rejected MIME types
[ 'video/invalid', false],
[ 'video/mpeg4', false],
[ 'video/webm;codecs=daala', false],
[ 'audio/invalid', false],
[ 'audio/ogg', false],
[ 'audio/webm;codecs=vorbis', false]]
.forEach(function(args) {
promise_test(function() {
const mimeType = args[0];
const media = mimeType.split('/')[0];
assert_true(media == 'video' || media == 'audio', 'Unsupported media type');
let queryParameters;
if (media == 'video') {
queryParameters = {
type : 'record',
video : {
contentType : mimeType,
width : 640,
height : 480,
bitrate : 10000,
framerate : 30
}
};
} else {
queryParameters = {type : 'record', audio : {contentType : mimeType}};
}
return navigator.mediaCapabilities.encodingInfo(queryParameters)
.then((result) => {
const isSupported = args[1];
assert_equals(isSupported, result.supported, mimeType + 'supported?');
});
}, args[0]);
});
</script>