Skip to content

refactor(interop): split the side-data packer, the section finder and the x265 CSV reader (HISS-04, HISS-02) - #77

Merged
lusoris merged 4 commits into
masterfrom
refactor/hiss-zero-interop
Oct 5, 2026
Merged

lusoris merged 4 commits into
masterfrom
refactor/hiss-zero-interop

Conversation

@lusoris

@lusoris lusoris commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

What & why

Five baselined HISS infractions in libpelorus/src/interop.c and qp_report_csv.c are removed: pel_blob_pack, pel_blob_find_section and pel_qp_report_from_blocks are split into helpers, pel_x265_csv_parse reads its rows in a helper, and split_fields() counts its steps against PEL_CSV_LINE_MAX instead of looping with for (;;). Behaviour is unchanged. This is the Pelorus half of VMAFx's "HISS baseline to zero": VMAFx vendors these files byte for byte (ADR-1113) and re-vendors them after this merges. The baseline goes 99 to 93 (the sixth row is scripts/check-build-config.py, see below).

A second commit fixes a defect found on the way: scripts/check-build-config.py --self-test ran its Git fixtures against the repository being pushed when started from the pre-push hook (Git exports GIT_DIR / GIT_WORK_TREE to hooks). The first push attempt committed fixture commits onto this very branch, created the branches base and n1.2.3 and wrote core.hooksPath, commit.gpgsign, gpg.program, diff.orderFile, filter.pelorus-fail and user.name into the repository config. main() now drops the repository-selecting variables and a self-test regression proves it; without the scrub the fixtures fail with pathspec 'sample.txt' did not match any files.

Reproducer / smoke-test

meson test -C build --suite=fast        # 28 of 28, including interop-abi
GIT_DIR=$(git rev-parse --git-dir) GIT_WORK_TREE=$PWD python3 scripts/check-build-config.py --self-test

Per-PR checklist (ADR-0100 / ADR-0108 — see CONTRIBUTING.md)

  • ADR — n/a: standards refactor and a test-harness fix, no decision
  • Per-surface docs — n/a: internal, no user-discoverable surface
  • Research digest — no digest needed: trivial
  • Decision matrix — no alternatives: only-one-way fix
  • AGENTS.md invariant note — no rebase-sensitive invariants
  • Changelog fragment changelog.d/changed/0153-hiss-interop-split.md, changelog.d/fixed/0155-build-config-fixture-git-env.md
  • Rebase note — no rebase impact: no FFmpeg patch-stack file changes
  • Patch-stack sync — n/a
  • Interop ABI — untouched (no struct, constant or wire-format change; the conformance fixture passes unchanged)
  • Shader source — n/a
  • Touched files lint-clean (clang-format; praetorctl audit 93 within 93)
  • Conventional Commit subjects; not committing to master directly

… the x265 CSV reader (HISS-04, HISS-02)

Five baselined HISS infractions in libpelorus/src/interop.c and
qp_report_csv.c: pel_blob_pack, pel_blob_find_section and
pel_qp_report_from_blocks are split into helpers, pel_x265_csv_parse reads its
rows in a helper, and split_fields() counts its steps against
PEL_CSV_LINE_MAX. Behaviour is unchanged; the conformance fixture and the fast
suite pass.
…ository a hook runs in

Git exports GIT_DIR and GIT_WORK_TREE to hooks, and the fixtures of
scripts/check-build-config.py --self-test inherited them. Run from the
pre-push hook they committed fixture commits onto the pushed branch, created
the branches base and n1.2.3 and wrote core.hooksPath, commit.gpgsign,
gpg.program, diff.orderFile, filter.pelorus-fail and user.name into the real
repository config. main() now drops the repository-selecting variables, and a
self-test regression proves it; without the scrub the fixtures fail with
"pathspec 'sample.txt' did not match any files".

The file carried a baselined HISS-04 row, so renovate_validator_regressions()
is split into a case table and two helpers (93 baselined, from 94).
@lusoris
lusoris merged commit 013bc59 into master Oct 5, 2026
8 checks passed
@lusoris
lusoris deleted the refactor/hiss-zero-interop branch October 5, 2026 12:13
Tualua pushed a commit to Tualua/vmafx that referenced this pull request Oct 5, 2026
…hat carries the HISS splits (HISS-04, HISS-02) (VMAFx#2117)

* refactor(interop): re-vendor the Pelorus interop sources at the pin that carries the HISS splits (HISS-04, HISS-02)

PELORUS_VENDOR_SHA moves to 013bc59f04f1 (VMAFx/pelorus#77), which splits
pel_blob_pack, pel_blob_find_section, pel_qp_report_from_blocks and
pel_x265_csv_parse and bounds split_fields(). The vendored files are rendered by
scripts/sync-pelorus-interop.sh --update (ABI 1.3 unchanged; --check reports OK)
and the nine baselined rows they carried are gone (baseline 173 to 164). The pin
also brings Pelorus's UTF-8 path opening for the qp-report CSV reader.

* docs: regenerate the indexes and the citation map after rebasing
lusoris added a commit that referenced this pull request Oct 8, 2026
…onto master

The rebase onto 11e183e kept master's side of the two generated files at each
conflicting stop, so this commit renders them once at the tip.

CHANGELOG.md is rendered from changelog.d/ with
`scripts/release/concat-changelog-fragments.sh --write`; it now carries the
fragments from both this branch and master (#77, #78, #79, #89, #91).

.standards-baseline.json is re-recorded with the pinned engine (0af07a73,
`standardsctl baseline --record`) at 51 infractions: 28 HISS-01, 21 HISS-04,
two HISS-07. That is the branch's 56 minus the five interop and x265 CSV
entries that #77 cleared. Every recorded fingerprint is also present in
master's baseline (93) and in the branch's previous one (56), so no finding
is added. README and docs/development/build.md state the new count.

The FFmpeg patch stack regenerates byte for byte against n9.0.2, so it is
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request Oct 8, 2026
…onto master

The rebase onto 11e183e kept master's side of the two generated files at each
conflicting stop, so this commit renders them once at the tip.

CHANGELOG.md is rendered from changelog.d/ with
`scripts/release/concat-changelog-fragments.sh --write`; it now carries the
fragments from both this branch and master (#77, #78, #79, #89, #91).

.standards-baseline.json is re-recorded with the pinned engine (0af07a73,
`standardsctl baseline --record`) at 51 infractions: 28 HISS-01, 21 HISS-04,
two HISS-07. That is the branch's 56 minus the five interop and x265 CSV
entries that #77 cleared. Every recorded fingerprint is also present in
master's baseline (93) and in the branch's previous one (56), so no finding
is added. README and docs/development/build.md state the new count.

The FFmpeg patch stack regenerates byte for byte against n9.0.2, so it is
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant