Add TTempSmooth (+ macOS FFT3DFilter) for MCTemporalDenoise; unify deps to 1.4.0#26
Merged
Merged
Conversation
havsfunc's MCTemporalDenoise (used by the noise-reduction filter) calls core.ttmpsm.TTempSmooth, which wasn't built for Linux, so jobs using it crashed with "No attribute with the name ttmpsm". Add it via the existing build_plugin helper (meson, HomeOfVapourSynthEvolution/VapourSynth-TTempSmooth). Verified: the built plugin loads as core.ttmpsm and MCTemporalDenoise runs. Note: ttmpsm is also absent from the published macOS and Windows deps, and macOS additionally lacks fft3dfilter (which MCTemporalDenoise also needs) — so that filter is currently broken on those platforms too (tracked separately). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
havsfunc MCTemporalDenoise needs core.ttmpsm.TTempSmooth and core.fft3dfilter.FFT3DFilter. Checking the published deps zips showed ttmpsm absent on every platform, and macOS additionally missing fft3dfilter — so the noise-reduction filter was broken everywhere. - Windows: add TTempSmooth (prebuilt r4.1 win64 7z); fft3dfilter already present. - macOS: add TTempSmooth + FFT3DFilter — arm64 from the yuygfgg prebuilt pool (mirrors dfttest, with the FFTW install-name fixup), x86_64 built from source via meson (mirrors descratch/nnedi3cl; FFT3DFilter repointed at the bundled FFTW like dfttest). - Linux already adds ttmpsm (prior commit); has fft3dfilter. Unify all platforms back to deps 1.4.0 (deps-v1.4.0) with null sha/size pending a rebuild — every platform's deps change, and 1.4.0 hasn't shipped in an app release yet, so the per-platform version split is dropped. NOTE: the macOS build steps are CI/maintainer-validated (build-deps-macos.yml) — they couldn't be built/tested on the Linux dev machine. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A macOS instance can build the deps locally (the Linux dev box can't). Captures the pre-existing macos-15 runner env drift (Python 3.14 breaking mvtools/znedi3 VS-include probes), evidence, where to look, and a step-by-step fix/verify plan. The TTempSmooth/FFT3DFilter additions are validated on Linux and macOS x64; this unblocks the separate arm64 infra failure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The macОS arm64 plugin builds failed on current macos-15 images (host
Homebrew Python 3.14 has no `vapoursynth` module) and on pre-existing
issues unrelated to the TTempSmooth/FFT3DFilter additions:
- build_plugin: patch the meson `import vapoursynth; vs.get_include()`
probe to the from-source VS include dir (mvtools, bm3d, eedi3m), and
export PKG_CONFIG_PATH so `dependency('vapoursynth')` resolves
(removegrain, cas, nnedi3cl, nnedi3 configure). VS_PC_DIR/VS_INC_DIR
are now computed for both arches.
- znedi3: clone --recurse-submodules (graphengine + vsxx carry the
headers); without them: "'znedi3.h' file not found".
- nnedi3: strip the hardcoded -mfpu=neon (clang rejects it on arm64;
NEON is baseline on aarch64).
- fft3dfilter: arm64 uses the yuygfgg prebuilt; guard the source build
to non-arm64 (it needs fftw3f_threads).
- Add a repoint pass before signing: rewrite plugins' absolute Homebrew
fftw/boost references to the bundled @loader_path/../../lib copies and
normalize each plugin's install id, so plugins load on users' Macs.
Verified locally on Apple Silicon: 25/25 plugins build, no failed
plugins, all refs bundled, and MCTemporalDenoise renders (ttmpsm /
fft3dfilter / mvtools all load).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Homebrew's arm64 ffmpeg 8.1.1 is thinly dynamically-linked (~17 deps under /opt/homebrew/Cellar/ffmpeg, plus x264/x265/dav1d/openssl/...), so `cp $BREW_PREFIX/bin/ffmpeg` produced a 444 KB binary that can't run on a user's Mac (encoding would fail). Runner drift silently broke this; the 1.3.0 arm64 deps shipped a 61 MB static ffmpeg from martin-riedl.de. Download the static arm64 ffmpeg/ffprobe from martin-riedl.de (links only system frameworks), mirroring the evermeet.cx static build used for x64. Update docs accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Windows deps had no CI (only macOS/Linux did), so the windows-x64 bundle had to be built by hand on a Windows box. download-deps-windows.ps1 fetches everything from upstream release URLs and uses the 7-Zip preinstalled on windows-latest, so it runs cleanly in CI. Mirrors build-deps-macos.yml / build-deps-linux.yml: version + optional release_tag inputs, uploads an artifact and (when release_tag is set) to the deps release. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft — Linux + macOS-x64 + Windows fixes are validated; macOS arm64 deps build is blocked by a separate, pre-existing runner-env issue (handoff doc included) and must go green before this ships.
Problem
A user crash:
No attribute with the name ttmpsm—havsfunc.MCTemporalDenoiseneedscore.ttmpsm.TTempSmoothandcore.fft3dfilter.FFT3DFilter. Inspecting the published deps zips:ttmpsmwas missing on every platform, and macOS also lackedfft3dfilter.Fix
build_plugin, meson)core.ttmpsm+MCTemporalDenoiseverifiedTTempSmooth-r4.1-win64.7z)Built TTempSmooth+Built FFT3DFilterAlso unifies deps to a single 1.4.0 / deps-v1.4.0 across all platforms (
app/assets/deps-version.json, sha256/sizenullpending a clean rebuild — every platform's deps change and 1.4.0 hasn't shipped in an app release yet).Why this is a draft (macOS arm64)
build-deps-macos.yml's arm64 job fails on pre-existing issues unrelated to this change: themacos-15runner's Homebrew Python 3.14 breaksmvtools/znedi3's build-timeimport vapoursynthinclude probe (recentmainbuilds were already failing). The Linux dev box can't reproduce/fix macOS builds, sodocs/macos-arm64-deps-build-handoff.mdis a step-by-step plan for a macOS instance to unblock it.Before merge / release
build-deps-linux.yml,build-deps-macos.yml, Windows deps re-run), then fill the fivesha256/sizevalues indeps-version.json.🤖 Generated with Claude Code