| // 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`], |
| }); |
| }); |