From db4f077048a8bd45e727af194c69f90a72ffa619 Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Tue, 21 Nov 2023 12:31:18 +0000 Subject: [PATCH] Bug 1862098 [wpt PR 42856] - Prepare to enable HDR media capabilities by default., a=testonly Automatic update from web-platform-tests Prepare to enable HDR media capabilities by default. I2S approved here: https://groups.google.com/a/chromium.org/g/blink-dev/c/0neM-5GDn8I/m/ymH32sDDAgAJ This cleans up an unnecessary feature flag and implements the rest of the feature per the current spec. Adds a test for mismatched color space information. https://github.com/w3c/media-capabilities/issues/152 covers how we should reject mismatched color parameters, though a PR to add it to the spec hasn't yet been made. Safari has implemented this behavior though, so copy it. Bug: 1048045 Change-Id: I4fee62361c697922bb041724f4e4ac8c8e9d5c2d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4989038 Reviewed-by: Johannes Kron Commit-Queue: Dale Curtis Cr-Commit-Position: refs/heads/main{#1217958} -- wpt-commits: f1f1925c4876c73f932d35e0a038b619b861ed83 wpt-pr: 42856 UltraBlame original commit: 04c64b3491fa73115ddc56ccc442cb7655e7bd2e --- .../media-capabilities/decodingInfo.any.js | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/testing/web-platform/tests/media-capabilities/decodingInfo.any.js b/testing/web-platform/tests/media-capabilities/decodingInfo.any.js index dbe8c120c9b78..ecbbee9d9a802 100644 --- a/testing/web-platform/tests/media-capabilities/decodingInfo.any.js +++ b/testing/web-platform/tests/media-capabilities/decodingInfo.any.js @@ -3,7 +3,7 @@ -var minimalVideoConfiguration = { +const minimalVideoConfiguration = { contentType: 'video/webm; codecs="vp09.00.10.08"', width: 800, height: 600, @@ -13,28 +13,29 @@ var minimalVideoConfiguration = { -var minimalAudioConfiguration = { +const minimalAudioConfiguration = { contentType: 'audio/webm; codecs="opus"', }; -var audioConfigurationWithSpatialRendering = { +const audioConfigurationWithSpatialRendering = { contentType: 'audio/webm; codecs="opus"', spatialRendering: true, }; -var videoConfigurationWithDynamicRange = { - contentType: 'video/webm; codecs="vp09.00.10.08"', +const videoConfigurationWithDynamicRange = { + contentType: 'video/webm; codecs="vp09.00.10.08.00.09.16.09.00"', width: 800, height: 600, bitrate: 3000, framerate: 24, - hdrMetadataType: "smpteSt2086", - colorGamut: "srgb", - transferFunction: "srgb", -} + hdrMetadataType: 'smpteSt2086', + colorGamut: 'rec2020', + transferFunction: 'pq', +}; + promise_test(t => { return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo()); @@ -363,6 +364,25 @@ promise_test(t => { }); }, "Test that decodingInfo with hdrMetadataType, colorGamut, and transferFunction set returns a valid MediaCapabilitiesInfo objects"); +promise_test(t => { + + + let bt709Config = videoConfigurationWithDynamicRange; + bt709Config.contentType = 'video/webm; codecs="vp09.00.10.08"'; + return navigator.mediaCapabilities + .decodingInfo({ + type: 'file', + video: bt709Config, + }) + .then(ability => { + assert_equals(typeof ability.supported, 'boolean'); + assert_equals(typeof ability.smooth, 'boolean'); + assert_equals(typeof ability.powerEfficient, 'boolean'); + assert_equals(typeof ability.keySystemAccess, 'object'); + assert_false(ability.supported); + }); +}, 'Test that decodingInfo with mismatched codec color space is unsupported'); + promise_test(t => { return promise_rejects_js(t, TypeError, navigator.mediaCapabilities.decodingInfo({ type: 'file',