summaryrefslogtreecommitdiffstats
path: root/audio/out/ao_coreaudio.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/out/ao_coreaudio.c')
-rw-r--r--audio/out/ao_coreaudio.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/audio/out/ao_coreaudio.c b/audio/out/ao_coreaudio.c
index d3d2bf046e..b424e66661 100644
--- a/audio/out/ao_coreaudio.c
+++ b/audio/out/ao_coreaudio.c
@@ -77,11 +77,14 @@ static OSStatus render_cb_lpcm(void *ctx, AudioUnitRenderActionFlags *aflags,
{
struct ao *ao = ctx;
struct priv *p = ao->priv;
- AudioBuffer buf = buffer_list->mBuffers[0];
+ void *planes[MP_NUM_CHANNELS] = {0};
+
+ for (int n = 0; n < ao->num_planes; n++)
+ planes[n] = buffer_list->mBuffers[n].mData;
int64_t end = mp_time_us();
end += p->hw_latency_us + ca_get_latency(ts) + ca_frames_to_us(ao, frames);
- ao_read_data(ao, &buf.mData, frames, end);
+ ao_read_data(ao, planes, frames, end);
return noErr;
}
@@ -163,8 +166,6 @@ static int init(struct ao *ao)
if (!ca_init_chmap(ao, p->device))
goto coreaudio_error;
- ao->format = af_fmt_from_planar(ao->format);
-
AudioStreamBasicDescription asbd;
ca_fill_asbd(ao, &asbd);