summaryrefslogtreecommitdiffstats
path: root/audio/out/ao_null.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-06-09 16:49:05 +0200
committerwm4 <wm4@nowhere>2020-06-09 16:49:05 +0200
commitd5de79d10f895aaa8f65340adf949d28bc09b2d7 (patch)
tree5dfa06599d2d3925d1cd5efd4fd78159e1fb59d7 /audio/out/ao_null.c
parent0fb02f181f3df9e8336939b42c3412e01fb60427 (diff)
downloadmpv-d5de79d10f895aaa8f65340adf949d28bc09b2d7.tar.bz2
mpv-d5de79d10f895aaa8f65340adf949d28bc09b2d7.tar.xz
audio: require certain AOs to set device_buffer
AOs which use the "push" API must set this field now. Actually, this was sort of always required, but happened to work anyway. The future intention is to use device_buffer as the pre-buffer amount, which has to be available right before audio playback is started. "Pull" AOs really need this too conceptually, just that the API is underspecified. From what I can see, only ao_null did not do this yet.
Diffstat (limited to 'audio/out/ao_null.c')
-rw-r--r--audio/out/ao_null.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/audio/out/ao_null.c b/audio/out/ao_null.c
index ac113ca186..2f58ea22c3 100644
--- a/audio/out/ao_null.c
+++ b/audio/out/ao_null.c
@@ -105,7 +105,7 @@ static int init(struct ao *ao)
// A "buffer" for this many seconds of audio
int bursts = (int)(ao->samplerate * priv->bufferlen + 1) / priv->outburst;
- priv->buffersize = priv->outburst * bursts + priv->latency;
+ ao->device_buffer = priv->outburst * bursts + priv->latency;
priv->last_time = mp_time_sec();
@@ -175,7 +175,7 @@ static void get_state(struct ao *ao, struct mp_pcm_state *state)
drain(ao);
- state->free_samples = priv->buffersize - priv->latency - priv->buffered;
+ state->free_samples = ao->device_buffer - priv->latency - priv->buffered;
state->free_samples = state->free_samples / priv->outburst * priv->outburst;
state->queued_samples = priv->buffered;