Here is an update to OpenAL 1.24.3.
openal-soft-1.24.3: Fixed using as a static library when linked into another project that uses fmtlib. Fixed building with static VC runtimes. Fixed building with Windows headers that default to older targets. Fixed building on 32-bit targets that use 32-bit file offsets. Fixed handling WASAPI enumerated device changes. Fixed a crash with UWP builds when __wargv is null. Fixed using AL_FORMAT_BFORMAT3D_I32. Improved the bsinc resamplers' cutoff frequencies. Slightly reduced the aliasing noise in the cubic spline resampler. Added new bsinc48 and fast_bsinc48 resampler options. Added support for 16KB page sizes on Android. Added support for using NFC filters with UHJ output. Tested on aarch64 and build tested with GCC 8. Index: Makefile =================================================================== RCS file: /cvs/ports/audio/openal/Makefile,v retrieving revision 1.69 diff -u -p -u -p -r1.69 Makefile --- Makefile 29 Apr 2025 12:50:31 -0000 1.69 +++ Makefile 16 Jul 2025 03:07:06 -0000 @@ -1,10 +1,9 @@ COMMENT = cross-platform 3D audio API -V = 1.24.2 +V = 1.24.3 DISTNAME = openal-soft-$V PKGNAME = openal-$V EPOCH = 0 -REVISION = 1 CATEGORIES = audio SHARED_LIBS = openal 6.0 Index: distinfo =================================================================== RCS file: /cvs/ports/audio/openal/distinfo,v retrieving revision 1.17 diff -u -p -u -p -r1.17 distinfo --- distinfo 29 Jan 2025 10:59:26 -0000 1.17 +++ distinfo 16 Jul 2025 03:07:06 -0000 @@ -1,2 +1,2 @@ -SHA256 (openal-soft-1.24.2.tar.bz2) = zUyIybcxHLZ4XbccDtZPVDDJ1bNFTgFYMUsu8lrOPmE= -SIZE (openal-soft-1.24.2.tar.bz2) = 1020760 +SHA256 (openal-soft-1.24.3.tar.bz2) = y15hl6HA2g7c8qgQJJU8yPqFRcO5R05IyFKvcJ1YeJI= +SIZE (openal-soft-1.24.3.tar.bz2) = 1025568 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: /cvs/ports/audio/openal/patches/patch-CMakeLists_txt,v retrieving revision 1.16 diff -u -p -u -p -r1.16 patch-CMakeLists_txt --- patches/patch-CMakeLists_txt 29 Apr 2025 12:50:31 -0000 1.16 +++ patches/patch-CMakeLists_txt 16 Jul 2025 03:07:06 -0000 @@ -1,7 +1,7 @@ Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -149,7 +149,7 @@ endif() +@@ -165,7 +165,7 @@ add_subdirectory(fmt-11.1.1 EXCLUDE_FROM_ALL) set(CPP_DEFS ) # C pre-processor, not C++ set(INC_PATHS ) set(C_FLAGS ) @@ -10,7 +10,7 @@ Index: CMakeLists.txt set(LINKER_FLAGS_DEBUG ) set(LINKER_FLAGS_RELEASE ) set(EXTRA_LIBS ) -@@ -1375,7 +1375,7 @@ target_include_directories(alsoft.common PRIVATE ${Ope +@@ -1402,7 +1402,7 @@ target_include_directories(alsoft.common PRIVATE ${Ope PUBLIC ${OpenAL_BINARY_DIR} ${OpenAL_SOURCE_DIR}/common) target_compile_definitions(alsoft.common PRIVATE ${CPP_DEFS}) target_compile_options(alsoft.common PRIVATE ${C_FLAGS}) @@ -19,7 +19,7 @@ Index: CMakeLists.txt set_target_properties(alsoft.common PROPERTIES ${ALSOFT_STD_VERSION_PROPS} POSITION_INDEPENDENT_CODE TRUE) -@@ -1649,7 +1649,7 @@ endif() +@@ -1676,7 +1676,7 @@ endif() if(ALSOFT_INSTALL_CONFIG) install(FILES alsoftrc.sample Index: patches/patch-al_auxeffectslot_cpp =================================================================== RCS file: /cvs/ports/audio/openal/patches/patch-al_auxeffectslot_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-al_auxeffectslot_cpp --- patches/patch-al_auxeffectslot_cpp 29 Apr 2025 12:50:31 -0000 1.1 +++ patches/patch-al_auxeffectslot_cpp 16 Jul 2025 03:07:06 -0000 @@ -3,7 +3,7 @@ gcc8: error: expression '<throw-expressi Index: al/auxeffectslot.cpp --- al/auxeffectslot.cpp.orig +++ al/auxeffectslot.cpp -@@ -242,9 +242,10 @@ constexpr auto EffectSlotTypeFromEnum(ALenum type) noe +@@ -241,9 +241,10 @@ constexpr auto EffectSlotTypeFromEnum(ALenum type) noe case AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT: return EffectSlotType::Dedicated; case AL_EFFECT_DEDICATED_DIALOGUE: return EffectSlotType::Dedicated; case AL_EFFECT_CONVOLUTION_SOFT: return EffectSlotType::Convolution; Index: patches/patch-al_effects_chorus_cpp =================================================================== RCS file: /cvs/ports/audio/openal/patches/patch-al_effects_chorus_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-al_effects_chorus_cpp --- patches/patch-al_effects_chorus_cpp 29 Apr 2025 12:50:31 -0000 1.1 +++ patches/patch-al_effects_chorus_cpp 16 Jul 2025 03:07:06 -0000 @@ -3,7 +3,7 @@ gcc8: error: expression '<throw-expressi Index: al/effects/chorus.cpp --- al/effects/chorus.cpp.orig +++ al/effects/chorus.cpp -@@ -42,9 +42,10 @@ constexpr ALenum EnumFromWaveform(ChorusWaveform type) +@@ -43,9 +43,10 @@ constexpr ALenum EnumFromWaveform(ChorusWaveform type) { case ChorusWaveform::Sinusoid: return AL_CHORUS_WAVEFORM_SINUSOID; case ChorusWaveform::Triangle: return AL_CHORUS_WAVEFORM_TRIANGLE; Index: patches/patch-al_state_cpp =================================================================== RCS file: /cvs/ports/audio/openal/patches/patch-al_state_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-al_state_cpp --- patches/patch-al_state_cpp 29 Apr 2025 12:50:31 -0000 1.1 +++ patches/patch-al_state_cpp 16 Jul 2025 03:07:06 -0000 @@ -3,7 +3,7 @@ gcc8: error: expression '<throw-expressi Index: al/state.cpp --- al/state.cpp.orig +++ al/state.cpp -@@ -140,8 +140,9 @@ constexpr auto ALenumFromDistanceModel(DistanceModel m +@@ -146,8 +146,9 @@ constexpr auto ALenumFromDistanceModel(DistanceModel m case DistanceModel::LinearClamped: return AL_LINEAR_DISTANCE_CLAMPED; case DistanceModel::Exponent: return AL_EXPONENT_DISTANCE; case DistanceModel::ExponentClamped: return AL_EXPONENT_DISTANCE_CLAMPED; Index: patches/patch-alc_alu_cpp =================================================================== RCS file: patches/patch-alc_alu_cpp diff -N patches/patch-alc_alu_cpp --- patches/patch-alc_alu_cpp 29 Apr 2025 12:50:31 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,16 +0,0 @@ -gcc8 is too old for std::for_each_n - -Index: alc/alu.cpp ---- alc/alu.cpp.orig -+++ alc/alu.cpp -@@ -2155,7 +2155,9 @@ void Write(const al::span<const FloatBufferLine> InBuf - out[c] = SampleConv<T>(s); - out += ptrdiff_t(FrameStep); - }; -- std::for_each_n(inbuf.cbegin(), SamplesToDo, conv_sample); -+ auto first = inbuf.cbegin(); -+ auto last = first + SamplesToDo; -+ std::for_each(first, last, conv_sample); - ++c; - } - if(const size_t extra{FrameStep - c}) Index: patches/patch-utils_makemhr_loaddef_cpp =================================================================== RCS file: patches/patch-utils_makemhr_loaddef_cpp diff -N patches/patch-utils_makemhr_loaddef_cpp --- patches/patch-utils_makemhr_loaddef_cpp 29 Jan 2025 10:59:26 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,17 +0,0 @@ -Fix some casts for some 32-bit platforms -9fdf662bcbd86cf26202f8718d6c5ca24655652e - -Index: utils/makemhr/loaddef.cpp ---- utils/makemhr/loaddef.cpp.orig -+++ utils/makemhr/loaddef.cpp -@@ -209,8 +209,8 @@ auto TrLoad(TokenReaderT *tr) -> int - // Load TRLoadSize (or less if at the end of the file) per read. - toLoad = TRLoadSize; - -- const auto in = tr->mIn&TRRingMask; -- std::streamsize count{TRRingSize - in}; -+ const auto in = tr->mIn & std::streamsize{TRRingMask}; -+ const auto count = std::streamsize{TRRingSize} - in; - if(count < toLoad) - { - istream.read(al::to_address(tr->mRing.begin() + in), count);