Skip to content

Should an explicitly supplied VideoFrameInit.timestamp be preserved exactly across all VideoFrame constructor source types? #945

Description

@sgsub

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

1001000

Actual in Safari/WebKit

1000999

Reproduced on macOS Safari 26.5.2, iOS 26/18.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions