From c8c70dce5719576648489f9d2bad1cf9b61495a1 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 16 Jun 2013 19:25:10 +0200 Subject: audio: fix af_fmt_seconds_to_bytes Was missing samplerate --- audio/out/ao_coreaudio.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'audio/out/ao_coreaudio.c') diff --git a/audio/out/ao_coreaudio.c b/audio/out/ao_coreaudio.c index d3491f17f8..ea9e431535 100644 --- a/audio/out/ao_coreaudio.c +++ b/audio/out/ao_coreaudio.c @@ -94,6 +94,12 @@ struct priv struct mp_ring *buffer; }; +static int get_ring_size(struct ao *ao) +{ + return af_fmt_seconds_to_bytes( + ao->format, 0.5, ao->channels.num, ao->samplerate); +} + static OSStatus theRenderProc(void *inRefCon, AudioUnitRenderActionFlags *inActionFlags, const AudioTimeStamp *inTimeStamp, @@ -621,8 +627,7 @@ static int init(struct ao *ao, char *params) ao->bps = ao->samplerate * inDesc.mBytesPerFrame; ao->buffersize = ao->bps; - int bufbytes = af_fmt_seconds_to_bytes(ao->format, 0.5, ao->channels.num); - p->buffer = mp_ring_new(p, bufbytes); + p->buffer = mp_ring_new(p, get_ring_size(ao)); ao->outburst = maxFrames; print_buffer(p->buffer); @@ -859,8 +864,7 @@ static int OpenSPDIF(struct ao *ao) /* For ac3/dts, just use packet size 6144 bytes as chunk size. */ int chunk_size = p->stream_format.mBytesPerPacket; ao->buffersize = ao->bps; - int bufbytes = af_fmt_seconds_to_bytes(ao->format, 0.5, ao->channels.num); - p->buffer = mp_ring_new(p, bufbytes); + p->buffer = mp_ring_new(p, get_ring_size(ao)); ao->outburst = chunk_size; print_buffer(p->buffer); -- cgit v1.2.3