When constructing a WebCodecs VideoFrame from a CanvasImageSource with an explicit integer timestamp, Safari/WebKit deterministically changes some timestamp values by -1 microsecond.
For example:
const canvas = document.createElement('canvas');
canvas.width = 2;
canvas.height = 2;
const frame = new VideoFrame(canvas, {
timestamp: 1001000
});
console.log(frame.timestamp);
Expected
Actual in Safari/WebKit
Reproduced on macOS Safari 26.5.2, iOS 26/18.
When constructing a WebCodecs
VideoFramefrom aCanvasImageSourcewith an explicit integertimestamp, Safari/WebKit deterministically changes some timestamp values by -1 microsecond.For example:
Expected
Actual in Safari/WebKit
Reproduced on macOS Safari 26.5.2, iOS 26/18.