mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-01-25 22:26:08 +00:00
Corrected CoreAudio surround sound channel layouts
Fixes https://github.com/libsdl-org/SDL/issues/11709 (cherry picked from commitb2178857dc) (cherry picked from commit348bb53cc1)
This commit is contained in:
@@ -857,30 +857,39 @@ static int prepare_audioqueue(_THIS)
|
||||
SDL_zero(layout);
|
||||
switch (this->spec.channels) {
|
||||
case 1:
|
||||
// a standard mono stream
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_Mono;
|
||||
break;
|
||||
case 2:
|
||||
// a standard stereo stream (L R) - implied playback
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo;
|
||||
break;
|
||||
case 3:
|
||||
// L R LFE
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_4;
|
||||
break;
|
||||
case 4:
|
||||
// front left, front right, back left, back right
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_Quadraphonic;
|
||||
break;
|
||||
case 5:
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_5_0_A;
|
||||
// L R LFE Ls Rs
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_6;
|
||||
break;
|
||||
case 6:
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_5_1_A;
|
||||
// L R C LFE Ls Rs
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_12;
|
||||
break;
|
||||
case 7:
|
||||
/* FIXME: Need to move channel[4] (BC) to channel[6] */
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_6_1_A;
|
||||
// L R C LFE Cs Ls Rs
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_WAVE_6_1;
|
||||
break;
|
||||
case 8:
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_7_1_A;
|
||||
// L R C LFE Rls Rrs Ls Rs
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_WAVE_7_1;
|
||||
break;
|
||||
default:
|
||||
return SDL_SetError("Unsupported audio channels");
|
||||
}
|
||||
if (layout.mChannelLayoutTag != 0) {
|
||||
result = AudioQueueSetProperty(this->hidden->audioQueue, kAudioQueueProperty_ChannelLayout, &layout, sizeof(layout));
|
||||
|
||||
Reference in New Issue
Block a user