mirror of
https://github.com/mpv-player/mpv
synced 2025-01-11 17:39:38 +00:00
Command line video player
7807f46cd1
Current volume was always queried from the the audio output driver (or filter in case of --softvol). The only case where it was stored on mixer level was that when turning off mute, volume was set to the value it had before mute was activated. Change the mixer code to always store the current target volume internally. It still checks for significant changes from external sources and resets the internal value in that case. The main functionality changes are: Volume will now be kept separately from mute status. Increasing or decreasing volume will now change it relative to the original value before mute, even if mute is implemented by setting AO level volume to 0. Volume changes no longer automatically disable mute. The exception is relative changes up (like the volume increase key in default keybindings); that's the only case which still disables mute. Keeping the value internally avoids problems with granularity of possible volume values supported by AO. Increase/decrease keys could work unsymmetrically, or when specifying a smaller than default --volstep, even fail completely. In one case occurring in practice, if the AO only supports changing volume in steps of about 2 and rounds down the requested volume, then volume down key would decrease by 4 but volume up would increase by 2 (previous volume plus or minus the default change of 3, rounded down to a multiple of 2). Now, the internal value will keep full precision. |
||
---|---|---|
debian | ||
DOCS | ||
drivers | ||
etc | ||
ffmpeg_files | ||
input | ||
libaf | ||
libao2 | ||
libmpcodecs | ||
libmpdemux | ||
libvo | ||
loader | ||
osdep | ||
rpm | ||
stream | ||
sub | ||
timeline | ||
TOOLS | ||
.gitignore | ||
asxparser.c | ||
asxparser.h | ||
AUTHORS | ||
av_log.c | ||
av_log.h | ||
av_opts.c | ||
av_opts.h | ||
bstr.c | ||
bstr.h | ||
cfg-mplayer.h | ||
codec-cfg.c | ||
codec-cfg.h | ||
command.c | ||
command.h | ||
configure | ||
Copyright | ||
cpudetect.c | ||
cpudetect.h | ||
cpuinfo.c | ||
defaultopts.c | ||
defaultopts.h | ||
fmt-conversion.c | ||
fmt-conversion.h | ||
LICENSE | ||
m_config.c | ||
m_config.h | ||
m_option.c | ||
m_option.h | ||
m_property.c | ||
m_property.h | ||
m_struct.c | ||
m_struct.h | ||
Makefile | ||
mangle.h | ||
metadata.h | ||
mixer.c | ||
mixer.h | ||
mp_core.h | ||
mp_fifo.c | ||
mp_fifo.h | ||
mp_msg.c | ||
mp_msg.h | ||
mp_osd.h | ||
mpbswap.h | ||
mpcommon.c | ||
mpcommon.h | ||
mplayer.c | ||
mplayer.h | ||
options.h | ||
parser-cfg.c | ||
parser-cfg.h | ||
parser-mpcmd.c | ||
parser-mpcmd.h | ||
path.c | ||
path.h | ||
playtree.c | ||
playtree.h | ||
playtreeparser.c | ||
playtreeparser.h | ||
pnm_loader.c | ||
pnm_loader.h | ||
README | ||
screenshot.c | ||
screenshot.h | ||
subopt-helper.c | ||
subopt-helper.h | ||
talloc.c | ||
talloc.h | ||
version.sh |
Compiling with full features requires development files for several external libraries. Below is a list of some important requirements. For more information see the output of './configure --help' for a list of options, or look at the list of enabled and disabled features printed after running './configure'. If you think you have support for some feature installed but configure fails to detect it, the file config.log may contain information about the reasons for the failure. Libraries specific to particular video output methods (you'll want at least one of VDPAU, GL or Xv): - libvdpau (for VDPAU output, best choice for NVIDIA cards) - libGL (OpenGL output) - libXv (XVideo output) general: - libasound (ALSA audio output) - various general X development libraries - libfreetype - libfontconfig - libass - FFmpeg libraries (libavutil libavcodec libavformat libswscale libpostproc) Most of the above libraries are available in suitable versions on normal Linux distributions. However FFmpeg is an exception (distro versions may be too old to work at all or work well). For that reason you may want to use the separately available build wrapper that first compiles FFmpeg libraries and libass, and then compiles the player statically linked against those.