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
27 lines
792 B
JavaScript
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.');
|