diff --git a/audio/out/ao.c b/audio/out/ao.c index 8685260204..e87fc52d0e 100644 --- a/audio/out/ao.c +++ b/audio/out/ao.c @@ -188,13 +188,6 @@ static struct ao *ao_create(bool probing, struct mpv_global *global, ao->device_buffer = ao->driver->get_space(ao); MP_VERBOSE(ao, "device buffer: %d samples.\n", ao->device_buffer); } - - if (ao->device_buffer <= 0) { - MP_FATAL(ao, "Couldn't probe device buffer size.\n"); - ao->driver->uninit(ao); - goto error; - } - ao->buffer = MPMAX(ao->device_buffer, ao->def_buffer * ao->samplerate); MP_VERBOSE(ao, "using soft-buffer of %d samples.\n", ao->buffer); diff --git a/audio/out/push.c b/audio/out/push.c index 3285543f24..2a84028e13 100644 --- a/audio/out/push.c +++ b/audio/out/push.c @@ -394,6 +394,11 @@ static int init(struct ao *ao) pthread_cond_init(&p->wakeup_drain, NULL); mp_make_wakeup_pipe(p->wakeup_pipe); + if (ao->device_buffer <= 0) { + MP_FATAL(ao, "Couldn't probe device buffer size.\n"); + goto err; + } + p->buffer = mp_audio_buffer_create(ao); mp_audio_buffer_reinit_fmt(p->buffer, ao->format, &ao->channels, ao->samplerate);