diff options
author | wm4 <wm4@nowhere> | 2013-02-06 22:11:06 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-02-06 23:04:18 +0100 |
commit | 7a6d26370c86e2b1df21935fb1631c0f1c16c998 (patch) | |
tree | 6d9164225d882a270694988b9c665db3cd625b52 /audio | |
parent | 94f72b1e59f93cdd310d9cb6bcaa4fa06c8c3f75 (diff) | |
download | mpv-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')
-rw-r--r-- | audio/mixer.c | 1 | ||||
-rw-r--r-- | audio/out/ao.h | 4 |
2 files changed, 3 insertions, 2 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; } diff --git a/audio/out/ao.h b/audio/out/ao.h index 6ea1b22cd2..2fb8d9ba2c 100644 --- a/audio/out/ao.h +++ b/audio/out/ao.h @@ -102,8 +102,8 @@ struct ao { bool probing; bool initialized; bool untimed; - bool no_persistent_volume; - bool per_application_mixer; + bool no_persistent_volume; // the AO does the equivalent of af_volume + bool per_application_mixer; // like above, but volume persists (per app) const struct ao_driver *driver; void *priv; struct encode_lavc_context *encode_lavc_ctx; |