diff options
author | wm4 <wm4@nowhere> | 2012-09-18 21:41:22 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-09-23 14:57:01 +0200 |
commit | 425ac31a3b07cbef79891d01a3655b9c6d7efa32 (patch) | |
tree | 840de031a7a68d781fcc5d4df8f70061e12abc29 /libao2 | |
parent | c57883b71b959d7d5c1c1bade8b4234017c11d1e (diff) | |
download | mpv-425ac31a3b07cbef79891d01a3655b9c6d7efa32.tar.bz2 mpv-425ac31a3b07cbef79891d01a3655b9c6d7efa32.tar.xz |
softvol, ao_pulse: prefer ao_pulse volume control by default
--softvol is enabled by default. For most audio outputs, this is a good
thing, as they have either their own (bad) soft volume implementation,
or control the system mixer. With ao_pulse, the situation is a bit
different: it supports per-application volume (i.e. volume control is
not really global). More importantly, ao_pulse uses a rather large audio
buffer, and changing the volume with mplayer's volume filter has a large
delay. With the native ao_pulse volume control, it's instant, because
PulseAudio's audio filtering happens at a later stage in its processing
pipeline (inaccessible for mplayer).
This means native volume control should really be allowed for ao_pulse,
while it's the reverse for other audio outputs. Make --softvol a choice
option, and add a new "auto" choice. This is default and will use PA's
volume control with ao_pulse, and mplayer's volume filter otherwise
(i.e. the old softvol behavior).
Diffstat (limited to 'libao2')
-rw-r--r-- | libao2/ao_pulse.c | 2 | ||||
-rw-r--r-- | libao2/audio_out.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/libao2/ao_pulse.c b/libao2/ao_pulse.c index 0b1f22ff8d..d1282cb2dc 100644 --- a/libao2/ao_pulse.c +++ b/libao2/ao_pulse.c @@ -184,6 +184,8 @@ static int init(struct ao *ao, char *params) struct priv *priv = talloc_zero(ao, struct priv); ao->priv = priv; + ao->per_application_mixer = true; + if (params) { devarg = strdup(params); sink = strchr(devarg, ':'); diff --git a/libao2/audio_out.h b/libao2/audio_out.h index 129c815bc3..9e172fd06c 100644 --- a/libao2/audio_out.h +++ b/libao2/audio_out.h @@ -104,6 +104,7 @@ struct ao { bool initialized; bool untimed; bool no_persistent_volume; + bool per_application_mixer; const struct ao_driver *driver; void *priv; struct encode_lavc_context *encode_lavc_ctx; |