ao_coreaudio: set channel layout bitmap

This commit is contained in:
Stefano Pigozzi 2013-07-03 18:49:02 +02:00
parent 24cad42363
commit 4d15f1bb60
1 changed files with 16 additions and 0 deletions

View File

@ -395,7 +395,23 @@ static int init_lpcm(struct ao *ao, AudioStreamBasicDescription asbd)
kAudioOutputUnitProperty_CurrentDevice,
kAudioUnitScope_Global, 0, &p->device,
sizeof(p->device));
CHECK_CA_ERROR_L(coreaudio_error_audiounit,
"can't link audio unit to selected device");
if (ao->channels.num > 2) {
// No need to set a channel layout for mono and stereo inputs
AudioChannelLayout acl = (AudioChannelLayout) {
.mChannelLayoutTag = kAudioChannelLayoutTag_UseChannelBitmap,
.mChannelBitmap = mp_chmap_to_waveext(&ao->channels)
};
err = AudioUnitSetProperty(p->audio_unit,
kAudioUnitProperty_AudioChannelLayout,
kAudioUnitScope_Input, 0, &acl,
sizeof(AudioChannelLayout));
CHECK_CA_ERROR_L(coreaudio_error_audiounit,
"can't set channel layout bitmap into audio unit");
}
p->buffer = mp_ring_new(p, get_ring_size(ao));
print_buffer(p->buffer);