summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js
blob: 7063d8588700d45c2958738360e070f7d7978f6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// META: global=window,dedicatedworker
// META: script=/webcodecs/utils.js

function testSharedArrayBufferEncodedAudioChunk(useView) {
  let data = new SharedArrayBuffer(3);
  let view = new Uint8Array(data);
  view[0] = 0x0A;
  view[1] = 0x0B;
  view[2] = 0x0C;

  let chunk = new EncodedAudioChunk(
      {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 => {
  testSharedArrayBufferEncodedAudioChunk(/*useView=*/ false);
}, 'Test construction and copyTo() using a SharedArrayBuffer');

test(t => {
  testSharedArrayBufferEncodedAudioChunk(/*useView=*/ true);
}, 'Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)');