| const data = new Uint8Array([ |
| 1, 2, 3, 4, 5, 6, 7, 8, |
| 9, 10, 11, 12, 13, 14, 15, 16, |
| ]); |
| let received = new Map(); |
| self.onmessage = (e) => { |
| if (e.data == 'create-frame') { |
| let frameOrError = null; |
| try { |
| frameOrError = new VideoFrame(data, { |
| timestamp: 0, |
| codedWidth: 2, |
| codedHeight: 2, |
| format: 'RGBA', |
| }); |
| } catch (error) { |
| frameOrError = error |
| } |
| e.source.postMessage(frameOrError); |
| return; |
| } |
| if (e.data.hasOwnProperty('id')) { |
| e.source.postMessage( |
| received.get(e.data.id) ? 'RECEIVED' : 'NOT_RECEIVED'); |
| return; |
| } |
| if (e.data.toString() == '[object VideoFrame]') { |
| received.set(e.data.timestamp, e.data); |
| } |
| }; |