Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

// META: global=window,dedicatedworker
// Tests media.webrtc.encoder_creation_strategy set to prefer PEM.
// 0: prefer builtin WebRTC encoder (including OpenH264 via GMP)
// 1: prefer PlatformEncoderModule
const kCodecs = ['video/VP8', 'video/VP9', 'video/H264', 'video/AV1'];
const kResolutions = [
{ name: '1280x720', width: 1280, height: 720, bitrate: 2000000 },
{ name: '3840x2160', width: 3840, height: 2160, bitrate: 20000000 },
];
for (const contentType of kCodecs) {
for (const res of kResolutions) {
promise_test(async () => {
const info = await navigator.mediaCapabilities.encodingInfo({
type: 'webrtc',
video: {
contentType,
width: res.width,
height: res.height,
bitrate: res.bitrate,
framerate: 30,
},
});
assert_equals(typeof info.supported, "boolean");
assert_equals(typeof info.smooth, "boolean");
assert_equals(typeof info.powerEfficient, "boolean");
}, `encodingInfo: ${contentType} ${res.name} resolves under PreferPlatformEncoder`);
}
}