haikuwebkit/LayoutTests/media/mediacapabilities/mock-decodingInfo-alphaChan...

51 lines
2.4 KiB
HTML
Raw Permalink Normal View History

Add experimental "alphaChannel" property to VideoConfiguration https://bugs.webkit.org/show_bug.cgi?id=195853 Reviewed by Eric Carlson. Source/WebCore: Test: media/mediacapabilities/mock-decodingInfo-alphaChannel.html Add a new, experimental addition to Media Capabilities to allow pages to query for alpha channel support. * Modules/mediacapabilities/MediaCapabilities.cpp: (WebCore::MediaCapabilities::decodingInfo): * Modules/mediacapabilities/MediaCapabilities.h: * Modules/mediacapabilities/MediaCapabilities.idl: * Modules/mediacapabilities/VideoConfiguration.idl: * SourcesCocoa.txt: * WebCore.xcodeproj/project.pbxproj: * platform/cocoa/VideoToolboxSoftLink.cpp: * platform/cocoa/VideoToolboxSoftLink.h: * platform/graphics/cocoa/HEVCUtilitiesCocoa.h: * platform/graphics/cocoa/HEVCUtilitiesCocoa.mm: Renamed from Source/WebCore/platform/graphics/cocoa/HEVCUtilitiesCocoa.cpp. (WebCore::validateHEVCParameters): * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp: (WebCore::createMediaPlayerDecodingConfigurationCocoa): * platform/mediacapabilities/VideoConfiguration.h: * platform/mock/MediaEngineConfigurationFactoryMock.cpp: (WebCore::canDecodeMedia): (WebCore::canEncodeMedia): LayoutTests: * media/mediacapabilities/mock-decodingInfo-alphaChannel-expected.txt: Added. * media/mediacapabilities/mock-decodingInfo-alphaChannel.html: Added. Canonical link: https://commits.webkit.org/210178@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243109 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-03-18 22:29:55 +00:00
<!DOCTYPE html>
<html>
<head>
<script src=../video-test.js></script>
<script type="text/javascript">
var promise;
var info;
async function doTest()
{
if (!window.internals) {
failTest("Internals is required for this test.")
return;
}
run('internals.enableMockMediaCapabilities()');
run('internals.settings.setMediaCapabilitiesExtensionsEnabled(true)');
run("promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs=\"mock-with-alpha\"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5 }});");
info = await shouldResolve(promise);
testExpected('info.supported', true);
testExpected('info.supportedConfiguration.video.alphaChannel', null);
run("promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs=\"mock-with-alpha\"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: false }});");
info = await shouldResolve(promise);
testExpected('info.supported', true);
testExpected('info.supportedConfiguration.video.alphaChannel', false);
run("promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs=\"mock-with-alpha\"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: true }});");
info = await shouldResolve(promise);
testExpected('info.supported', true);
testExpected('info.supportedConfiguration.video.alphaChannel', true);
run("promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs=\"mock-without-alpha\"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: false }});");
info = await shouldResolve(promise);
testExpected('info.supported', true);
testExpected('info.supportedConfiguration.video.alphaChannel', false);
run("promise = navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs=\"mock-without-alpha\"', height: 720, bitrate: 1000, width: 1280, framerate: 24.5, alphaChannel: true }});");
info = await shouldResolve(promise);
testExpected('info.supported', false);
testExpected('info.supportedConfiguration.video.alphaChannel', true);
endTest();
}
</script>
</head>
<body onload="doTest()" />
</html>