Restore SDL2 + libopenal (avdevice deps); Redist 7.1.3#5
Merged
oysteinkrog merged 1 commit intoJul 5, 2026
Merged
Conversation
The 7.1.2 slim repack dropped SDL2.dll and libopenal-1.dll on the premise they were ffplay-only. They are not: avdevice-if-61.dll links both, and avdevice is a static import of ffmpeg.exe/ffprobe.exe, so the shared-linked exes fail at startup with STATUS_DLL_NOT_FOUND (0xC0000135) without them. ffplay.exe stays dropped (nothing else imports it). Restore both DLLs into FFmpeg/bin, drop the Exclude from the Redist pack globs, bump to 7.1.3. Update verify_redist forbidden list to ffplay.exe + *.pdb only, require avdevice-if-61.dll in the exe pe-imports gate, and regenerate redist-manifest.txt (71 -> 73 entries). Fixes: DESKTOP-12084 Co-Authored-By: Claude Fable 5 <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.
What this does
Restores
SDL2.dllandlibopenal-1.dllto theFFmpeg.AutoGen.Redistnative payload and ships it as version 7.1.3.ffplay.exestays dropped.Why
The 7.1.2 slim repackaging removed
ffplay.exe,SDL2.dll, andlibopenal-1.dllon the premise that SDL2 + OpenAL were consumed only byffplay.exe. That premise is wrong.avdevice-if-61.dlllinks againstSDL2.dllandlibopenal-1.dll, andavdevice-if-61.dllis a static import of bothffmpeg.exeandffprobe.exe. The Windows loader therefore resolvesavdeviceat process startup, which needs SDL2 + OpenAL; with them removed and absent fromSystem32, every spawnedffmpeg/ffprobeinvocation fails immediately withSTATUS_DLL_NOT_FOUND(0xC0000135) before doing any work. 7.1.1 was immune only because its exes were statically linked (134 MB) and imported noav*-ifDLLs. In-process FFmpeg.AutoGen bindings are unaffected because they never loadavdevice.objdump evidence on the 7.1.2 payload:
A recursive dependency walk of the built output found exactly two DLLs missing from the whole graph:
SDL2.dllandlibopenal-1.dll. Adding them back flips the downstream MotionCatalyst FFmpeg test suite from 41 failed to 0.What's in here
SDL2.dll(2.4 MB) andlibopenal-1.dll(1.9 MB) restored intoFFmpeg/bin/, extracted from the committedmingw-w64-x86_64-ffmpeg-if-bundled-7.1-1-any.pkg.tar.zst; byte-identical to the copies already present inFFmpeg/bin/x64/.SDL2.dll/libopenal-1.dllExcluderemoved from both pack/copyItemGroups inFFmpeg.AutoGen.Redist.csproj.ffplay.exeremains dropped (it is the one binary nothing else imports).FFmpeg.AutoGen.Redistversion bumped to 7.1.3.verify_redist.py: forbidden set is nowffplay.exe+*.pdbonly; the pe-imports gate additionally requiresavdevice-if-61.dllin the exe import tables and still forbids a directSDL2.dllimport (which the exes correctly do not have).redist-manifest.txtregenerated (71 to 73 entries). Self-tests updated.Net native payload is about 86 MB versus the 338 MB original 7.1.1, so the size win of the original slimming is preserved.
The genuinely correct long-term slim is to rebuild the IF bundle with
avdevicedisabled (or without its SDL/OpenAL device backends), letting the exes drop theavdeviceimport and shed SDL2 + OpenAL for real. That needs an FFmpeg rebuild and is out of scope here.How to review
python scripts/test_verify_redist.py— 19 tests OK.dotnet build FFmpeg.AutoGen.Redist -c Release && dotnet pack FFmpeg.AutoGen.Redist -c Release --no-build -o artifacts/nupkgs, thenpython scripts/verify_redist.py artifacts/nupkgs/FFmpeg.AutoGen.Redist.7.1.3.nupkg --expected-version 7.1.3— all six gates PASS.Fixes: DESKTOP-12084