summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rw-r--r--etc/_mpv.zsh23
-rw-r--r--etc/builtin.conf33
-rw-r--r--etc/input.conf216
-rw-r--r--etc/meson.build20
-rw-r--r--etc/mpv.bash-completion61
-rw-r--r--etc/mpv.conf11
-rw-r--r--etc/mpv.desktop19
-rw-r--r--etc/mpv.metainfo.xml29
-rw-r--r--etc/restore-old-bindings.conf26
9 files changed, 272 insertions, 166 deletions
diff --git a/etc/_mpv.zsh b/etc/_mpv.zsh
index a15bb7c9ed..c34a381ab2 100644
--- a/etc/_mpv.zsh
+++ b/etc/_mpv.zsh
@@ -42,7 +42,7 @@ function _mpv_generate_arguments {
local -a option_aliases=()
local list_options_line
- for list_options_line in "${(@f)$($words[1] --list-options)}"; do
+ for list_options_line in "${(@f)$($~words[1] --no-config --list-options)}"; do
[[ $list_options_line =~ $'^[ \t]+--([^ \t]+)[ \t]*(.*)' ]] || continue
@@ -77,6 +77,10 @@ function _mpv_generate_arguments {
# Save this for later; we might not have parsed the target option yet
option_aliases+="$name $match[2]"
+ elif [[ $desc =~ $'^removed ' ]]; then
+
+ # skip
+
else
# Option takes argument
@@ -105,6 +109,10 @@ function _mpv_generate_arguments {
entry+="->parse-help-profile"
+ elif [[ $name == h(|elp) ]]; then
+
+ entry+="->help-options"
+
fi
_mpv_completion_arguments+="$entry"
@@ -146,7 +154,7 @@ function _mpv_generate_arguments {
function _mpv_generate_protocols {
_mpv_completion_protocols=()
local list_protos_line
- for list_protos_line in "${(@f)$($words[1] --list-protocols)}"; do
+ for list_protos_line in "${(@f)$($~words[1] --no-config --list-protocols)}"; do
if [[ $list_protos_line =~ $'^[ \t]+(.*)' ]]; then
_mpv_completion_protocols+="$match[1]"
fi
@@ -158,7 +166,7 @@ function _mpv_generate_if_changed {
# on the first run and re-generates it if the executable being completed for
# is different than the one we used to generate the cached list.
typeset -gA _mpv_completion_binary
- local current_binary=${words[1]:c}
+ local current_binary=${~words[1]:c}
zmodload -F zsh/stat b:zstat
current_binary+=T$(zstat +mtime $current_binary)
if [[ $_mpv_completion_binary[$1] != $current_binary ]]; then
@@ -188,6 +196,7 @@ case $state in
parse-help-*)
local option_name=${state#parse-help-}
+ local no_config="--no-config"
# Can't do non-capturing groups without pcre, so we index the ones we want
local pattern name_group=1 desc_group=2
case $option_name in
@@ -199,6 +208,8 @@ case $state in
# but would break if a profile name contained spaces. This stricter one
# only breaks if a profile name contains tabs.
pattern=$'^\t([^\t]*)\t(.*)'
+ # We actually want config so we can autocomplete the user's profiles
+ no_config=""
;;
*)
pattern=$'^[ \t]+(--'${option_name}$'=)?([^ \t]+)[ \t]*[-:]?[ \t]*(.*)'
@@ -207,7 +218,7 @@ case $state in
esac
local -a values
local current
- for current in "${(@f)$($words[1] --${option_name}=help)}"; do
+ for current in "${(@f)$($~words[1] ${no_config} --${option_name}=help)}"; do
[[ $current =~ $pattern ]] || continue;
local name=${match[name_group]//:/\\:} desc=${match[desc_group]}
if [[ -n $desc ]]; then
@@ -245,6 +256,10 @@ case $state in
done
;;
+ help-options)
+ compadd ${${${_mpv_completion_arguments%%=*}:#no-*}:#*-(add|append|clr|pre|set|remove|toggle)}
+ ;;
+
esac
return rc
diff --git a/etc/builtin.conf b/etc/builtin.conf
index ce3c64f965..ec0a485a9c 100644
--- a/etc/builtin.conf
+++ b/etc/builtin.conf
@@ -16,7 +16,7 @@ player-operation-mode=pseudo-gui
terminal=no
force-window=yes
idle=once
-screenshot-directory=~~desktop/
+screenshot-dir=~~desktop/
[libmpv]
config=no
@@ -26,7 +26,7 @@ input-terminal=no
osc=no
input-default-bindings=no
input-vo-keyboard=no
-# OSX/Cocoa global input hooks
+# macOS global input hooks
input-media-keys=no
[encoding]
@@ -40,15 +40,24 @@ load-scripts=no
osc=no
framedrop=no
+[fast]
+scale=bilinear
+dscale=bilinear
+dither=no
+correct-downscaling=no
+linear-downscaling=no
+sigmoid-upscaling=no
+hdr-compute-peak=no
+allow-delayed-peak-detect=yes
+
+[high-quality]
+scale=ewa_lanczossharp
+hdr-peak-percentile=99.995
+hdr-contrast-recovery=0.30
+
+# Deprecated alias
[gpu-hq]
-scale=spline36
-cscale=spline36
-dscale=mitchell
-dither-depth=auto
-correct-downscaling=yes
-linear-downscaling=yes
-sigmoid-upscaling=yes
-deband=yes
+profile=high-quality
[low-latency]
audio-buffer=0 # minimize extra audio buffer (can lead to dropouts)
@@ -68,7 +77,3 @@ sws-scaler=bilinear
sws-fast=yes
zimg-scaler=bilinear
zimg-dither=no
-
-# Compatibility alias (deprecated)
-[opengl-hq]
-profile=gpu-hq
diff --git a/etc/input.conf b/etc/input.conf
index ba96a77190..80f1ceb2f3 100644
--- a/etc/input.conf
+++ b/etc/input.conf
@@ -29,85 +29,86 @@
#default-bindings start
#MBTN_LEFT ignore # don't do anything
-#MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen on/off
-#MBTN_RIGHT cycle pause # toggle pause on/off
-#MBTN_BACK playlist-prev
-#MBTN_FORWARD playlist-next
+#MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen
+#MBTN_RIGHT cycle pause # toggle pause/playback mode
+#MBTN_BACK playlist-prev # skip to the previous file
+#MBTN_FORWARD playlist-next # skip to the next file
# Mouse wheels, touchpad or other input devices that have axes
# if the input devices supports precise scrolling it will also scale the
# numeric value accordingly
-#WHEEL_UP seek 10
-#WHEEL_DOWN seek -10
-#WHEEL_LEFT add volume -2
-#WHEEL_RIGHT add volume 2
+#WHEEL_UP add volume 2
+#WHEEL_DOWN add volume -2
+#WHEEL_LEFT seek -10 # seek 10 seconds backward
+#WHEEL_RIGHT seek 10 # seek 10 seconds forward
## Seek units are in seconds, but note that these are limited by keyframes
-#RIGHT seek 5
-#LEFT seek -5
-#UP seek 60
-#DOWN seek -60
+#RIGHT seek 5 # seek 5 seconds forward
+#LEFT seek -5 # seek 5 seconds backward
+#UP seek 60 # seek 1 minute forward
+#DOWN seek -60 # seek 1 minute backward
# Do smaller, always exact (non-keyframe-limited), seeks with shift.
# Don't show them on the OSD (no-osd).
-#Shift+RIGHT no-osd seek 1 exact
-#Shift+LEFT no-osd seek -1 exact
-#Shift+UP no-osd seek 5 exact
-#Shift+DOWN no-osd seek -5 exact
-# Skip to previous/next subtitle (subject to some restrictions; see manpage)
-#Ctrl+LEFT no-osd sub-seek -1
-#Ctrl+RIGHT no-osd sub-seek 1
-# Adjust timing to previous/next subtitle
-#Ctrl+Shift+LEFT sub-step -1
-#Ctrl+Shift+RIGHT sub-step 1
-# Move video rectangle
-#Alt+left add video-pan-x 0.1
-#Alt+right add video-pan-x -0.1
-#Alt+up add video-pan-y 0.1
-#Alt+down add video-pan-y -0.1
-# Zoom/unzoom video
-#Alt++ add video-zoom 0.1
-#Alt+- add video-zoom -0.1
-# Reset video zoom/pan settings
-#Alt+BS set video-zoom 0 ; set video-pan-x 0 ; set video-pan-y 0
-#PGUP add chapter 1 # skip to next chapter
-#PGDWN add chapter -1 # skip to previous chapter
-#Shift+PGUP seek 600
-#Shift+PGDWN seek -600
-#[ multiply speed 1/1.1 # scale playback speed
-#] multiply speed 1.1
-#{ multiply speed 0.5
-#} multiply speed 2.0
-#BS set speed 1.0 # reset speed to normal
-#Shift+BS revert-seek # undo previous (or marked) seek
-#Shift+Ctrl+BS revert-seek mark # mark position for revert-seek
+#Shift+RIGHT no-osd seek 1 exact # seek exactly 1 second forward
+#Shift+LEFT no-osd seek -1 exact # seek exactly 1 second backward
+#Shift+UP no-osd seek 5 exact # seek exactly 5 seconds forward
+#Shift+DOWN no-osd seek -5 exact # seek exactly 5 seconds backward
+#Ctrl+LEFT no-osd sub-seek -1 # seek to the previous subtitle
+#Ctrl+RIGHT no-osd sub-seek 1 # seek to the next subtitle
+#Ctrl+Shift+LEFT sub-step -1 # change subtitle timing such that the previous subtitle is displayed
+#Ctrl+Shift+RIGHT sub-step 1 # change subtitle timing such that the next subtitle is displayed
+#Alt+left add video-pan-x 0.1 # move the video right
+#Alt+right add video-pan-x -0.1 # move the video left
+#Alt+up add video-pan-y 0.1 # move the video down
+#Alt+down add video-pan-y -0.1 # move the video up
+#Alt++ add video-zoom 0.1 # zoom in
+#ZOOMIN add video-zoom 0.1 # zoom in
+#Alt+- add video-zoom -0.1 # zoom out
+#ZOOMOUT add video-zoom -0.1 # zoom out
+#Ctrl+WHEEL_UP add video-zoom 0.1 # zoom in
+#Ctrl+WHEEL_DOWN add video-zoom -0.1 # zoom out
+#Alt+BS set video-zoom 0 ; set video-pan-x 0 ; set video-pan-y 0 # reset zoom and pan settings
+#PGUP add chapter 1 # seek to the next chapter
+#PGDWN add chapter -1 # seek to the previous chapter
+#Shift+PGUP seek 600 # seek 10 minutes forward
+#Shift+PGDWN seek -600 # seek 10 minutes backward
+#[ multiply speed 1/1.1 # decrease the playback speed
+#] multiply speed 1.1 # increase the playback speed
+#{ multiply speed 0.5 # halve the playback speed
+#} multiply speed 2.0 # double the playback speed
+#BS set speed 1.0 # reset the speed to normal
+#Shift+BS revert-seek # undo the previous (or marked) seek
+#Shift+Ctrl+BS revert-seek mark # mark the position for revert-seek
#q quit
-#Q quit-watch-later
+#Q quit-watch-later # exit and remember the playback position
#q {encode} quit 4
-#ESC set fullscreen no
+#ESC set fullscreen no # leave fullscreen
#ESC {encode} quit 4
#p cycle pause # toggle pause/playback mode
#. frame-step # advance one frame and pause
#, frame-back-step # go back by one frame and pause
-#SPACE cycle pause
-#> playlist-next # skip to next file
-#ENTER playlist-next # skip to next file
-#< playlist-prev # skip to previous file
-#O no-osd cycle-values osd-level 3 1 # cycle through OSD mode
-#o show-progress
-#P show-progress
-#i script-binding stats/display-stats
-#I script-binding stats/display-stats-toggle
-#` script-binding console/enable
-#z add sub-delay -0.1 # subtract 100 ms delay from subs
-#Z add sub-delay +0.1 # add
-#x add sub-delay +0.1 # same as previous binding (discouraged)
-#ctrl++ add audio-delay 0.100 # this changes audio/video sync
-#ctrl+- add audio-delay -0.100
+#SPACE cycle pause # toggle pause/playback mode
+#> playlist-next # skip to the next file
+#ENTER playlist-next # skip to the next file
+#< playlist-prev # skip to the previous file
+#O no-osd cycle-values osd-level 3 1 # toggle displaying the OSD on user interaction or always
+#o show-progress # show playback progress
+#P show-progress # show playback progress
+#i script-binding stats/display-stats # display information and statistics
+#I script-binding stats/display-stats-toggle # toggle displaying information and statistics
+#` script-binding console/enable # open the console
+#z add sub-delay -0.1 # shift subtitles 100 ms earlier
+#Z add sub-delay +0.1 # delay subtitles by 100 ms
+#x add sub-delay +0.1 # delay subtitles by 100 ms
+#ctrl++ add audio-delay 0.100 # change audio/video sync by delaying the audio
+#ctrl+- add audio-delay -0.100 # change audio/video sync by shifting the audio earlier
+#Shift+g add sub-scale +0.1 # increase the subtitle font size
+#Shift+f add sub-scale -0.1 # decrease the subtitle font size
#9 add volume -2
#/ add volume -2
#0 add volume 2
#* add volume 2
-#m cycle mute
+#m cycle mute # toggle mute
#1 add contrast -1
#2 add contrast 1
#3 add brightness -1
@@ -116,75 +117,68 @@
#6 add gamma 1
#7 add saturation -1
#8 add saturation 1
-#Alt+0 set window-scale 0.5
-#Alt+1 set window-scale 1.0
-#Alt+2 set window-scale 2.0
-# toggle deinterlacer (automatically inserts or removes required filter)
-#d cycle deinterlace
+#Alt+0 set window-scale 0.5 # halve the window size
+#Alt+1 set window-scale 1.0 # reset the window size
+#Alt+2 set window-scale 2.0 # double the window size
+#b cycle deband # toggle the debanding filter
+#d cycle deinterlace # cycle the deinterlacing filter
#r add sub-pos -1 # move subtitles up
-#R add sub-pos +1 # down
-#t add sub-pos +1 # same as previous binding (discouraged)
-#v cycle sub-visibility
-# stretch SSA/ASS subtitles with anamorphic videos to match historical
-#V cycle sub-ass-vsfilter-aspect-compat
-# switch between applying no style overrides to SSA/ASS subtitles, and
-# overriding them almost completely with the normal subtitle style
-#u cycle-values sub-ass-override "force" "no"
-#j cycle sub # cycle through subtitles
-#J cycle sub down # ...backwards
-#SHARP cycle audio # switch audio streams
-#_ cycle video
-#T cycle ontop # toggle video window ontop of other windows
+#R add sub-pos +1 # move subtitles down
+#t add sub-pos +1 # move subtitles down
+#v cycle sub-visibility # hide or show the subtitles
+#Alt+v cycle secondary-sub-visibility # hide or show the secondary subtitles
+#V cycle sub-ass-vsfilter-aspect-compat # toggle stretching SSA/ASS subtitles with anamorphic videos to match the historical renderer
+#u cycle-values sub-ass-override "force" "yes" # toggle overriding SSA/ASS subtitle styles with the normal styles
+#j cycle sub # switch subtitle track
+#J cycle sub down # switch subtitle track backwards
+#SHARP cycle audio # switch audio track
+#_ cycle video # switch video track
+#T cycle ontop # toggle placing the video on top of other windows
#f cycle fullscreen # toggle fullscreen
-#s screenshot # take a screenshot
-#S screenshot video # ...without subtitles
-#Ctrl+s screenshot window # ...with subtitles and OSD, and scaled
-#Alt+s screenshot each-frame # automatically screenshot every frame
-#w add panscan -0.1 # zoom out with -panscan 0 -fs
-#W add panscan +0.1 # in
-#e add panscan +0.1 # same as previous binding (discouraged)
-# cycle video aspect ratios; "-1" is the container aspect
-#A cycle-values video-aspect-override "16:9" "4:3" "2.35:1" "-1"
+#s screenshot # take a screenshot of the video in its original resolution with subtitles
+#S screenshot video # take a screenshot of the video in its original resolution without subtitles
+#Ctrl+s screenshot window # take a screenshot of the window with OSD and subtitles
+#Alt+s screenshot each-frame # automatically screenshot every frame; issue this command again to stop taking screenshots
+#w add panscan -0.1 # decrease panscan
+#W add panscan +0.1 # shrink black bars by cropping the video
+#e add panscan +0.1 # shrink black bars by cropping the video
+#A cycle-values video-aspect-override "16:9" "4:3" "2.35:1" "-1" # cycle the video aspect ratio ("-1" is the container aspect)
#POWER quit
-#PLAY cycle pause
-#PAUSE cycle pause
-#PLAYPAUSE cycle pause
-#PLAYONLY set pause no
-#PAUSEONLY set pause yes
+#PLAY cycle pause # toggle pause/playback mode
+#PAUSE cycle pause # toggle pause/playback mode
+#PLAYPAUSE cycle pause # toggle pause/playback mode
+#PLAYONLY set pause no # unpause
+#PAUSEONLY set pause yes # pause
#STOP quit
-#FORWARD seek 60
-#REWIND seek -60
-#NEXT playlist-next
-#PREV playlist-prev
+#FORWARD seek 60 # seek 1 minute forward
+#REWIND seek -60 # seek 1 minute backward
+#NEXT playlist-next # skip to the next file
+#PREV playlist-prev # skip to the previous file
#VOLUME_UP add volume 2
#VOLUME_DOWN add volume -2
-#MUTE cycle mute
+#MUTE cycle mute # toggle mute
#CLOSE_WIN quit
#CLOSE_WIN {encode} quit 4
#ctrl+w quit
-#E cycle edition # next edition
-#l ab-loop # Set/clear A-B loop points
+#E cycle edition # switch edition
+#l ab-loop # set/clear A-B loop points
#L cycle-values loop-file "inf" "no" # toggle infinite looping
#ctrl+c quit 4
-#DEL script-binding osc/visibility # cycle OSC display
-#ctrl+h cycle-values hwdec "auto" "no" # cycle hardware decoding
-#F8 show_text ${playlist} # show playlist
-#F9 show_text ${track-list} # show list of audio/sub streams
+#DEL script-binding osc/visibility # cycle OSC visibility between never, auto (mouse-move) and always
+#ctrl+h cycle-values hwdec "auto-safe" "no" # toggle hardware decoding
+#F8 show-text ${playlist} # show the playlist
+#F9 show-text ${track-list} # show the list of video, audio and sub tracks
#
# Legacy bindings (may or may not be removed in the future)
#
-#! add chapter -1 # skip to previous chapter
-#@ add chapter 1 # next
+#! add chapter -1 # seek to the previous chapter
+#@ add chapter 1 # seek to the next chapter
#
# Not assigned by default
# (not an exhaustive list of unbound commands)
#
-# ? add sub-scale +0.1 # increase subtitle font size
-# ? add sub-scale -0.1 # decrease subtitle font size
-# ? cycle angle # switch DVD/Bluray angle
-# ? cycle sub-forced-only # toggle DVD forced subs
-# ? cycle program # cycle transport stream programs
+# ? cycle sub-forced-events-only # display only DVD/PGS forced subtitle events
# ? stop # stop playback (quit or enter idle mode)
diff --git a/etc/meson.build b/etc/meson.build
new file mode 100644
index 0000000000..12fe732b43
--- /dev/null
+++ b/etc/meson.build
@@ -0,0 +1,20 @@
+icons = ['16', '32', '64', '128']
+foreach size: icons
+ name = 'mpv-icon-8bit-'+size+'x'+size+'.png'
+ icon = custom_target(name,
+ input: join_paths(source_root, 'etc', name),
+ output: name + '.inc',
+ command: [file2string, '@INPUT@', '@OUTPUT@'],
+ )
+ sources += icon
+endforeach
+
+etc_files = ['input.conf', 'builtin.conf']
+foreach file: etc_files
+ etc_file = custom_target(file,
+ input: join_paths(source_root, 'etc', file),
+ output: file + '.inc',
+ command: [file2string, '@INPUT@', '@OUTPUT@'],
+ )
+ sources += etc_file
+endforeach
diff --git a/etc/mpv.bash-completion b/etc/mpv.bash-completion
index 60c1cabd51..4892d0e52b 100644
--- a/etc/mpv.bash-completion
+++ b/etc/mpv.bash-completion
@@ -17,33 +17,39 @@
# License along with mpv. If not, see <http://www.gnu.org/licenses/>.
#
-# Cache all the mpv options
-_mpv_options=$(mpv --list-options)
+_mpv_options()
+{
+ if [ -z ${_mpv_options_cache+x} ]; then
+ _mpv_options_cache=$(mpv --no-config --list-options)
+ fi
+ echo "$_mpv_options_cache"
+}
_mpv_get_args()
{
- local doc=$(echo "$_mpv_options" | grep -E "^\\s*$1\\s")
+ local doc=$(_mpv_options | grep -E "^\\s*$1\\s")
local partial="$2"
local type=$(echo "$doc" | awk '{print $2;}')
+ # We special-case profiles to ensure we read the config
if [ "$1" = "--show-profile" ]; then
- # This is a special case
+ type="ShowProfile"
+ elif [ "$1" = "--profile" ]; then
type="Profile"
fi
declare -a candidates
case $type in
String)
- echo "$doc" | grep -q '\[file\]'
- if [ $? -eq 0 ]; then
+ if echo "$doc" | grep -q '\[file\]' ; then
if [ "$cur" = '=' ]; then
# Without this, _filedir will try and complete files starting with '='
cur=""
fi
- _filedir
+ _filedir 2>/dev/null || COMPREPLY=($(compgen -f))
return 0
else
- candidates=($(mpv $1=help | grep -v ':' | awk '{print $1;}'))
+ candidates=($(mpv --no-config $1=help | grep -v ':' | awk '{print $1;}'))
candidates+=("help")
fi
;;
@@ -51,15 +57,19 @@ _mpv_get_args()
candidates=("yes" "no" "help")
;;
Choices:|Object)
- candidates=($(mpv $1=help | grep -v ':' | awk '{print $1;}'))
+ candidates=($(mpv --no-config $1=help | grep -v ':' | awk '{print $1;}'))
candidates+=("help")
;;
Image)
- candidates=($(mpv $1=help))
+ candidates=($(mpv --no-config $1=help))
candidates=("${candidates[@]:2}")
candidates+=("help")
;;
Profile)
+ candidates=($(mpv $1=help | grep -v ':' | awk '{print $1;}'))
+ candidates+=("help")
+ ;;
+ ShowProfile)
candidates=($(mpv $1= | grep -v ':' | awk '{print $1;}'))
;;
*)
@@ -74,9 +84,28 @@ _mpv_get_args()
}
# This regex detects special options where we don't want an '=' appended
-_mpv_special_regex='Flag.*\[not in config files\]|Print'
-_mpv_regular_options=($(echo "$_mpv_options" | grep -v -E "$_mpv_special_regex" |awk '{print "\\"$1;}' | grep '\--'))
-_mpv_special_options=($(echo "$_mpv_options" | grep -E "$_mpv_special_regex" |awk '{print "\\"$1;}' | grep '\--'))
+_mpv_special_regex='\s(Flag.*\[not in config files\]|Print)'
+_mpv_skip_regex='\sremoved \[deprecated\]'
+
+_mpv_regular_options()
+{
+ if [ -z ${_mpv_regular_options_cache+x} ]; then
+ _mpv_regular_options_cache=($(_mpv_options | grep -vE "$_mpv_skip_regex" | \
+ grep -vE "$_mpv_special_regex" | awk '{print "\\"$1;}' | grep '\--'))
+ _mpv_regular_options_cache="${_mpv_regular_options_cache[*]}"
+ fi
+ echo "$_mpv_regular_options_cache"
+}
+
+_mpv_special_options()
+{
+ if [ -z ${_mpv_special_options_cache+x} ]; then
+ _mpv_special_options_cache=($(_mpv_options | grep -vE "$_mpv_skip_regex" | \
+ grep -E "$_mpv_special_regex" | awk '{print "\\"$1;}' | grep '\--'))
+ _mpv_special_options_cache="${_mpv_special_options_cache[*]}"
+ fi
+ echo "$_mpv_special_options_cache"
+}
_mpv()
{
@@ -98,15 +127,15 @@ _mpv()
else
case $cur in
-*)
- COMPREPLY=($(compgen -W "${_mpv_regular_options[*]}" -S '=' -- "${cur}"))
+ COMPREPLY=($(compgen -W "$(_mpv_regular_options)" -S '=' -- "${cur}"))
local normal_count=${#COMPREPLY[@]}
- COMPREPLY+=($(compgen -W "${_mpv_special_options[*]}" -- "${cur}"))
+ COMPREPLY+=($(compgen -W "$(_mpv_special_options)" -- "${cur}"))
if [ $normal_count -gt 0 -o ${#COMPREPLY[@]} -gt 1 ]; then
compopt -o nospace mpv
fi
;;
*)
- _filedir
+ _filedir 2>/dev/null || COMPREPLY=($(compgen -f))
;;
esac
fi
diff --git a/etc/mpv.conf b/etc/mpv.conf
index d067562f1e..d873c06d5b 100644
--- a/etc/mpv.conf
+++ b/etc/mpv.conf
@@ -52,9 +52,14 @@
# Keep the player window on top of all other windows.
#ontop=yes
-# Specify high quality video rendering preset (for --vo=gpu only)
-# Can cause performance problems with some drivers and GPUs.
-#profile=gpu-hq
+# Specify fast video rendering preset (for --vo=<gpu|gpu-next> only)
+# Recommended for mobile devices or older hardware with limited processing power
+#profile=fast
+
+# Specify high quality video rendering preset (for --vo=<gpu|gpu-next> only)
+# Offers superior image fidelity and visual quality for an enhanced viewing
+# experience on capable hardware
+#profile=high-quality
# Force video to lock on the display's refresh rate, and change video and audio
# speed to some degree to ensure synchronous playback - can cause problems
diff --git a/etc/mpv.desktop b/etc/mpv.desktop
index a157e87c90..5a2b19b3ee 100644
--- a/etc/mpv.desktop
+++ b/etc/mpv.desktop
@@ -5,14 +5,21 @@ Name[ca]=Reproductor multimèdia mpv
Name[cs]=mpv přehrávač
Name[da]=mpv-medieafspiller
Name[fr]=Lecteur multimédia mpv
+Name[it]=Lettore multimediale mpv
+Name[ja]=mpv メディアプレイヤー
Name[pl]=Odtwarzacz mpv
Name[ru]=Проигрыватель mpv
+Name[tr]=mpv Ortam Oynatıcı
Name[zh_CN]=mpv 媒体播放器
Name[zh_TW]=mpv 媒體播放器
GenericName=Multimedia player
GenericName[cs]=Multimediální přehrávač
GenericName[da]=Multimedieafspiller
GenericName[fr]=Lecteur multimédia
+GenericName[it]=Lettore multimediale
+GenericName[ja]=マルチメディアプレイヤー
+GenericName[ru]=Мультимедийный проигрыватель
+GenericName[tr]=Çoklu ortam oynatıcı
GenericName[zh_CN]=多媒体播放器
GenericName[zh_TW]=多媒體播放器
Comment=Play movies and songs
@@ -22,9 +29,11 @@ Comment[da]=Afspil film og sange
Comment[de]=Filme und Musik abspielen
Comment[es]=Reproduzca vídeos y canciones
Comment[fr]=Lire des vidéos et des musiques
-Comment[it]=Lettore multimediale
+Comment[ja]=映画や音楽を再生する
+Comment[it]=Riproduci video e canzoni
Comment[pl]=Odtwarzaj filmy i muzykę
-Comment[ru]=Воспроизвести фильмы и музыку
+Comment[ru]=Воспроизведение фильмов и музыки
+Comment[tr]=Filmleri ve şarkıları oynatın
Comment[zh_CN]=播放电影和歌曲
Comment[zh_TW]=播放電影和歌曲
Icon=mpv
@@ -32,5 +41,7 @@ TryExec=mpv
Exec=mpv --player-operation-mode=pseudo-gui -- %U
Terminal=false
Categories=AudioVideo;Audio;Video;Player;TV;
-MimeType=application/ogg;application/x-ogg;application/mxf;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/aiff;audio/x-aiff;audio/m4a;audio/x-m4a;application/x-extension-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/mpeg2;audio/mpeg3;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/musepack;audio/x-musepack;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg2;video/x-mpeg3;video/mp4v-es;video/x-m4v;video/mp4;application/x-extension-mp4;video/divx;video/vnd.divx;video/msvideo;video/x-msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;audio/x-ms-asf;application/vnd.ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/avi;video/x-flic;video/fli;video/x-flc;video/flv;video/x-flv;video/x-theora;video/x-theora+ogg;video/x-matroska;video/mkv;audio/x-matroska;application/x-matroska;video/webm;audio/webm;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/x-ogm;video/x-ogm+ogg;application/x-ogm;application/x-ogm-audio;application/x-ogm-video;application/x-shorten;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/eac3;audio/amr-wb;video/mp2t;audio/flac;audio/mp4;application/x-mpegurl;video/vnd.mpegurl;application/vnd.apple.mpegurl;audio/x-pn-au;video/3gp;video/3gpp;video/3gpp2;audio/3gpp;audio/3gpp2;video/dv;audio/dv;audio/opus;audio/vnd.dts;audio/vnd.dts.hd;audio/x-adpcm;application/x-cue;audio/m3u;
-X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb
+MimeType=application/ogg;application/x-ogg;application/mxf;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/aiff;audio/x-aiff;audio/m4a;audio/x-m4a;application/x-extension-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/mpeg2;audio/mpeg3;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/musepack;audio/x-musepack;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg2;video/x-mpeg3;video/mp4v-es;video/x-m4v;video/mp4;application/x-extension-mp4;video/divx;video/vnd.divx;video/msvideo;video/x-msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;audio/x-ms-asf;application/vnd.ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/avi;video/x-flic;video/fli;video/x-flc;video/flv;video/x-flv;video/x-theora;video/x-theora+ogg;video/x-matroska;video/mkv;audio/x-matroska;application/x-matroska;video/webm;audio/webm;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/x-ogm;video/x-ogm+ogg;application/x-ogm;application/x-ogm-audio;application/x-ogm-video;application/x-shorten;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/eac3;audio/amr-wb;video/mp2t;audio/flac;audio/mp4;application/x-mpegurl;video/vnd.mpegurl;application/vnd.apple.mpegurl;audio/x-pn-au;video/3gp;video/3gpp;video/3gpp2;audio/3gpp;audio/3gpp2;video/dv;audio/dv;audio/opus;audio/vnd.dts;audio/vnd.dts.hd;audio/x-adpcm;application/x-cue;audio/m3u;audio/vnd.wave;video/vnd.avi;
+X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb,srt,rist,webdav,webdavs
+StartupWMClass=mpv
+Keywords=mpv;media;player;video;audio;tv;
diff --git a/etc/mpv.metainfo.xml b/etc/mpv.metainfo.xml
new file mode 100644
index 0000000000..618abd3f60
--- /dev/null
+++ b/etc/mpv.metainfo.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop-application">
+ <id>io.mpv.mpv</id>
+ <name>mpv</name>
+ <summary>A free, open source, and cross-platform media player</summary>
+ <description>
+ <p>mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.</p>
+ <p>mpv has an OpenGL, Vulkan, and D3D11 based video output that is capable of many features loved by videophiles, such as video scaling with popular high quality algorithms, color management, frame timing, interpolation, HDR, and more.</p>
+ <p>While mpv strives for minimalism and provides no real GUI, it has a small controller on top of the video for basic control.</p>
+ <p>mpv can leverage most hardware decoding APIs on all platforms. Hardware decoding can be enabled at runtime on demand.</p>
+ <p>Powerful scripting capabilities can make the player do almost anything. There is a large selection of user scripts on the wiki.</p>
+ <p>A straightforward C API was designed from the ground up to make mpv usable as a library and facilitate easy integration into other applications.</p>
+ </description>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>GPL-2.0-or-later AND LGPL-2.0-or-later</project_license>
+ <developer_name>mpv.io</developer_name>
+ <launchable type="desktop-id">mpv.desktop</launchable>
+ <content_rating type="oars-1.1" />
+ <screenshots>
+ <screenshot type="default">
+ <image>https://mpv.io/images/mpv-screenshot-34cd36ae.jpg</image>
+ <caption>Main window</caption>
+ </screenshot>
+ </screenshots>
+ <url type="homepage">https://mpv.io/</url>
+ <url type="bugtracker">https://github.com/mpv-player/mpv/issues</url>
+ <url type="faq">https://github.com/mpv-player/mpv/wiki/FAQ</url>
+ <url type="help">https://mpv.io/manual/stable</url>
+</component>
diff --git a/etc/restore-old-bindings.conf b/etc/restore-old-bindings.conf
index 662a699729..54b1524cae 100644
--- a/etc/restore-old-bindings.conf
+++ b/etc/restore-old-bindings.conf
@@ -9,25 +9,28 @@
#
# Older installations use ~/.mpv/input.conf instead.
+# changed in mpv 0.37.0
+
+WHEEL_UP seek 10 # seek 10 seconds forward
+WHEEL_DOWN seek -10 # seek 10 seconds backward
+WHEEL_LEFT add volume -2
+WHEEL_RIGHT add volume 2
+
# changed in mpv 0.27.0 (macOS and Wayland only)
-# WHEEL_UP seek 10
-# WHEEL_DOWN seek -10
# WHEEL_LEFT seek 5
# WHEEL_RIGHT seek -5
# changed in mpv 0.26.0
-h cycle tv-channel -1 # previous channel
-k cycle tv-channel +1 # next channel
-H cycle dvb-channel-name -1 # previous channel
-K cycle dvb-channel-name +1 # next channel
+H cycle dvbin-channel-switch-offset up
+K cycle dvbin-channel-switch-offset down
I show-text "${filename}" # display filename in osd
# changed in mpv 0.24.0
-L cycle-values loop "inf" "no"
+L cycle-values loop-playlist "inf" "no"
# changed in mpv 0.10.0
@@ -51,11 +54,6 @@ RIGHT seek 10
LEFT seek -10
+ add audio-delay 0.100
- add audio-delay -0.100
-( add balance -0.1
-) add balance 0.1
-F cycle sub-forced-only
-TAB cycle program
-A cycle angle
+F cycle sub-forced-events-only
U stop
-o osd
-I show-text "${filename}"
+o cycle-values osd-level