diff options
author | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2013-06-16 19:25:10 +0200 |
---|---|---|
committer | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2013-06-16 19:28:04 +0200 |
commit | c8c70dce5719576648489f9d2bad1cf9b61495a1 (patch) | |
tree | cae5e76ab648aba065993008d8524e25113e78bf /audio/out/ao_coreaudio.c | |
parent | b24bb7076d80108eb63ab595a3b787f70023f377 (diff) | |
download | mpv-c8c70dce5719576648489f9d2bad1cf9b61495a1.tar.bz2 mpv-c8c70dce5719576648489f9d2bad1cf9b61495a1.tar.xz |
audio: fix af_fmt_seconds_to_bytes
Was missing samplerate
Diffstat (limited to 'audio/out/ao_coreaudio.c')
-rw-r--r-- | audio/out/ao_coreaudio.c | 12 |
1 files changed, 8 insertions, 4 deletions
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); |