Files
sousa-gecko/testing/web-platform/tests/webcodecs/videoDecoder-h264-sei.https.any.js
T
Dale Curtis 3153a052d2 Bug 1997001 [wpt PR 55741] - Support H.264 SEI recovery points as keyframes, a=testonly
Automatic update from web-platform-tests
Support H.264 SEI recovery points as keyframes

H.264 SEI recovery points with a recovery_frame_cnt=0 are well
supported as keyframes throughout our pipeline. ffmpeg has support
and our hardware decoders have exposed support since 2021. With
Safari and Firefox both supporting these as keyframes, we should
move to add support as well.

Bug: 451536366

Change-Id: I268e060559724fd92c7f53ebb3aa5cee6ed1e3ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7082888
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Eugene Zemtsov <eugene@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1536952}

--

wpt-commits: 9ab188bddfef32d970a8ae38d02577d29d61af7b
wpt-pr: 55741
2025-11-06 10:25:16 +00:00

27 lines
792 B
JavaScript

// META: global=window,dedicatedworker
// META: script=videoDecoder-codec-specific-setup.js
// META: variant=?h264_sei_avc
// META: variant=?h264_sei_annexb
promise_test(async t => {
await checkImplements();
const callbacks = {};
const decoder = createVideoDecoder(t, callbacks);
decoder.configure(CONFIG);
// Frame 0 is IDR, frame 5 is SEI recovery point.
decoder.decode(CHUNKS[5]);
// First decode the IDR frame to
let outputs = 0;
callbacks.output = frame => {
outputs++;
assert_equals(frame.timestamp, CHUNKS[5].timestamp, 'timestamp');
assert_equals(frame.duration, CHUNKS[5].duration, 'duration');
frame.close();
};
await decoder.flush();
assert_equals(outputs, 1, 'outputs');
}, 'H.264 SEI recovery point frames are treated as keyframes.');