Module: wine Branch: master Commit: da89825f98e4f0cb3875735345a455512b36b665 URL: https://source.winehq.org/git/wine.git/?a=commit;h=da89825f98e4f0cb387573534...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Nov 2 10:25:12 2021 +0100
faudio: Import upstream release 21.11.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/faudio/include/FAudio.h | 2 +- libs/faudio/src/FACT.c | 17 +++-------------- libs/faudio/src/FAudio.c | 4 +++- libs/faudio/src/FAudioFX_reverb.c | 6 ++++-- libs/faudio/src/FAudio_platform_win32.c | 10 ++++++---- 5 files changed, 17 insertions(+), 22 deletions(-)
diff --git a/libs/faudio/include/FAudio.h b/libs/faudio/include/FAudio.h index 046e7f4098c..6f68013d79f 100644 --- a/libs/faudio/include/FAudio.h +++ b/libs/faudio/include/FAudio.h @@ -485,7 +485,7 @@ extern FAudioGUID DATAFORMAT_SUBTYPE_IEEE_FLOAT;
#define FAUDIO_ABI_VERSION 0 #define FAUDIO_MAJOR_VERSION 21 -#define FAUDIO_MINOR_VERSION 10 +#define FAUDIO_MINOR_VERSION 11 #define FAUDIO_PATCH_VERSION 0
#define FAUDIO_COMPILED_VERSION ( \ diff --git a/libs/faudio/src/FACT.c b/libs/faudio/src/FACT.c index 5eca83b389f..bca46d38824 100644 --- a/libs/faudio/src/FACT.c +++ b/libs/faudio/src/FACT.c @@ -2415,20 +2415,7 @@ uint32_t FACTCue_Destroy(FACTCue *pCue) FAudio_assert(cue != NULL && "Could not find Cue reference!");
pCue->parentBank->parentEngine->pFree(pCue->variableValues); - if (pCue->notifyOnDestroy || pCue->parentBank->parentEngine->notifications & NOTIFY_CUEDESTROY) - { - note.type = FACTNOTIFICATIONTYPE_CUEDESTROYED; - note.cue.pCue = pCue; - if (pCue->parentBank->parentEngine->notifications & NOTIFY_CUEDESTROY) - { - note.pvContext = pCue->parentBank->parentEngine->cue_context; - } - else - { - note.pvContext = pCue->usercontext; - } - pCue->parentBank->parentEngine->notificationCallback(¬e); - } + FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUEDESTROY, FACTNOTIFICATIONTYPE_CUEDESTROYED);
mutex = pCue->parentBank->parentEngine->apiLock; pCue->parentBank->parentEngine->pFree(pCue); @@ -2679,6 +2666,8 @@ uint32_t FACTCue_Stop(FACTCue *pCue, uint32_t dwFlags) } }
+ FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUESTOP, FACTNOTIFICATIONTYPE_CUESTOP); + FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); return 0; } diff --git a/libs/faudio/src/FAudio.c b/libs/faudio/src/FAudio.c index 81363b983c7..ff373ef8dbb 100644 --- a/libs/faudio/src/FAudio.c +++ b/libs/faudio/src/FAudio.c @@ -2453,7 +2453,9 @@ uint32_t FAudioSourceVoice_SubmitSourceBuffer(
FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); #ifdef HAVE_WMADEC - FAudio_assert( (voice->src.wmadec != NULL && (pBufferWMA != NULL || voice->src.format->wFormatTag == FAUDIO_FORMAT_XMAUDIO2)) || + FAudio_assert( (voice->src.wmadec != NULL && (pBufferWMA != NULL || + (voice->src.format->wFormatTag == FAUDIO_FORMAT_XMAUDIO2 || + voice->src.format->wFormatTag == FAUDIO_FORMAT_EXTENSIBLE))) || (voice->src.wmadec == NULL && (pBufferWMA == NULL && voice->src.format->wFormatTag != FAUDIO_FORMAT_XMAUDIO2)) ); #endif /* HAVE_WMADEC */
diff --git a/libs/faudio/src/FAudioFX_reverb.c b/libs/faudio/src/FAudioFX_reverb.c index 4d43fa4e76c..79c4151c2d9 100644 --- a/libs/faudio/src/FAudioFX_reverb.c +++ b/libs/faudio/src/FAudioFX_reverb.c @@ -507,7 +507,8 @@ static FAudio_ChannelPositionFlags FAudio_GetChannelPositionFlags(int32_t total_ case 3: return Position_Right | Position_Rear; } - + FAudio_assert(0 && "Unsupported channel count"); + break; case 5: switch (channel) { @@ -522,7 +523,8 @@ static FAudio_ChannelPositionFlags FAudio_GetChannelPositionFlags(int32_t total_ case 4: return Position_Right | Position_Rear; } - + FAudio_assert(0 && "Unsupported channel count"); + break; default: FAudio_assert(0 && "Unsupported channel count"); break; diff --git a/libs/faudio/src/FAudio_platform_win32.c b/libs/faudio/src/FAudio_platform_win32.c index f70e260c542..ccb8d8abbbf 100644 --- a/libs/faudio/src/FAudio_platform_win32.c +++ b/libs/faudio/src/FAudio_platform_win32.c @@ -228,8 +228,8 @@ void FAudio_PlatformInit( FAudio_assert(!FAILED(hr) && "Failed to create audio client!"); IMMDevice_Release(device);
- if (flags & FAUDIO_1024_QUANTUM) duration = 21330; - else duration = 30000; + if (flags & FAUDIO_1024_QUANTUM) duration = 213333; + else duration = 100000;
hr = IAudioClient_IsFormatSupported( data->client, @@ -250,7 +250,7 @@ void FAudio_PlatformInit( data->client, AUDCLNT_SHAREMODE_SHARED, AUDCLNT_STREAMFLAGS_EVENTCALLBACK, - duration, + duration * 3, 0, &args->format.Format, &GUID_NULL @@ -287,7 +287,8 @@ void FAudio_PlatformInit( args->events[0] = audioEvent; args->events[1] = data->stopEvent; args->audio = audio; - args->updateSize = args->format.Format.nSamplesPerSec / 100; + if (flags & FAUDIO_1024_QUANTUM) args->updateSize = args->format.Format.nSamplesPerSec / (1000.0 / (64.0 / 3.0)); + else args->updateSize = args->format.Format.nSamplesPerSec / 100;
data->audioThread = CreateThread(NULL, 0, &FAudio_AudioClientThread, args, 0, NULL); FAudio_assert(!!data->audioThread && "Failed to create audio client thread!"); @@ -622,6 +623,7 @@ static int FAUDIOCALL FAudio_mem_close(void *data) { if (!data) return 0; FAudio_free(data); + return 0; }
FAudioIOStream* FAudio_memopen(void *mem, int len)