Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions packages/producer/tests/hdr-hlg-regression/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,6 @@ The suite is intentionally short (5 s, two windows) — it exists to detect
regressions in the HLG-specific code path, not to enumerate every composition
shape (those live in `hdr-regression`).

## Tolerance

`maxFrameFailures` is **0** here. HLG is a pure pass-through path — no known
failures, no transcoder workarounds — and HEVC encoding against the rendered
`rgb48le` buffer is byte-deterministic on the same fixture. Any drift is a
real regression, not codec noise, so the budget is the strictest possible.

## Fixture

`src/hdr-hlg-clip.mp4` — last 5 seconds of a user-recorded HEVC HLG clip,
Expand Down
12 changes: 9 additions & 3 deletions packages/producer/tests/hdr-regression/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,17 @@ covering the highest-value HDR compositing shapes. 10s / 300 frames at 30fps.
## Fixtures

- `src/hdr-clip.mp4` — short HEVC Main10 / BT.2020 PQ clip with a moving
bright gradient (see `NOTICE.md` for attribution).
- `src/hdr-photo-pq.png` — 256x144 16-bit RGB PNG with a hand-injected `cICP`
bright gradient (see `NOTICE.md` for attribution). Reused across windows
A–G and as scene A of the window-H shader transition.
- `src/hdr-photo-pq.png` — 256×144 16-bit RGB PNG with a hand-injected `cICP`
chunk (primaries=BT.2020, transfer=SMPTE ST 2084, matrix=GBR, range=full).
Used as scene B of the window-H shader transition.

To regenerate the PNG fixture:
ffmpeg is **not** used to generate the PNG because it does not embed `cICP`
in PNGs — without that chunk Chromium would not treat the file as HDR and the
test would silently fall back to SDR.

To regenerate the PNG fixture (deterministic, byte-for-byte stable):

```bash
python3 packages/producer/tests/hdr-regression/scripts/generate-hdr-photo-pq.py
Expand Down
4 changes: 2 additions & 2 deletions packages/producer/tests/hdr-regression/meta.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "hdr-regression",
"description": "HDR10 (BT.2020 PQ) regression suite. Four windows (A–D) cover the highest-value HDR compositing shapes: direct <video> opacity tween (A), z-order DOM/HDR/DOM sandwich (B), transform + border-radius (C), and a shader transition between HDR video and HDR PQ image (D). 10s / 300 frames at 30fps.",
"description": "Comprehensive HDR10 (BT.2020 PQ) regression suite. Eight back-to-back 'windows' (A–H) lock down the layered HDR compositing pipeline against the most common composition shapes: baseline pass-through, wrapper-vs-direct opacity, z-order sandwiches, side-by-side multi-source, transform + border-radius, object-fit letterbox, and a shader transition between an HDR video and an HDR PQ image. Window C (direct <video> opacity) is fixed by Chunk 1. Window F (transform + border-radius) is fixed by Chunk 4. The golden is byte-deterministic and `maxFrameFailures` is 0 — any drift in the layered HDR compositor is caught immediately.",
"tags": ["regression", "hdr"],
"minPsnr": 28,
"maxFrameFailures": 5,
"maxFrameFailures": 0,
"minAudioCorrelation": 0,
"maxAudioLagWindows": 1,
"renderConfig": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@
</head>
<body>
<div id="main" data-composition-id="hdr-regression" data-start="0" data-duration="6" data-width="1920" data-height="1080">
<!-- Window A · Baseline HDR + direct opacity tween · 0.0–2.5s -->
<!-- Window A · Baseline HDR + direct opacity tween · 0.0–1.5s -->
<video id="wa-video" class="clip hdr-video" data-start="0" data-duration="1.5" data-track-index="0" src="hdr-clip.mp4" muted playsinline data-has-audio="false" data-end="1.5"></video>
<div class="label label-tl clip" data-start="0" data-duration="1.5">
A · Baseline HDR + opacity tween
Expand Down
4 changes: 2 additions & 2 deletions packages/producer/tests/hdr-regression/output/output.mp4
Git LFS file not shown
Loading