summaryrefslogtreecommitdiffstats
path: root/audio/mixer.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-02-06 22:11:06 +0100
committerwm4 <wm4@nowhere>2013-02-06 23:04:18 +0100
commit7a6d26370c86e2b1df21935fb1631c0f1c16c998 (patch)
tree6d9164225d882a270694988b9c665db3cd625b52 /audio/mixer.c
parent94f72b1e59f93cdd310d9cb6bcaa4fa06c8c3f75 (diff)
downloadmpv-7a6d26370c86e2b1df21935fb1631c0f1c16c998.tar.bz2
mpv-7a6d26370c86e2b1df21935fb1631c0f1c16c998.tar.xz
mixer: prefer AO softvol control over volume filter
This partially reverts earlier decisions, when I thought it would always be better to prefer the audio volume filter over the AO's, because the AO's relies on the underlying audio-API, which could be broken or exhibit unusual behavior (like it happened with ao_dsound). However, since the audio buffer can be quite large (500 ms), and we don't attempt to flush & refilter the audio on volume changes, always prefer AO volume control (as long as the AO mixer doesn't control the system mixer). Also document what the mixer.c related AO fields mean (hopefully not too brief).
Diffstat (limited to 'audio/mixer.c')
-rw-r--r--audio/mixer.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/audio/mixer.c b/audio/mixer.c
index bdcb0cbc5c..d97391cf7e 100644
--- a/audio/mixer.c
+++ b/audio/mixer.c
@@ -34,6 +34,7 @@ static void checkvolume(struct mixer *mixer)
if (mixer->softvol == SOFTVOL_AUTO) {
mixer->softvol = mixer->ao->per_application_mixer
+ || mixer->ao->no_persistent_volume
? SOFTVOL_NO : SOFTVOL_YES;
}