coreaudio: convert MPEG channel layout to WAVE channel layout
This commit is contained in:
parent
81e57147f8
commit
4dd585fb62
1 changed files with 20 additions and 6 deletions
|
@ -769,10 +769,17 @@ static bool PrepareAudioQueue(SDL_AudioDevice *device)
|
|||
// 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");
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_6_1_A;
|
||||
|
||||
// Convert from SDL channel layout to kAudioChannelLayoutTag_MPEG_6_1_A
|
||||
static const int swizzle_map[7] = {
|
||||
0, 1, 2, 3, 6, 4, 5
|
||||
};
|
||||
device->chmap = SDL_ChannelMapDup(swizzle_map, SDL_arraysize(swizzle_map));
|
||||
if (!device->chmap) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
|
@ -780,10 +787,17 @@ static bool PrepareAudioQueue(SDL_AudioDevice *device)
|
|||
// 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");
|
||||
layout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_7_1_C;
|
||||
|
||||
// Convert from SDL channel layout to kAudioChannelLayoutTag_MPEG_7_1_C
|
||||
static const int swizzle_map[8] = {
|
||||
0, 1, 2, 3, 6, 7, 4, 5
|
||||
};
|
||||
device->chmap = SDL_ChannelMapDup(swizzle_map, SDL_arraysize(swizzle_map));
|
||||
if (!device->chmap) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue