// META: global=window,dedicatedworker // META: script=/resources/WebIDLParser.js // META: script=/resources/idlharness.js // META: script=./utils.js // META: timeout=long 'use strict'; var defaultCodecInit = { output: function() { assert_unreached("unexpected output"); }, error: function() { assert_unreached("unexpected error"); }, } var defaultAudioChunkInit = { type: 'key', timestamp: 1234, duration: 9876, data: new Uint8Array([5, 6, 7, 8]) }; var defaultVideoChunkInit = { type: 'key', timestamp: 1234, duration: 5678, data: new Uint8Array([9, 10, 11, 12]) }; idl_test(['webcodecs'], ['dom', 'html', 'webidl'], async idlArray => { self.imageBody = await fetch('four-colors.png').then(response => response.arrayBuffer()); let decoder = new ImageDecoder({data: self.imageBody, type: 'image/png'}); await decoder.tracks.ready; self.imageTracks = decoder.tracks.selectedTrack; idlArray.add_objects({ AudioDecoder: [`new AudioDecoder(defaultCodecInit)`], VideoDecoder: [`new VideoDecoder(defaultCodecInit)`], AudioEncoder: [`new AudioEncoder(defaultCodecInit)`], VideoEncoder: [`new VideoEncoder(defaultCodecInit)`], EncodedAudioChunk: [`new EncodedAudioChunk(defaultAudioChunkInit)`], EncodedVideoChunk: [`new EncodedVideoChunk(defaultVideoChunkInit)`], AudioData: [`make_audio_data(1234, 2, 8000, 100)`], VideoFrame: [ `new VideoFrame(makeImageBitmap(32, 16), {timestamp: 100, duration: 33})` ], VideoColorSpace: [ `new VideoColorSpace()`, `new VideoColorSpace({primaries: 'bt709', transfer: 'bt709', matrix: 'bt709', fullRange: true})`, ], ImageDecoder: [`new ImageDecoder({data: self.imageBody, type: 'image/png'})`], ImageTrackList: [`new ImageDecoder({data: self.imageBody, type: 'image/png'}).tracks`], ImageTrack: [`self.imageTracks`], }); });