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 | |
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')
-rw-r--r-- | audio/out/ao_coreaudio.c | 12 | ||||
-rw-r--r-- | audio/out/ao_portaudio.c | 3 |
2 files changed, 10 insertions, 5 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); diff --git a/audio/out/ao_portaudio.c b/audio/out/ao_portaudio.c index 62a58c0fed..d51d01ed9b 100644 --- a/audio/out/ao_portaudio.c +++ b/audio/out/ao_portaudio.c @@ -91,7 +91,8 @@ static bool check_pa_ret(int ret) static int seconds_to_bytes(struct ao *ao, double seconds) { - return af_fmt_seconds_to_bytes(ao->format, seconds, ao->channels.num); + return af_fmt_seconds_to_bytes(ao->format, seconds, ao->channels.num, + ao->samplerate); } static int to_int(const char *s, int return_on_error) |