Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
fe0f6cf
docs(ffmpeg): plan complete oracle qualification
gunwooterry Nov 6, 2026
b00739c
docs(ffmpeg): keep source registration fixed
gunwooterry Nov 6, 2026
d71fc54
fix(ffmpeg): check oracle source identities
gunwooterry Nov 6, 2026
7ff9420
docs(ffmpeg): plan nested probe qualification
gunwooterry Nov 6, 2026
0989319
fix(ffmpeg): qualify nested overlay probes
gunwooterry Nov 6, 2026
c20d930
chore(compat): register nested probe qualification
gunwooterry Nov 6, 2026
8bbb5c3
fix(ffmpeg): bind observer and legal-link evidence
gunwooterry Nov 6, 2026
e28a3a5
fix(ffmpeg): retain complete Rust oracle pairs
gunwooterry Nov 6, 2026
15f50b5
fix(ffmpeg): bind composed fixture identity
gunwooterry Nov 6, 2026
51a1704
fix(ffmpeg): retain qualified corpus paths
gunwooterry Nov 6, 2026
6d5ba43
fix(ffmpeg): retain integration oracle pairs
gunwooterry Nov 6, 2026
7b2d1d8
docs(oracle): plan unavailable-input reasons
gunwooterry Nov 6, 2026
a22662c
fix(oracle): keep unavailable inputs as explained unknowns
gunwooterry Nov 6, 2026
ca62d51
fix(oracle): execute the qualified pair in input-summary checks
gunwooterry Nov 6, 2026
ebd9388
test(oracle): select the stdin replay pair through the owner
gunwooterry Nov 6, 2026
97057d9
fix(oracle): pass the qualified pair through the writer audits
gunwooterry Nov 6, 2026
b5eba34
ci(oracle): pass the qualified pair to join and copy checks
gunwooterry Nov 6, 2026
252cbcd
fix(oracle): execute the qualified pair in audio checks
gunwooterry Nov 6, 2026
57f3387
fix(oracle): execute the qualified pair in fixture tools
gunwooterry Nov 6, 2026
12fbc96
fix(oracle): execute the qualified pair in video conformance checks
gunwooterry Nov 6, 2026
5400513
fix(oracle): execute the qualified pair in bench and report tools
gunwooterry Nov 6, 2026
3ff4a4b
test(oracle): run bench and report selection checks in CI
gunwooterry Nov 6, 2026
cf1fa9a
fix(oracle): run encoder and speed tools on the qualified pair
gunwooterry Nov 6, 2026
4048af6
fix(oracle): execute the qualified pair in HEVC and VP9 tools
gunwooterry Nov 6, 2026
a78ba89
docs(oracle): plan registered HLS and Matroska qualification
gunwooterry Nov 6, 2026
40bdb32
fix(compat): qualify HLS and Matroska oracle programs
gunwooterry Nov 6, 2026
de5ef42
chore(compat): register HLS and Matroska oracle qualification
gunwooterry Nov 6, 2026
a18362c
docs(oracle): plan judging roster for the shared owner
gunwooterry Nov 6, 2026
5efee3d
fix(compat): judge the shared oracle owner's modules
gunwooterry Nov 6, 2026
f877b98
chore(compat): register the shared oracle owner's modules
gunwooterry Nov 6, 2026
ad45c9a
test(compat): expect the registered owner modules
gunwooterry Nov 6, 2026
922a552
docs(oracle): plan the VideoToolbox tool freeze move
gunwooterry Nov 6, 2026
488b377
fix(oracle): run VideoToolbox tools on the qualified pair
gunwooterry Nov 6, 2026
9e44a6b
fix(oracle): resolve legacy bare probes to the qualified pair
gunwooterry Nov 6, 2026
230b546
fix(oracle): qualify the thumbnail probe helpers
gunwooterry Nov 6, 2026
5844fb0
fix(oracle): drop the PGO round's separate pin run
gunwooterry Nov 6, 2026
17d7b2f
fix(h264): run G1 metric commands only through pinned tools
gunwooterry Nov 6, 2026
4b31dd7
fix(oracle): run PGO diagnostics PCM on the qualified pair
gunwooterry Nov 6, 2026
3a9fb21
docs(oracle): plan the codec-coverage owner checkout
gunwooterry Nov 6, 2026
1b9ae2f
fix(oracle): qualify codec-coverage oracles through the owner
gunwooterry Nov 6, 2026
af918c3
docs(oracle): plan the input-seek reference selection
gunwooterry Nov 6, 2026
74d43f5
fix(oracle): take the input-seek reference from the qualified oracle
gunwooterry Nov 6, 2026
22efff2
docs(oracle): bind the remaining invocation sites
gunwooterry Nov 6, 2026
5d4bc7f
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
74990c2
fix(oracle): run the HEVC decode and smoke tools on the qualified pair
gunwooterry Nov 6, 2026
23525f6
fix(oracle): keep the HEVC packet oracle pair across arms
gunwooterry Nov 6, 2026
43bdc72
fix(oracle): probe input-seek audio copies with the owner's ffprobe
gunwooterry Nov 6, 2026
13db719
fix(oracle): pass the qualified pair to AAC shape checks
gunwooterry Nov 6, 2026
11812fa
test(oracle): bind the composed fixture key in its cache test
gunwooterry Nov 6, 2026
bdf26b2
docs(oracle): plan the GitHub-shape owner pair
gunwooterry Nov 6, 2026
f81d107
fix(oracle): qualify GitHub-shape measurement through the owner
gunwooterry Nov 6, 2026
6ade014
docs(oracle): rebind historical records moved by main
gunwooterry Nov 6, 2026
2d6d365
test(encoders): import the macOS HEVC smoke from its own directory
gunwooterry Nov 6, 2026
e445d76
docs(oracle): bind the merged-main invocation sites
gunwooterry Nov 6, 2026
3ecc8b4
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
55f7dd6
docs(oracle): plan the AV1 reference oracle pair
gunwooterry Nov 6, 2026
ddd84ef
fix(oracle): judge the AV1 reference through the qualified pair
gunwooterry Nov 6, 2026
4089def
docs(oracle): bind the AV1 reference and merged-main sites
gunwooterry Nov 6, 2026
261c9d1
docs(oracle): record the merged-main classification
gunwooterry Nov 6, 2026
eb09f3f
docs(oracle): rebind the catalogue to the merged-main note
gunwooterry Nov 6, 2026
6966cd4
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
1c59360
docs(oracle): plan the HEVC reference oracle pair
gunwooterry Nov 6, 2026
cd02baf
fix(oracle): run the HEVC reference through the qualified pair
gunwooterry Nov 6, 2026
e80397f
docs(oracle): bind the HEVC reference sites
gunwooterry Nov 6, 2026
56074ed
docs(oracle): record the third main merge classification
gunwooterry Nov 6, 2026
e74a83d
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
493198a
docs(oracle): bind the HEVC kernel workflow sites
gunwooterry Nov 6, 2026
ce8a9c9
docs(oracle): record the fourth main merge classification
gunwooterry Nov 6, 2026
d5a4aef
fix(oracle): pass the whole qualified pair to thumbnail probe helpers
gunwooterry Nov 6, 2026
151de32
fix(oracle): hand the remux checker its retained pair
gunwooterry Nov 6, 2026
f6aa62f
docs(oracle): plan the composed audio oracle verification
gunwooterry Nov 6, 2026
779aa48
fix(oracle): keep the qualified pair in the composed audio check
gunwooterry Nov 6, 2026
443d4d9
test(compat): isolate the oracle cache in the unpinned ffmpeg test
gunwooterry Nov 6, 2026
b7ac1a2
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
0baf590
docs(oracle): bind the composed, remux and fifth merge sites
gunwooterry Nov 6, 2026
933a87a
docs(oracle): record the fifth main merge classification
gunwooterry Nov 6, 2026
c05dda6
fix(oracle): keep oracle_kd.py at its Opus-registered bytes
gunwooterry Nov 6, 2026
3a1b6d7
chore(compat): register the restored oracle_kd.py
gunwooterry Nov 6, 2026
48fbd9f
docs(oracle): classify the withdrawn and guarded-PATH probe sites
gunwooterry Nov 6, 2026
1ee58f4
docs(oracle): record the remaining probe bypasses
gunwooterry Nov 6, 2026
91bc185
docs(oracle): rebind the catalogue to the updated note
gunwooterry Nov 6, 2026
14df6c2
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
d58be19
chore(oracle): reclassify rows moved by the main merge
gunwooterry Nov 6, 2026
ebec6b0
docs(oracle): record the sixth main merge
gunwooterry Nov 6, 2026
aa056c4
docs(oracle): rebind the catalogue to the sixth-merge note
gunwooterry Nov 6, 2026
59c1134
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
434f7c4
docs(oracle): record the seventh main merge
gunwooterry Nov 6, 2026
30f81ca
docs(oracle): rebind the catalogue to the seventh-merge note
gunwooterry Nov 6, 2026
6bb2a42
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
9c37f78
chore(oracle): reclassify HEVC rows moved by the main merge
gunwooterry Nov 6, 2026
c994320
docs(oracle): record the eighth main merge
gunwooterry Nov 6, 2026
72d01b7
docs(oracle): rebind the catalogue to the eighth-merge note
gunwooterry Nov 6, 2026
34bb7ac
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
065a3dc
docs(oracle): record the ninth main merge
gunwooterry Nov 6, 2026
cf3e916
docs(oracle): rebind the catalogue to the ninth-merge note
gunwooterry Nov 6, 2026
dbc21c0
fix(oracle): select the writer audit pair through the owner
gunwooterry Nov 6, 2026
2fd0c4d
fix(vp9): bind the oracle owner to filter capture sources
gunwooterry Nov 6, 2026
3cb7976
docs(oracle): state the follow-up scope without completion
gunwooterry Nov 6, 2026
3e59446
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
0272586
chore(oracle): reclassify rows changed by the review fixes
gunwooterry Nov 6, 2026
3577df3
docs(oracle): record the tenth main merge and review fixes
gunwooterry Nov 6, 2026
828d01a
docs(oracle): rebind the catalogue to the tenth-merge note
gunwooterry Nov 6, 2026
0484394
fix(oracle): select the stage-3 runner pair through the owner
gunwooterry Nov 6, 2026
047a60e
fix(oracle): qualify an explicit ffprobe with its own pair
gunwooterry Nov 6, 2026
b13d5fa
chore(oracle): reclassify rows changed by the second review
gunwooterry Nov 6, 2026
15bd853
docs(oracle): record the counts after the second review
gunwooterry Nov 6, 2026
89595d4
docs(oracle): rebind the catalogue to the updated counts
gunwooterry Nov 6, 2026
7dac6a6
docs(oracle): carry the unchanged KD rows across the count update
gunwooterry Nov 6, 2026
86674c9
Merge origin/main into fix/oracle-classification-gate
gunwooterry Nov 6, 2026
1e1054f
chore(oracle): reclassify rows changed by the HEVC backend merge
gunwooterry Nov 6, 2026
118b0d4
docs(oracle): record the HEVC backend merge
gunwooterry Nov 6, 2026
f6721cf
docs(oracle): rebind the catalogue to the HEVC merge note
gunwooterry Nov 6, 2026
d6d8810
fix(stage3): pass the qualified pair to capture children
gunwooterry Nov 6, 2026
17d9d10
chore(oracle): reclassify rows moved by the capture pair fix
gunwooterry Nov 6, 2026
be2a287
docs(oracle): record the stage3 capture pair fix
gunwooterry Nov 6, 2026
a92b1d4
chore(oracle): rebind the catalogue to the capture fix note
gunwooterry Nov 6, 2026
bef4efd
ci(fixtures): retry and probe the composed comparator download
gunwooterry Nov 6, 2026
dbf4060
chore(oracle): reclassify rows moved by the fixture retry
gunwooterry Nov 6, 2026
86a64a6
docs(oracle): record the composed fixture retry
gunwooterry Nov 6, 2026
ef79d1a
chore(oracle): rebind the catalogue to the fixture retry note
gunwooterry Nov 6, 2026
44936a1
ci(fixtures): clear composed output after each failed attempt
gunwooterry Nov 6, 2026
d5f0594
chore(oracle): reclassify rows moved by the fixture cleanup
gunwooterry Nov 6, 2026
548ec48
ci(audio): retry the Opus archive downloads on any error
gunwooterry Nov 6, 2026
3d8b5db
chore(oracle): rebind rows to the audio download retry
gunwooterry Nov 6, 2026
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
23 changes: 19 additions & 4 deletions .github/actions/ci-fixtures/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ runs:
helpers=$(grep -o '\$SCRIPTS/[A-Za-z0-9_.-]*' scripts/gen-fixtures.sh | sed 's|^\$SCRIPTS/|scripts/|' | sort -u)
support=$(python3 -I -B -c 'import sys; sys.path.insert(0, "scripts"); from test_oracle import SUPPORT; print(" ".join("scripts/" + name for name in SUPPORT))')
identity="$(cat scripts/gen-fixtures.sh scripts/install-oracle-ffmpeg.sh scripts/oracle-ffmpeg.env $helpers $support | sha256sum | cut -c1-32)"
composed="$(cat docs/design/composed-opus-aac-v2.json scripts/composed_audio.py scripts/composed_audio_fixtures.py scripts/install-oracle-ffmpeg.sh $support | sha256sum | cut -c1-32)"
echo "key=linux-x64-fixtures-$identity" >> "$GITHUB_OUTPUT"
echo "composed=linux-x64-composed-$composed" >> "$GITHUB_OUTPUT"
- name: Restore the fixtures
id: fixtures
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
Expand All @@ -23,7 +25,7 @@ runs:
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ${{ runner.temp }}/coreav-composed-fixtures
key: linux-x64-composed-${{ hashFiles('docs/design/composed-opus-aac-v2.json', 'scripts/composed_audio.py', 'scripts/composed_audio_fixtures.py', 'scripts/oracle_audio.py', 'scripts/oracle-audio-args.txt', 'scripts/oracle-ffmpeg.env', 'scripts/install-oracle-ffmpeg.sh') }}
key: ${{ steps.key.outputs.composed }}
- name: Cache pinned black-box binaries
if: steps.fixtures.outputs.cache-hit != 'true' || steps.composed.outputs.cache-hit != 'true'
id: ffmpeg-cache
Expand All @@ -50,8 +52,21 @@ runs:
if: steps.composed.outputs.cache-hit != 'true'
shell: bash
run: |
python3 -I scripts/composed_audio_fixtures.py \
--ffmpeg "$RUNNER_TEMP/coreav-oracle-bin/ffmpeg" --out "$RUNNER_TEMP/coreav-composed-fixtures"
url=$(python3 -I -c 'import json; print(json.load(open("docs/design/composed-opus-aac-v2.json"))["opus_compare"]["url"])')
rm -rf "$RUNNER_TEMP/coreav-composed-fixtures"
for attempt in 1 2 3; do
if python3 -I scripts/composed_audio_fixtures.py \
--ffmpeg "$RUNNER_TEMP/coreav-oracle-bin/ffmpeg" --out "$RUNNER_TEMP/coreav-composed-fixtures"; then
exit 0
fi
rm -rf "$RUNNER_TEMP/coreav-composed-fixtures"
status=0
probe=$(curl --silent --show-error --location --proto =https --proto-redir =https --connect-timeout 15 \
--max-time 60 --range 0-1023 --output /dev/null --write-out '%{http_code} %{url_effective}' "$url" 2>&1) || status=$?
echo "::warning::composed fixtures attempt $attempt failed; comparator archive probe: curl exit $status, $probe"
if [ "$attempt" -lt 3 ]; then sleep $((attempt * 60)); fi
done
exit 1
- name: Publish the registered composed-audio fixtures
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
Expand All @@ -64,7 +79,7 @@ runs:
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ${{ runner.temp }}/coreav-composed-fixtures
key: linux-x64-composed-${{ hashFiles('docs/design/composed-opus-aac-v2.json', 'scripts/composed_audio.py', 'scripts/composed_audio_fixtures.py', 'scripts/oracle_audio.py', 'scripts/oracle-audio-args.txt', 'scripts/oracle-ffmpeg.env', 'scripts/install-oracle-ffmpeg.sh') }}
key: ${{ steps.key.outputs.composed }}
- name: Publish this run's fixtures
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/audio-conformance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ jobs:
set -euo pipefail
mkdir -p "$RUNNER_TEMP/opus-vectors"
cd "$RUNNER_TEMP/opus-vectors"
curl -sSfL --retry 3 -o vectors.tar.gz "$OPUS_VECTORS_URL"
curl -sSfL --retry 3 --retry-all-errors --retry-delay 5 -o vectors.tar.gz "$OPUS_VECTORS_URL"
echo "$OPUS_VECTORS_SHA256 vectors.tar.gz" | sha256sum -c -
tar xzf vectors.tar.gz
rm vectors.tar.gz
Expand All @@ -539,7 +539,7 @@ jobs:
set -euo pipefail
mkdir -p "$RUNNER_TEMP/opus-compare"
cd "$RUNNER_TEMP/opus-compare"
curl -sSfL --retry 3 -o libopus.tar.gz "$LIBOPUS_URL"
curl -sSfL --retry 3 --retry-all-errors --retry-delay 5 -o libopus.tar.gz "$LIBOPUS_URL"
echo "$LIBOPUS_SHA256 libopus.tar.gz" | sha256sum -c -
tar xzf libopus.tar.gz opus-1.6.1/src/opus_compare.c
cc -O2 -o opus_compare opus-1.6.1/src/opus_compare.c -lm
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1085,7 +1085,14 @@ jobs:
run: |
set -euo pipefail
cargo test --locked --release -p coreav-isobmff-write --test join fixtures_round_trip -- --ignored
ORACLE_PATHS="$(python3 -I -B scripts/test_oracle.py --resolve)"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I scripts/join_check.py --manifest "$COREAV_JOIN_OUT/manifest.json" \
--ffmpeg "$FFMPEG" --ffprobe "$FFPROBE" \
--mediainfo "$RUNNER_TEMP/coreav-oracle-bin/mediainfo" --ffmpeg-concat \
--report "$RUNNER_TEMP/coreav-join.json"
# docs/design/compat-cli.md, "coreav ffmpeg" (R3 on the fixtures):
Expand All @@ -1104,7 +1111,14 @@ jobs:
set -euo pipefail
cargo test --locked --release -p coreav-cli --test ffmpeg the_0_1_0_commands_on_the_fixtures -- --ignored
cargo test --locked --release -p coreav-cli --test ffmpeg_concat c02_guard_concat_preserves_complete_native_output -- --ignored
ORACLE_PATHS="$(python3 -I -B scripts/test_oracle.py --resolve)"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I tools/compat-corpus/copy_check.py --records "$COREAV_FFMPEG_OUT/records.json" \
--ffmpeg "$FFMPEG" --ffprobe "$FFPROBE" \
--mediainfo "$RUNNER_TEMP/coreav-oracle-bin/mediainfo" \
--report "$RUNNER_TEMP/coreav-ffmpeg.json"
COREAV_CURRENT_CI_ORACLE=1 python3 -I -m unittest discover -s tools/compat-corpus/tests -p test_copy_check.py
Expand Down Expand Up @@ -1678,7 +1692,14 @@ jobs:
run: |
set -euo pipefail
cargo test --locked --release -p coreav-cli --test ffmpeg the_0_1_0_commands_on_the_fixtures -- --ignored
ORACLE_PATHS="$(python3 -I -B scripts/test_oracle.py --resolve)"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I tools/compat-corpus/copy_check.py --records "$COREAV_FFMPEG_OUT/records.json" \
--ffmpeg "$FFMPEG" --ffprobe "$FFPROBE" \
--mediainfo mediainfo --report "$RUNNER_TEMP/mkv-ffmpeg.json"
# docs/design/remux.md, "Audio sample entries": FLAC, ALAC, AC-3 and
# E-AC-3 copied into MP4 by remux, clip, split, join and coreav ffmpeg
Expand Down
108 changes: 98 additions & 10 deletions .github/workflows/codec-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,21 @@ jobs:
with:
ref: ${{ needs.coverage-plan.outputs.commit }}
persist-credentials: false
- name: Check out the oracle owner from this run's commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.sha }}
path: oracle-owner
persist-credentials: false
sparse-checkout: |
/scripts/test_oracle.py
/scripts/oracle_pin.py
/scripts/oracle_pin_macos.py
/scripts/oracle-ffmpeg.env
/scripts/oracle-ffmpeg-macos.env
sparse-checkout-cone-mode: false
- name: Keep the oracle owner outside the candidate tree
run: mv "$GITHUB_WORKSPACE/oracle-owner" "$RUNNER_TEMP/oracle-owner"
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: coverage-binaries
Expand Down Expand Up @@ -438,8 +453,15 @@ jobs:
run: |
set -euo pipefail
chmod +x "$RUNNER_TEMP/bin/decode-oracle"
ORACLE_PATHS="$(python3 -I -B "$RUNNER_TEMP/oracle-owner/scripts/test_oracle.py" --resolve \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe")"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I tools/compat-corpus/decode_breadth.py run --decode-oracle "$RUNNER_TEMP/bin/decode-oracle" \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe" \
--ffmpeg "$FFMPEG" --ffprobe "$FFPROBE" \
--files "$RUNNER_TEMP/private/set.json" --shard "$SHARD/$SHARDS" --fetch "$RUNNER_TEMP/media" \
--deadline "$DEADLINE" --records "$RUNNER_TEMP/private/v1.jsonl" --jobs 2
- name: Count what the shard left for the rerun host
Expand Down Expand Up @@ -559,6 +581,21 @@ jobs:
with:
ref: ${{ needs.coverage-plan.outputs.commit }}
persist-credentials: false
- name: Check out the oracle owner from this run's commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.sha }}
path: oracle-owner
persist-credentials: false
sparse-checkout: |
/scripts/test_oracle.py
/scripts/oracle_pin.py
/scripts/oracle_pin_macos.py
/scripts/oracle-ffmpeg.env
/scripts/oracle-ffmpeg-macos.env
sparse-checkout-cone-mode: false
- name: Keep the oracle owner outside the candidate tree
run: mv "$GITHUB_WORKSPACE/oracle-owner" "$RUNNER_TEMP/oracle-owner"
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: coverage-binaries
Expand All @@ -582,8 +619,15 @@ jobs:
scripts/gen-fixtures.sh "$RUNNER_TEMP/fixtures"
scripts/gen-fixtures-mkv.sh "$RUNNER_TEMP/fixtures"
scripts/gen-fixtures-ts.sh "$RUNNER_TEMP/fixtures"
python3 -I scripts/gen-v2-fixtures.py --ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" \
--ffprobe "$RUNNER_TEMP/oracle/ffprobe" --out "$RUNNER_TEMP/fixtures"
ORACLE_PATHS="$(python3 -I -B "$RUNNER_TEMP/oracle-owner/scripts/test_oracle.py" --resolve \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe")"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I scripts/gen-v2-fixtures.py --ffmpeg "$FFMPEG" \
--ffprobe "$FFPROBE" --out "$RUNNER_TEMP/fixtures"
- name: Record the host and the fixtures
run: |
mkdir -p "$RUNNER_TEMP/public"
Expand All @@ -600,7 +644,15 @@ jobs:
python3 -I -m unittest discover -s scripts/tests -p 'test_gen_v2_fixtures.py'
- name: Verify supplemental reference assignments
run: |
python3 -I scripts/v2_fixture_check.py --ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" \
set -euo pipefail
ORACLE_PATHS="$(python3 -I -B "$RUNNER_TEMP/oracle-owner/scripts/test_oracle.py" --resolve \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe")"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I scripts/v2_fixture_check.py --ffmpeg "$FFMPEG" \
--fixtures "$RUNNER_TEMP/fixtures" --work "$RUNNER_TEMP/fixture-check" \
--report "$RUNNER_TEMP/public/v2-fixture-reference.json"
- name: V2 and V3, encode breadth and the native share
Expand All @@ -611,10 +663,17 @@ jobs:
chmod +x "$RUNNER_TEMP/bin/coreav" "$RUNNER_TEMP/bin/ffmpeg-harness" "$RUNNER_TEMP/bin/x264"
# 0: a complete run; 2: void (a fallback log line that ran, a fault, a missing command), a result all the
# same. Anything else is not a run.
ORACLE_PATHS="$(python3 -I -B "$RUNNER_TEMP/oracle-owner/scripts/test_oracle.py" --resolve \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe")"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
code=0
python3 -I tools/compat-corpus/encode_breadth.py run --coreav "$RUNNER_TEMP/bin/coreav" \
--harness "$RUNNER_TEMP/bin/ffmpeg-harness" --ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" \
--ffprobe "$RUNNER_TEMP/oracle/ffprobe" --x264 "$RUNNER_TEMP/bin/x264" \
--harness "$RUNNER_TEMP/bin/ffmpeg-harness" --ffmpeg "$FFMPEG" \
--ffprobe "$FFPROBE" --x264 "$RUNNER_TEMP/bin/x264" \
--fixtures "$RUNNER_TEMP/fixtures" --work "$RUNNER_TEMP/work" \
--records "$RUNNER_TEMP/public/v2-v3.jsonl" --summary "$RUNNER_TEMP/public/v2-v3-summary.json" \
--jobs 4 || code=$?
Expand Down Expand Up @@ -649,6 +708,21 @@ jobs:
[ "$(git rev-parse HEAD)" = "$COMMIT" ] || { echo '::error::image checkout differs from the selected commit'; exit 1; }
python3 -I scripts/png_bmp_yuv_plan.py --event "$GITHUB_EVENT_NAME" --ref "$GITHUB_REF" \
--set v2 --registration "$REGISTRATION" --commit "$COMMIT"
- name: Check out the oracle owner from this run's commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.sha }}
path: oracle-owner
persist-credentials: false
sparse-checkout: |
/scripts/test_oracle.py
/scripts/oracle_pin.py
/scripts/oracle_pin_macos.py
/scripts/oracle-ffmpeg.env
/scripts/oracle-ffmpeg-macos.env
sparse-checkout-cone-mode: false
- name: Keep the oracle owner outside the candidate tree
run: mv "$GITHUB_WORKSPACE/oracle-owner" "$RUNNER_TEMP/oracle-owner"
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
name: coverage-binaries
Expand All @@ -666,9 +740,16 @@ jobs:
scripts/gen-fixtures.sh "$RUNNER_TEMP/fixtures"
scripts/gen-fixtures-mkv.sh "$RUNNER_TEMP/fixtures"
scripts/gen-fixtures-ts.sh "$RUNNER_TEMP/fixtures"
python3 -I scripts/gen-v2-fixtures.py --ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" \
--ffprobe "$RUNNER_TEMP/oracle/ffprobe" --out "$RUNNER_TEMP/fixtures"
python3 -I scripts/v2_fixture_check.py --ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" \
ORACLE_PATHS="$(python3 -I -B "$RUNNER_TEMP/oracle-owner/scripts/test_oracle.py" --resolve \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe")"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I scripts/gen-v2-fixtures.py --ffmpeg "$FFMPEG" \
--ffprobe "$FFPROBE" --out "$RUNNER_TEMP/fixtures"
python3 -I scripts/v2_fixture_check.py --ffmpeg "$FFMPEG" \
--fixtures "$RUNNER_TEMP/fixtures" --work "$RUNNER_TEMP/fixture-check" \
--report "$RUNNER_TEMP/public/v2-fixture-reference.json"
python3 -I scripts/codec_coverage_gcp.py host --job v2-images --oracle "$RUNNER_TEMP/oracle" \
Expand All @@ -682,11 +763,18 @@ jobs:
chmod +x "$RUNNER_TEMP/bin/coreav" "$RUNNER_TEMP/bin/ffmpeg-harness" \
"$RUNNER_TEMP/bin/image-harness" "$RUNNER_TEMP/bin/x264"
cp "$RUNNER_TEMP/bin/manifest-image-build.json" "$RUNNER_TEMP/public/"
ORACLE_PATHS="$(python3 -I -B "$RUNNER_TEMP/oracle-owner/scripts/test_oracle.py" --resolve \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe")"
if ! { IFS= read -r FFMPEG && IFS= read -r FFPROBE; } <<< "$ORACLE_PATHS" ||
[[ -z "$FFMPEG" || -z "$FFPROBE" || "$ORACLE_PATHS" != "$FFMPEG"$'\n'"$FFPROBE" ]]; then
echo "stage=oracle_qualification: invalid retained oracle pair" >&2
exit 1
fi
python3 -I tools/compat-corpus/png_bmp_yuv.py run --registration "$REGISTRATION" \
--coreav "$RUNNER_TEMP/bin/coreav" --harness "$RUNNER_TEMP/bin/ffmpeg-harness" \
--image-harness "$RUNNER_TEMP/bin/image-harness" \
--build-manifest "$RUNNER_TEMP/bin/manifest-image-build.json" \
--ffmpeg "$RUNNER_TEMP/oracle/ffmpeg" --ffprobe "$RUNNER_TEMP/oracle/ffprobe" \
--ffmpeg "$FFMPEG" --ffprobe "$FFPROBE" \
--x264 "$RUNNER_TEMP/bin/x264" --fixtures "$RUNNER_TEMP/fixtures" \
--work "$RUNNER_TEMP/image-work" --records "$RUNNER_TEMP/public/v2-images.jsonl" \
--summary "$RUNNER_TEMP/public/v2-images-summary.json" \
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deny.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ jobs:
set -euo pipefail
python3 -I scripts/workflow_check.py
python3 -I scripts/compat_sources.py check
python3 -I scripts/compat_frozen_check.py
python3 -I scripts/oracle_pin.py --check
python3 -I scripts/workflow_check_selftest.py
python3 -I -m unittest discover -s .github/actions/changed-paths/tests -p 'test_*.py'
Expand Down
Loading
Loading