From d4b161f37d39a85c9661c27e2e567d0c4e823668 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Wed, 26 Jun 2013 23:20:36 +0200 Subject: ao_coreaudio: refactor uninit --- audio/out/ao_coreaudio.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/audio/out/ao_coreaudio.c b/audio/out/ao_coreaudio.c index eee36bf4d3..67f34a45da 100644 --- a/audio/out/ao_coreaudio.c +++ b/audio/out/ao_coreaudio.c @@ -614,13 +614,8 @@ static void uninit(struct ao *ao, bool immed) struct priv *p = ao->priv; OSStatus err = noErr; - if (!immed) { - long long timeleft = - (1000000LL * mp_ring_buffered(p->buffer)) / ao->bps; - ca_msg(MSGL_DBG2, "%d bytes left @%d bps (%d usec)\n", - mp_ring_buffered(p->buffer), ao->bps, (int)timeleft); - mp_sleep_us((int)timeleft); - } + if (!immed) + mp_sleep_us(get_delay(ao) * 1000000); if (!p->b_digital) { AudioOutputUnitStop(p->theOutputUnit); @@ -628,18 +623,12 @@ static void uninit(struct ao *ao, bool immed) AudioComponentInstanceDispose(p->theOutputUnit); } else { struct priv_d *d = p->digital; - /* Stop device. */ + err = AudioDeviceStop(p->i_selected_dev, d->renderCallback); - if (err != noErr) - ca_msg(MSGL_WARN, "AudioDeviceStop failed: [%4.4s]\n", - (char *)&err); + CHECK_CA_WARN("failed to stop audio device"); - /* Remove IOProc callback. */ - err = - AudioDeviceDestroyIOProcID(p->i_selected_dev, d->renderCallback); - if (err != noErr) - ca_msg(MSGL_WARN, - "AudioDeviceRemoveIOProc failed: [%4.4s]\n", (char *)&err); + err = AudioDeviceDestroyIOProcID(p->i_selected_dev, d->renderCallback); + CHECK_CA_WARN("failed to remove device render callback"); err = ca_enable_mixing(p->i_selected_dev, d->changed_mixing); CHECK_CA_WARN("can't re-enable mixing"); -- cgit v1.2.3