// META: global=window,dedicatedworker // META: script=/webcodecs/utils.js function testSharedArrayBufferEncodedVideoChunk(useView) { let data = new SharedArrayBuffer(3); let view = new Uint8Array(data); view[0] = 0x0A; view[1] = 0x0B; view[2] = 0x0C; let chunk = new EncodedVideoChunk( {type: 'key', timestamp: 10, duration: 123, data: useView ? view : data}); assert_equals(chunk.byteLength, 3, 'byteLength'); let copyDest = new SharedArrayBuffer(3); let destView = new Uint8Array(copyDest); chunk.copyTo(useView ? destView : copyDest); assert_equals(destView[0], 0x0A, 'copyDest[0]'); assert_equals(destView[1], 0x0B, 'copyDest[1]'); assert_equals(destView[2], 0x0C, 'copyDest[2]'); } test(t => { testSharedArrayBufferEncodedVideoChunk(/*useView=*/ false); }, 'Test construction and copyTo() using a SharedArrayBuffer'); test(t => { testSharedArrayBufferEncodedVideoChunk(/*useView=*/ true); }, 'Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)');