Commit acf815fd authored by Alexandre Julliard's avatar Alexandre Julliard

faudio: Import upstream release 22.06.

parent dd4a92bc
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
...@@ -485,7 +485,7 @@ extern FAudioGUID DATAFORMAT_SUBTYPE_IEEE_FLOAT; ...@@ -485,7 +485,7 @@ extern FAudioGUID DATAFORMAT_SUBTYPE_IEEE_FLOAT;
#define FAUDIO_ABI_VERSION 0 #define FAUDIO_ABI_VERSION 0
#define FAUDIO_MAJOR_VERSION 22 #define FAUDIO_MAJOR_VERSION 22
#define FAUDIO_MINOR_VERSION 2 #define FAUDIO_MINOR_VERSION 6
#define FAUDIO_PATCH_VERSION 0 #define FAUDIO_PATCH_VERSION 0
#define FAUDIO_COMPILED_VERSION ( \ #define FAUDIO_COMPILED_VERSION ( \
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
...@@ -2735,6 +2735,8 @@ uint32_t FACTCue_SetMatrixCoefficients( ...@@ -2735,6 +2735,8 @@ uint32_t FACTCue_SetMatrixCoefficients(
} }
} }
FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUESTOP, FACTNOTIFICATIONTYPE_CUESTOP);
FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock);
return 0; return 0;
} }
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
...@@ -463,6 +463,14 @@ void FACT_INTERNAL_GetNextWave( ...@@ -463,6 +463,14 @@ void FACT_INTERNAL_GetNextWave(
track->frequency, track->frequency,
cue->parentBank->parentEngine->audio->master->master.inputSampleRate cue->parentBank->parentEngine->audio->master->master.inputSampleRate
); );
/* FIXME: For some reason the 0.67 Q Factor causes problems, but it's also
* the only possible value until ~1 so just clamp it for now.
*/
trackInst->upcomingWave.baseQFactor = FAudio_min(
trackInst->upcomingWave.baseQFactor,
1.0f
);
} }
/* Try to change loop counter at the very end */ /* Try to change loop counter at the very end */
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
...@@ -1862,7 +1862,7 @@ void FAudio_INTERNAL_DecodeMonoMSADPCM( ...@@ -1862,7 +1862,7 @@ void FAudio_INTERNAL_DecodeMonoMSADPCM(
int32_t midOffset; int32_t midOffset;
/* PCM block cache */ /* PCM block cache */
int16_t blockCache[1012]; /* Max block size */ int16_t *blockCache;
/* Block size */ /* Block size */
uint32_t bsize = ((FAudioADPCMWaveFormat*) voice->src.format)->wSamplesPerBlock; uint32_t bsize = ((FAudioADPCMWaveFormat*) voice->src.format)->wSamplesPerBlock;
...@@ -1879,6 +1879,7 @@ void FAudio_INTERNAL_DecodeMonoMSADPCM( ...@@ -1879,6 +1879,7 @@ void FAudio_INTERNAL_DecodeMonoMSADPCM(
midOffset = (voice->src.curBufferOffset % bsize); midOffset = (voice->src.curBufferOffset % bsize);
/* Read in each block directly to the decode cache */ /* Read in each block directly to the decode cache */
blockCache = (int16_t*) FAudio_alloca(bsize * sizeof(int16_t));
while (done < samples) while (done < samples)
{ {
copy = FAudio_min(samples - done, bsize - midOffset); copy = FAudio_min(samples - done, bsize - midOffset);
...@@ -1896,6 +1897,7 @@ void FAudio_INTERNAL_DecodeMonoMSADPCM( ...@@ -1896,6 +1897,7 @@ void FAudio_INTERNAL_DecodeMonoMSADPCM(
done += copy; done += copy;
midOffset = 0; midOffset = 0;
} }
FAudio_dealloca(blockCache);
LOG_FUNC_EXIT(voice->audio) LOG_FUNC_EXIT(voice->audio)
} }
...@@ -1913,7 +1915,7 @@ void FAudio_INTERNAL_DecodeStereoMSADPCM( ...@@ -1913,7 +1915,7 @@ void FAudio_INTERNAL_DecodeStereoMSADPCM(
int32_t midOffset; int32_t midOffset;
/* PCM block cache */ /* PCM block cache */
int16_t blockCache[2024]; /* Max block size */ int16_t *blockCache;
/* Align, block size */ /* Align, block size */
uint32_t bsize = ((FAudioADPCMWaveFormat*) voice->src.format)->wSamplesPerBlock; uint32_t bsize = ((FAudioADPCMWaveFormat*) voice->src.format)->wSamplesPerBlock;
...@@ -1930,6 +1932,7 @@ void FAudio_INTERNAL_DecodeStereoMSADPCM( ...@@ -1930,6 +1932,7 @@ void FAudio_INTERNAL_DecodeStereoMSADPCM(
midOffset = (voice->src.curBufferOffset % bsize); midOffset = (voice->src.curBufferOffset % bsize);
/* Read in each block directly to the decode cache */ /* Read in each block directly to the decode cache */
blockCache = (int16_t*) FAudio_alloca(bsize * 2 * sizeof(int16_t));
while (done < samples) while (done < samples)
{ {
copy = FAudio_min(samples - done, bsize - midOffset); copy = FAudio_min(samples - done, bsize - midOffset);
...@@ -1947,6 +1950,7 @@ void FAudio_INTERNAL_DecodeStereoMSADPCM( ...@@ -1947,6 +1950,7 @@ void FAudio_INTERNAL_DecodeStereoMSADPCM(
done += copy; done += copy;
midOffset = 0; midOffset = 0;
} }
FAudio_dealloca(blockCache);
LOG_FUNC_EXIT(voice->audio) LOG_FUNC_EXIT(voice->audio)
} }
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
/* FAudio - XAudio Reimplementation for FNA /* FAudio - XAudio Reimplementation for FNA
* *
* Copyright (c) 2011-2021 Ethan Lee, Luigi Auriemma, and the MonoGame Team * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team
* *
* This software is provided 'as-is', without any express or implied warranty. * This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from * In no event will the authors be held liable for any damages arising from
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment