fix docker build: missing wget and C++ includes for GCC16
Continuous Integration / Build (push) Failing after 1m0s

- add wget to deps Dockerfile for dsdmo.dll download
- include <mutex> in wmischook.cpp
- include <codecvt> and load SHCreateMemStream dynamically in sndbhook.cpp for XP compat
This commit is contained in:
2026-08-07 00:21:58 +02:00
parent 0c1998abe4
commit da77f60b71
3 changed files with 8 additions and 1 deletions
+1
View File
@@ -7,6 +7,7 @@ RUN pacman --noconfirm -Syu git \
ninja \ ninja \
cmake \ cmake \
unzip \ unzip \
wget \
mingw-w64-crt \ mingw-w64-crt \
mingw-w64-winpthreads \ mingw-w64-winpthreads \
mingw-w64-gcc \ mingw-w64-gcc \
+6 -1
View File
@@ -7,6 +7,7 @@
#include "util/libutils.h" #include "util/libutils.h"
#include "util/utils.h" #include "util/utils.h"
#include "avs/core.h" #include "avs/core.h"
#include <codecvt>
#include <cstring> #include <cstring>
@@ -85,10 +86,12 @@ typedef HRESULT (*MFCreateMFByteStreamOnStream_t)(IStream *, IMFByteStream **);
typedef HRESULT (*MFCreateSourceReaderFromByteStream_t)(IMFByteStream *, IMFAttributes *, IMFSourceReader **); typedef HRESULT (*MFCreateSourceReaderFromByteStream_t)(IMFByteStream *, IMFAttributes *, IMFSourceReader **);
typedef HRESULT (*MFStartup_t)(ULONG, DWORD); typedef HRESULT (*MFStartup_t)(ULONG, DWORD);
typedef HRESULT (*MFShutdown_t)(); typedef HRESULT (*MFShutdown_t)();
typedef IStream *(*SHCreateMemStream_t)(const BYTE *, UINT);
MFCreateMFByteStreamOnStream_t MFCreateMFByteStreamOnStream; MFCreateMFByteStreamOnStream_t MFCreateMFByteStreamOnStream;
MFCreateSourceReaderFromByteStream_t MFCreateSourceReaderFromByteStream; MFCreateSourceReaderFromByteStream_t MFCreateSourceReaderFromByteStream;
MFStartup_t MFStartup; MFStartup_t MFStartup;
MFShutdown_t MFShutdown; MFShutdown_t MFShutdown;
SHCreateMemStream_t SHCreateMemStream;
struct wav_hdr struct wav_hdr
{ {
char sig_riff[4] = {'R', 'I', 'F', 'F'}; char sig_riff[4] = {'R', 'I', 'F', 'F'};
@@ -229,13 +232,15 @@ bool init()
HMODULE mf_ = libutils::try_library("mf.dll"); HMODULE mf_ = libutils::try_library("mf.dll");
HMODULE mfreadwrite_ = libutils::try_library("mfreadwrite.dll"); HMODULE mfreadwrite_ = libutils::try_library("mfreadwrite.dll");
HMODULE mfplat_ = libutils::try_library("mfplat.dll"); HMODULE mfplat_ = libutils::try_library("mfplat.dll");
if (!mf_ || !mfreadwrite_ || !mfplat_) return false; HMODULE shlwapi_ = libutils::try_library("shlwapi.dll");
if (!mf_ || !mfreadwrite_ || !mfplat_ || !shlwapi_) return false;
// Required by linker // Required by linker
MFCreateMFByteStreamOnStream = (MFCreateMFByteStreamOnStream_t) GetProcAddress(mfplat_, "MFCreateMFByteStreamOnStream"); MFCreateMFByteStreamOnStream = (MFCreateMFByteStreamOnStream_t) GetProcAddress(mfplat_, "MFCreateMFByteStreamOnStream");
MFStartup = (MFStartup_t) GetProcAddress(mfplat_, "MFStartup"); MFStartup = (MFStartup_t) GetProcAddress(mfplat_, "MFStartup");
MFShutdown = (MFShutdown_t) GetProcAddress(mfplat_, "MFShutdown"); MFShutdown = (MFShutdown_t) GetProcAddress(mfplat_, "MFShutdown");
MFCreateSourceReaderFromByteStream = (MFCreateSourceReaderFromByteStream_t) GetProcAddress(mfreadwrite_, "MFCreateSourceReaderFromByteStream"); MFCreateSourceReaderFromByteStream = (MFCreateSourceReaderFromByteStream_t) GetProcAddress(mfreadwrite_, "MFCreateSourceReaderFromByteStream");
SHCreateMemStream = (SHCreateMemStream_t) GetProcAddress(shlwapi_, "SHCreateMemStream");
if (!MFCreateMFByteStreamOnStream || !MFCreateSourceReaderFromByteStream || !MFStartup || !MFShutdown || FAILED(MFStartup(MF_VERSION, MFSTARTUP_FULL))) if (!MFCreateMFByteStreamOnStream || !MFCreateSourceReaderFromByteStream || !MFStartup || !MFShutdown || FAILED(MFStartup(MF_VERSION, MFSTARTUP_FULL)))
return false; return false;
+1
View File
@@ -5,6 +5,7 @@
#include "util/libutils.h" #include "util/libutils.h"
#include "util/utils.h" #include "util/utils.h"
#include <mmsystem.h> #include <mmsystem.h>
#include <mutex>
namespace hooks::wmisc::msacm namespace hooks::wmisc::msacm