Skip to content

fix: stub out AVVideoDecoder on Windows ARM64 instead of excluding it - #642

Merged
BenJule merged 1 commit into
developfrom
fix/641-arm64-avvideodecoder-stub
Jul 28, 2026
Merged

fix: stub out AVVideoDecoder on Windows ARM64 instead of excluding it#642
BenJule merged 1 commit into
developfrom
fix/641-arm64-avvideodecoder-stub

Conversation

@BenJule

@BenJule BenJule commented Jul 28, 2026

Copy link
Copy Markdown
Owner

After #640 fixed the NEON/SIMD compile errors, the ARM64 nightly build got all the way through compilation and failed at link time instead:

libslic3r_gui.lib(wxMediaCtrl3.obj) : error LNK2001: unresolved external symbol "AVVideoDecoder::AVVideoDecoder(void)"
... 6 unresolved externals total
BambuStudio.dll : fatal error LNK1120: 6 unresolved externals

CMakeLists.txt excludes AVVideoDecoder.cpp/.hpp from the ARM64 source list entirely (no prebuilt libav there), but wxMediaCtrl3.cpp unconditionally includes the header and declares an AVVideoDecoder instance. The header itself compiles fine (it's just a class declaration), but there's no .cpp providing the implementation, hence the link failure.

Rather than touching the ~130-line streaming thread in wxMediaCtrl3.cpp with a spread of #ifdefs, this moves the exclusion inside AVVideoDecoder.cpp/.hpp: the real libav-based implementation is guarded by the already-existing BAMBUSTUDIO_NO_AVVIDEODECODER define (already set for MSVC ARM64 at CMakeLists.txt:760), with a stub implementation for when it's defined that always reports failure. The file is now always part of SLIC3R_GUI_SOURCES instead of being conditionally excluded. wxMediaCtrl3.cpp needs zero changes - camera/live-view will just report "no frame" on ARM64 instead of the whole binary failing to link.

Closes #641

…e whole file

CMakeLists.txt excluded AVVideoDecoder.cpp/.hpp entirely for MSVC ARM64 (no
prebuilt libav libraries there), but wxMediaCtrl3.cpp unconditionally
includes the header and uses the class - the header compiled fine (it's
just a declaration), but there was no implementation to link against,
causing 6 unresolved externals and a link failure.

Move the exclusion inside AVVideoDecoder.cpp/.hpp instead: guard the real
libav-based implementation with the existing BAMBUSTUDIO_NO_AVVIDEODECODER
define (already set for MSVC ARM64) and provide a stub that always reports
failure when it's defined. wxMediaCtrl3.cpp needs no changes - camera/
live-view just won't decode any frames on ARM64 instead of the binary
failing to link.

Closes #641
@BenJule BenJule self-assigned this Jul 28, 2026
@BenJule
BenJule requested a review from Copilot July 28, 2026 16:27
@github-actions github-actions Bot added area: ci GitHub Actions, CI/CD platform: windows Windows-specific issue area: build Build system, CMake, scripts area: ui User interface / wxWidgets area: slicing Slicing engine, toolpath generation labels Jul 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@BenJule
BenJule merged commit 97fb808 into develop Jul 28, 2026
13 of 14 checks passed
@BenJule
BenJule deleted the fix/641-arm64-avvideodecoder-stub branch July 28, 2026 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: build Build system, CMake, scripts area: ci GitHub Actions, CI/CD area: slicing Slicing engine, toolpath generation area: ui User interface / wxWidgets platform: windows Windows-specific issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants