summaryrefslogtreecommitdiffstats
path: root/audio/out/ao_coreaudio.c
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2013-06-16 19:25:10 +0200
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2013-06-16 19:28:04 +0200
commitc8c70dce5719576648489f9d2bad1cf9b61495a1 (patch)
treecae5e76ab648aba065993008d8524e25113e78bf /audio/out/ao_coreaudio.c
parentb24bb7076d80108eb63ab595a3b787f70023f377 (diff)
downloadmpv-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.c12
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);