| RUN(internals.setSystemHasBatteryForTesting(true)) |
| RUN(internals.setSystemHasACForTesting(true)) |
| RUN(internals.setHardwareVP9DecoderDisabledForTesting(true)) |
| RUN(internals.setVP9ScreenSizeAndScaleForTesting(1024, 768, 1)) |
| |
| Test that 4k @ 30fps is supported, smooth, but not powerEfficient |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.00.41.08"', height: 1080, bitrate: 800000, width: 3180, framerate: 30 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: true, powerEfficient: false, smooth: true }') OK |
| |
| Test that 4k @ 60fps is supported, but not smooth or powerEfficient |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.00.41.08"', height: 1080, bitrate: 800000, width: 3180, framerate: 60 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: true, powerEfficient: false, smooth: false }') OK |
| |
| Test unsupported codec configurations. |
| Profiles 1 and 3 should be unsupported. |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.01.41.08"', height: 1080, bitrate: 800000, width: 3180, framerate: 30 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: false, powerEfficient: false, smooth: false }') OK |
| |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.03.41.08"', height: 1080, bitrate: 800000, width: 3180, framerate: 30 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: false, powerEfficient: false, smooth: false }') OK |
| |
| Pixel depths above 10 are unsupported. |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.00.41.12"', height: 1080, bitrate: 800000, width: 3180, framerate: 60 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: false, powerEfficient: false, smooth: false }') OK |
| |
| Chroma subsampling 422 or 444 are unsupported. |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.00.41.08.02.01.01.01.01"', height: 1080, bitrate: 800000, width: 3180, framerate: 60 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: false, powerEfficient: false, smooth: false }') OK |
| |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.00.41.08.03.01.01.01.01"', height: 1080, bitrate: 800000, width: 3180, framerate: 60 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: false, powerEfficient: false, smooth: false }') OK |
| |
| Test that SW VP9 decoder is not supported on battery power when screen is not 4k resolution |
| RUN(internals.setSystemHasACForTesting(false)) |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.00.41.08"', height: 1080, bitrate: 800000, width: 3180, framerate: 30 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: false, powerEfficient: false, smooth: false }') OK |
| |
| Test that SW VP9 decoder is supported on battery power when screen is at least 4k resolution |
| RUN(internals.setVP9ScreenSizeAndScaleForTesting(3840, 2160, 1)) |
| RUN(promise = navigator.mediaCapabilities.decodingInfo({ type: 'media-source', video: { contentType: 'video/mp4; codecs="vp09.00.41.08"', height: 1080, bitrate: 800000, width: 3180, framerate: 30 }});) |
| Promise resolved OK |
| EXPECTED (info === '{ supported: true, powerEfficient: false, smooth: true }') OK |
| END OF TEST |
| |