1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-06 07:00:30 +00:00
mpv/audio/out
wm4 a477481aab audio/out: feed AOs from a separate thread
This has 2 goals:
- Ensure that AOs have always enough data, even if the device buffers
  are very small.
- Reduce complexity in some AOs, which do their own buffering.

One disadvantage is that performance is slightly reduced due to more
copying.

Implementation-wise, we don't change ao.c much, and instead "redirect"
the driver's callback to an API wrapper in push.c.

Additionally, we add code for dealing with AOs that have a pull API.
These AOs usually do their own buffering (jack, coreaudio, portaudio),
and adding a thread is basically a waste. The code in pull.c manages
a ringbuffer, and allows callback-based AOs to read data directly.
2014-03-09 01:27:41 +01:00
..
ao_alsa.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_coreaudio_properties.c ao_coreaudio: move to new log API 2013-08-01 20:32:49 +02:00
ao_coreaudio_properties.h audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_coreaudio_utils.c msg: rename mp_msg_log -> mp_msg 2013-12-21 22:13:04 +01:00
ao_coreaudio_utils.h audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_coreaudio.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_dsound.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_jack.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_lavc.c encode: add locking 2014-03-09 00:19:35 +01:00
ao_null.c ao_null: add option for simulated device speed 2014-03-09 00:19:34 +01:00
ao_openal.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_oss.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_pcm.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_portaudio.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_pulse.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_rsound.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_sdl.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_sndio.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao_wasapi.c audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
ao.c audio/out: feed AOs from a separate thread 2014-03-09 01:27:41 +01:00
ao.h audio/out: make ao struct opaque 2014-03-09 00:19:31 +01:00
internal.h audio/out: feed AOs from a separate thread 2014-03-09 01:27:41 +01:00
pull.c audio/out: feed AOs from a separate thread 2014-03-09 01:27:41 +01:00
push.c audio/out: feed AOs from a separate thread 2014-03-09 01:27:41 +01:00