Alexandre Julliard : faudio: Import upstream release 22.02.

Alexandre Julliard julliard at winehq.org
Mon Feb 7 15:56:05 CST 2022


Module: wine
Branch: master
Commit: 6446382c74ccafcf006bf86af17c12e9ef3467be
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=6446382c74ccafcf006bf86af17c12e9ef3467be

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Feb  7 11:53:56 2022 +0100

faudio: Import upstream release 22.02.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/faudio/include/FAudio.h            |  2 +-
 libs/faudio/src/FAudio_platform_win32.c | 16 +++++++++++++---
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/libs/faudio/include/FAudio.h b/libs/faudio/include/FAudio.h
index 28fa62c4fc5..eb3d5dea80b 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	22
-#define FAUDIO_MINOR_VERSION	 1
+#define FAUDIO_MINOR_VERSION	 2
 #define FAUDIO_PATCH_VERSION	 0
 
 #define FAUDIO_COMPILED_VERSION ( \
diff --git a/libs/faudio/src/FAudio_platform_win32.c b/libs/faudio/src/FAudio_platform_win32.c
index 89101a6cf7a..9edb2b21bff 100644
--- a/libs/faudio/src/FAudio_platform_win32.c
+++ b/libs/faudio/src/FAudio_platform_win32.c
@@ -399,6 +399,12 @@ uint32_t FAudio_PlatformGetDeviceCount(void)
 		eConsole,
 		&device
 	);
+
+	if (hr == E_NOTFOUND) {
+		FAudio_PlatformRelease();
+		return 0;
+	}
+
 	FAudio_assert(!FAILED(hr) && "Failed to get default audio endpoint!");
 
 	IMMDevice_Release(device);
@@ -1191,8 +1197,8 @@ static void FAudio_INTERNAL_DecodeWMAMF(
 	uint32_t samples
 ) {
 	const FAudioWaveFormatExtensible *wfx = (FAudioWaveFormatExtensible *)voice->src.format;
+	size_t samples_pos, samples_size, copy_size = 0;
 	struct FAudioWMADEC *impl = voice->src.wmadec;
-	size_t samples_pos, samples_size, copy_size;
 	HRESULT hr;
 
 	LOG_FUNC_ENTER(voice->audio)
@@ -1264,8 +1270,12 @@ static void FAudio_INTERNAL_DecodeWMAMF(
 		impl->input_size = 0;
 	}
 
-	copy_size = FAudio_clamp(impl->output_pos - samples_pos, 0, samples_size);
-	FAudio_memcpy(decodeCache, impl->output_buf + samples_pos, copy_size);
+	if (impl->output_pos > samples_pos)
+	{
+		copy_size = FAudio_min(impl->output_pos - samples_pos, samples_size);
+		FAudio_memcpy(decodeCache, impl->output_buf + samples_pos, copy_size);
+	}
+	FAudio_zero(decodeCache + copy_size, samples_size - copy_size);
 	LOG_INFO(
 		voice->audio,
 		"decoded %x / %x bytes, copied %x / %x bytes",




More information about the wine-cvs mailing list