Sending more then one `VideoFrame` to a worker per `postMessage()` at once, sends as many `VideoFrame`s as there were sent, but they are all a duplicate of the first one. I concluded that there are duplicates and not just malformed because when I try to send them back again with `postMessage()` I receive the following error: "duplicate transferable for structured clone". --- Window: ```js const frame1 = new VideoFrame(new ArrayBuffer(4), { format: 'RGBA', codedWidth: 1, codedHeight: 1, timestamp: 0 }) const frame2 = new VideoFrame(new ArrayBuffer(8), { format: 'RGBA', codedWidth: 1, codedHeight: 2, timestamp: 0 }) const worker = new Worker('worker.js') worker.postMessage([frame1, frame2]) ``` Worker: ```js addEventListener('message', (event) => { console.log(event.data[0].codedHeight) console.log(event.data[1].codedHeight) }) ``` Received: ``` 1 1 ``` Expected: ``` 1 2 ```
I've tried this only on Intel hardware: - Safari Technology Preview 182 MacOS Ventura - Safari 17.1 MacOS Ventura - Safari 17.0 MacOS Monterey
<rdar://problem/118445968>
Pull request: https://github.com/WebKit/WebKit/pull/20535
Committed 270772@main (b55438f2a83c): <https://commits.webkit.org/270772@main> Reviewed commits have been landed. Closing PR #20535 and removing active labels.