SDL: Only use WAVE surround sound channel layouts on macOS 10.15+

From 5ca735b40f1b0834a3d2029b3dea2c0d6eff6abc Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 14 Jan 2025 10:52:04 -0800
Subject: [PATCH] Only use WAVE surround sound channel layouts on macOS 10.15+

---
 src/audio/coreaudio/SDL_coreaudio.m | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/audio/coreaudio/SDL_coreaudio.m b/src/audio/coreaudio/SDL_coreaudio.m
index d518d883cdf26..f18fffef02b90 100644
--- a/src/audio/coreaudio/SDL_coreaudio.m
+++ b/src/audio/coreaudio/SDL_coreaudio.m
@@ -765,12 +765,26 @@ static bool PrepareAudioQueue(SDL_AudioDevice *device)
         layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_12;
         break;
     case 7:
-        // L R C LFE Cs Ls Rs
-        layout.mChannelLayoutTag = kAudioChannelLayoutTag_WAVE_6_1;
+        if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) {
+            // L R C LFE Cs Ls Rs
+            layout.mChannelLayoutTag = kAudioChannelLayoutTag_WAVE_6_1;
+        } else {
+            // FIXME: We need to manually swizzle channels into a supported layout
+            // L R C LFE Ls Rs Cs
+            //layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_6_1_A;
+            return SDL_SetError("Unsupported audio channels");
+        }
         break;
     case 8:
-        // L R C LFE Rls Rrs Ls Rs
-        layout.mChannelLayoutTag = kAudioChannelLayoutTag_WAVE_7_1;
+        if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) {
+            // L R C LFE Rls Rrs Ls Rs
+            layout.mChannelLayoutTag = kAudioChannelLayoutTag_WAVE_7_1;
+        } else {
+            // FIXME: We need to manually swizzle channels into a supported layout
+            // L R C LFE Ls Rs Rls Rrs
+            //layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_7_1_C;
+            return SDL_SetError("Unsupported audio channels");
+        }
         break;
     default:
         return SDL_SetError("Unsupported audio channels");