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