#!/bin/bash
# mpv 0.25.0
### LOOKUP TABLES AND CACHES ###
declare _mpv_xrandr_cache
declare -A _mpv_fargs
declare -A _mpv_pargs
_mpv_fargs[af@lavfi-bridge]="opts= o= graph= name="
_mpv_fargs[af@channels]="nch= routes="
_mpv_pargs[af@channels@nch]="2 1 16"
_mpv_fargs[af@volume]="replaygain-track= detach= warn= replaygain-album= replaygain-clip= replaygain-fallback= softclip= volumedb= replaygain-preamp= s16="
_mpv_pargs[af@volume@replaygain-track]="yes no"
_mpv_pargs[af@volume@detach]="yes no"
_mpv_pargs[af@volume@warn]="yes no"
_mpv_pargs[af@volume@replaygain-album]="yes no"
_mpv_pargs[af@volume@replaygain-clip]="yes no"
_mpv_pargs[af@volume@replaygain-fallback]="0 -200 60"
_mpv_pargs[af@volume@softclip]="yes no"
_mpv_pargs[af@volume@volumedb]="0 -200 60"
_mpv_pargs[af@volume@replaygain-preamp]="0 -15 15"
_mpv_pargs[af@volume@s16]="yes no"
_mpv_fargs[af@format]="out-srate= out-channels= channels= fail= out-format= format= srate="
_mpv_pargs[af@format@out-srate]="0 1000 384000"
_mpv_pargs[af@format@fail]="yes no"
_mpv_pargs[af@format@srate]="0 1000 384000"
_mpv_fargs[af@lavfi]="graph= o="
_mpv_fargs[af@lavcac3enc]="bitrate= minch= o= encoder= tospdif="
_mpv_pargs[af@lavcac3enc@bitrate]="32 640 auto default"
_mpv_pargs[af@lavcac3enc@minch]="3 2 6"
_mpv_pargs[af@lavcac3enc@encoder]="ac3"
_mpv_pargs[af@lavcac3enc@tospdif]="yes no"
_mpv_fargs[af@scaletempo]="stride= scale= search= speed= overlap="
_mpv_pargs[af@scaletempo@stride]="60"
_mpv_pargs[af@scaletempo@scale]="1"
_mpv_pargs[af@scaletempo@search]="14"
_mpv_pargs[af@scaletempo@speed]="tempo pitch none both"
_mpv_pargs[af@scaletempo@overlap]="0.2 0 1"
_mpv_fargs[af@equalizer]="e3= e2= e1= e0= e6= e7= e4= e5= e9= e8="
_mpv_pargs[af@equalizer@e3]="0"
_mpv_pargs[af@equalizer@e2]="0"
_mpv_pargs[af@equalizer@e1]="0"
_mpv_pargs[af@equalizer@e0]="0"
_mpv_pargs[af@equalizer@e6]="0"
_mpv_pargs[af@equalizer@e7]="0"
_mpv_pargs[af@equalizer@e4]="0"
_mpv_pargs[af@equalizer@e5]="0"
_mpv_pargs[af@equalizer@e9]="0"
_mpv_pargs[af@equalizer@e8]="0"
_mpv_fargs[af@pan]="matrix= channels="
_mpv_pargs[af@pan@channels]="0 16"
_mpv_fargs[af@lavrresample]="o= detach= phase-shift= normalize= cutoff= filter-size= linear="
_mpv_pargs[af@lavrresample@detach]="yes no"
_mpv_pargs[af@lavrresample@phase-shift]="10 0 30"
_mpv_pargs[af@lavrresample@normalize]="auto no yes"
_mpv_pargs[af@lavrresample@cutoff]="0 1"
_mpv_pargs[af@lavrresample@filter-size]="16 0 32"
_mpv_pargs[af@lavrresample@linear]="yes no"
_mpv_fargs[vf@yadif]="lavfi-o= interlaced-only= warn= lavfi-sws-flags= mode="
_mpv_pargs[vf@yadif@interlaced-only]="yes no"
_mpv_pargs[vf@yadif@warn]="yes no"
_mpv_pargs[vf@yadif@lavfi-sws-flags]="4"
_mpv_pargs[vf@yadif@mode]="field frame frame-nospatial field-nospatial"
_mpv_fargs[vf@dlopen]="a12= a13= a9= a8= a15= a10= a6= a7= a4= a5= dll= a2= a11= a0= a14= a3= a1="
_mpv_fargs[vf@lavfi-bridge]="sobel= realtime= lut= perspective= perms= elbg= weave= o= cropdetect= il= zoompan= bbox= sab= lenscorrection= name= bench= vectorscope= negate= colorkey= mcdeint= format= shuffleplanes= kerndeint= atadenoise= setpts= smartblur= deflate= boxblur= opts= erosion= tblend= framerate= prewitt= pixdesctest= hue= tinterlace= unsharp= convolution= fieldhint= geq= mestimate= drawbox= field= drawtext= fps= owdenoise= setdar= bitplanenoise= selectivecolor= blackframe= swapuv= gblur= uspp= deband= colorbalance= mpdecimate= colormatrix= gradfun= phase= blackdetect= minterpolate= nnedi= fspp= qp= noformat= fifo= readvitc= pp7= rotate= setsar= noise= removelogo= dejudder= reverse= interlace= curves= swaprect= pullup= eq= settb= sws-flags= sidedata= shuffleframes= idet= w3fdif= transpose= vignette= fftfilt= vflip= edgedetect= nlmeans= copy= vaguedenoiser= inflate= null= tile= loop= showpalette= thumbnail= telecine= dctdnoiz= bwdif= super2xsai= dilation= subtitles= colorlevels= stereo3d= deshake= spp= ciescope= framestep= datascope= signalstats= hqx= lut3d= pad= histeq= histogram= fade= ass= yadif= xbr= drawgrid= hflip= colorchannelmixer= delogo= sendcmd= separatefields= crop= waveform= hwupload= chromakey= setfield= colorspace= codecview= palettegen= removegrain= drawgraph= hwdownload= lutrgb= scale= repeatfields= fieldorder= random= hqdn3d= pp= showinfo= metadata= lutyuv= trim= avgblur= detelecine="
_mpv_pargs[vf@lavfi-bridge@sws-flags]="4"
_mpv_fargs[vf@crop]="x= w= h= y="
_mpv_pargs[vf@crop@x]="-1"
_mpv_pargs[vf@crop@w]="-1"
_mpv_pargs[vf@crop@h]="-1"
_mpv_pargs[vf@crop@y]="-1"
_mpv_fargs[vf@buffer]="num="
_mpv_pargs[vf@buffer@num]="2 1 100"
_mpv_fargs[vf@lavfi]="sobel= realtime= lut= perspective= perms= elbg= weave= o= cropdetect= il= zoompan= bbox= sab= graph= lenscorrection= bench= vectorscope= negate= colorkey= mcdeint= format= shuffleplanes= kerndeint= atadenoise= setpts= smartblur= deflate= boxblur= erosion= tblend= framerate= prewitt= pixdesctest= hue= tinterlace= unsharp= convolution= fieldhint= geq= mestimate= drawbox= field= drawtext= fps= owdenoise= setdar= bitplanenoise= selectivecolor= blackframe= swapuv= gblur= uspp= deband= colorbalance= mpdecimate= colormatrix= gradfun= phase= blackdetect= minterpolate= nnedi= fspp= qp= noformat= fifo= readvitc= pp7= rotate= setsar= noise= removelogo= dejudder= reverse= interlace= curves= swaprect= pullup= eq= settb= sws-flags= sidedata= shuffleframes= idet= w3fdif= transpose= vignette= fftfilt= vflip= edgedetect= nlmeans= copy= vaguedenoiser= inflate= null= tile= loop= showpalette= thumbnail= telecine= dctdnoiz= bwdif= super2xsai= dilation= subtitles= colorlevels= stereo3d= deshake= spp= ciescope= framestep= datascope= signalstats= hqx= lut3d= pad= histeq= histogram= fade= ass= yadif= xbr= drawgrid= hflip= colorchannelmixer= delogo= sendcmd= separatefields= crop= waveform= hwupload= chromakey= setfield= colorspace= codecview= palettegen= removegrain= drawgraph= hwdownload= lutrgb= scale= repeatfields= fieldorder= random= hqdn3d= pp= showinfo= metadata= lutyuv= trim= avgblur= detelecine="
_mpv_pargs[vf@lavfi@sws-flags]="4"
_mpv_fargs[vf@rotate]="angle= lavfi-sws-flags= lavfi-o= warn="
_mpv_pargs[vf@rotate@angle]="0 90 180 270 auto"
_mpv_pargs[vf@rotate@lavfi-sws-flags]="4"
_mpv_pargs[vf@rotate@warn]="yes no"
_mpv_fargs[vf@scale]="noup= w= chr-drop= warn= arnd= param= h= param2="
_mpv_pargs[vf@scale@noup]="0 2"
_mpv_pargs[vf@scale@w]="-1"
_mpv_pargs[vf@scale@chr-drop]="0 3"
_mpv_pargs[vf@scale@warn]="yes no"
_mpv_pargs[vf@scale@arnd]="yes no"
_mpv_pargs[vf@scale@param]="123456 0 100"
_mpv_pargs[vf@scale@h]="-1"
_mpv_pargs[vf@scale@param2]="123456 0 100"
_mpv_fargs[vf@vdpaupp]="deint= deint-mode= interlaced-only= hqscaling= denoise= pullup= chroma-deint= sharpen="
_mpv_pargs[vf@vdpaupp@deint]="yes no"
_mpv_pargs[vf@vdpaupp@deint-mode]="temporal first-field bob temporal-spatial"
_mpv_pargs[vf@vdpaupp@interlaced-only]="yes no"
_mpv_pargs[vf@vdpaupp@hqscaling]="0 9"
_mpv_pargs[vf@vdpaupp@denoise]="0 1"
_mpv_pargs[vf@vdpaupp@pullup]="yes no"
_mpv_pargs[vf@vdpaupp@chroma-deint]="yes no"
_mpv_pargs[vf@vdpaupp@sharpen]="0 -1 1"
_mpv_fargs[vf@stereo3d]="out= warn= lavfi-sws-flags= in= lavfi-o="
_mpv_pargs[vf@stereo3d@out]="arcd arcg anaglyph_red_cyan_gray arch anaglyph_red_cyan_half_color arcc anaglyph_red_cyan_color anaglyph_red_cyan_dubios agmg anaglyph_green_magenta_gray agmh anaglyph_green_magenta_half_color agmc anaglyph_green_magenta_color agmd anaglyph_green_magenta_dubois aybg anaglyph_yellow_blue_gray aybh anaglyph_yellow_blue_half_color aybc anaglyph_yellow_blue_color aybd anaglyph_yellow_blue_dubois ml mono_left mr mono_right sbsl side_by_side_left_first sbsr side_by_side_right_first sbs2l side_by_side_half_width_left_first sbs2r side_by_side_half_width_right_first abl above_below_left_first abr above_below_right_first ab2l above_below_half_height_left_first ab2r above_below_half_height_right_first irl interleave_rows_left_first irr interleave_rows_right_first al ar mono auto"
_mpv_pargs[vf@stereo3d@warn]="yes no"
_mpv_pargs[vf@stereo3d@lavfi-sws-flags]="4"
_mpv_pargs[vf@stereo3d@in]="sbsl arcg anaglyph_red_cyan_gray arch anaglyph_red_cyan_half_color arcc anaglyph_red_cyan_color arcd anaglyph_red_cyan_dubios agmg anaglyph_green_magenta_gray agmh anaglyph_green_magenta_half_color agmc anaglyph_green_magenta_color agmd anaglyph_green_magenta_dubois aybg anaglyph_yellow_blue_gray aybh anaglyph_yellow_blue_half_color aybc anaglyph_yellow_blue_color aybd anaglyph_yellow_blue_dubois ml mono_left mr mono_right side_by_side_left_first sbsr side_by_side_right_first sbs2l side_by_side_half_width_left_first sbs2r side_by_side_half_width_right_first abl above_below_left_first abr above_below_right_first ab2l above_below_half_height_left_first ab2r above_below_half_height_right_first irl interleave_rows_left_first irr interleave_rows_right_first al ar mono auto"
_mpv_fargs[vf@gradfun]="lavfi-o= radius= strength= size= lavfi-sws-flags="
_mpv_pargs[vf@gradfun@radius]="-1 4 32"
_mpv_pargs[vf@gradfun@strength]="1.5 0.51 255"
_mpv_pargs[vf@gradfun@size]="-1 0.1 5"
_mpv_pargs[vf@gradfun@lavfi-sws-flags]="4"
_mpv_fargs[vf@expand]="aspect= w= round= x= h= y="
_mpv_pargs[vf@expand@aspect]="0"
_mpv_pargs[vf@expand@w]="-1"
_mpv_pargs[vf@expand@round]="1"
_mpv_pargs[vf@expand@x]="-1"
_mpv_pargs[vf@expand@h]="-1"
_mpv_pargs[vf@expand@y]="-1"
_mpv_fargs[vf@pullup]="jr= jt= lavfi-o= sb= jb= lavfi-sws-flags= mp= jl="
_mpv_pargs[vf@pullup@jr]="1"
_mpv_pargs[vf@pullup@jt]="4"
_mpv_pargs[vf@pullup@sb]="0"
_mpv_pargs[vf@pullup@jb]="4"
_mpv_pargs[vf@pullup@lavfi-sws-flags]="4"
_mpv_pargs[vf@pullup@mp]="y u v"
_mpv_pargs[vf@pullup@jl]="1"
_mpv_fargs[vf@eq]="contrast= brightness= weight= gg= saturation= bg= rg= gamma="
_mpv_pargs[vf@eq@contrast]="1 -2 2"
_mpv_pargs[vf@eq@brightness]="0 -1 1"
_mpv_pargs[vf@eq@weight]="1 0"
_mpv_pargs[vf@eq@gg]="1 0.1 10"
_mpv_pargs[vf@eq@saturation]="1 0 3"
_mpv_pargs[vf@eq@bg]="1 0.1 10"
_mpv_pargs[vf@eq@rg]="1 0.1 10"
_mpv_pargs[vf@eq@gamma]="1 0.1 10"
_mpv_fargs[vf@vavpp]="deint= interlaced-only= reversal-bug="
_mpv_pargs[vf@vavpp@deint]="bob no first-field weave motion-adaptive motion-compensated"
_mpv_pargs[vf@vavpp@interlaced-only]="yes no"
_mpv_pargs[vf@vavpp@reversal-bug]="yes no"
_mpv_fargs[vf@sub]="top-margin= bottom-margin="
_mpv_pargs[vf@sub@top-margin]="0 2000"
_mpv_pargs[vf@sub@bottom-margin]="0 2000"
_mpv_fargs[vf@dsize]="method= w= round= h= aspect="
_mpv_pargs[vf@dsize@method]="-1 3"
_mpv_pargs[vf@dsize@w]="-1 -3 2147483647"
_mpv_pargs[vf@dsize@round]="1 0 9999"
_mpv_pargs[vf@dsize@h]="-1 -3 2147483647"
_mpv_pargs[vf@dsize@aspect]="0 10"
_mpv_fargs[vf@noformat]="fmt="
_mpv_pargs[vf@noformat@fmt]="yuv444p yuv422p yuv440p yuv420p yuv411p yuv410p yuv444p16 yuv444p10 yuv444p9 yuv422p16 yuv422p10 yuv422p9 yuv420p16 yuv420p10 yuv420p9 yuva444p yuva422p yuva420p gray gray16 ya8 ya16 yuyv422 uyvy422 nv12 nv21 p010 argb bgra abgr rgba bgr24 rgb24 rgb48 rgba64 bgra64 0rgb bgr0 0bgr rgb0 rgb565 pal8 xyz12 vdpau output vaapi d3d11 rgb dxva2 vld mmal videotoolbox monow monob xvmcmc xvmcidct uyyvyy411 bgr8 bgr4 byte rgb8 rgb4 gray16be h264 mpeg1 mpeg2 wmv3 vc1 rgb48be rgb565be rgb555be rgb555 bgr565be bgr565 bgr555be bgr555 moco idct yuv420p16be yuv422p16be yuv444p16be mpeg4 rgb444 rgb444be bgr444 bgr444be bgr48be bgr48 yuv420p9be yuv420p10be yuv422p10be yuv444p9be yuv444p10be yuv422p9be vda gbrp gbrp9be gbrp9 gbrp10be gbrp10 gbrp16be gbrp16 yuva420p9be yuva420p9 yuva422p9be yuva422p9 yuva444p9be yuva444p9 yuva420p10be yuva420p10 yuva422p10be yuva422p10 yuva444p10be yuva444p10 yuva420p16be yuva420p16 yuva422p16be yuva422p16 yuva444p16be yuva444p16 xyz12be nv16 nv20 nv20be rgba64be bgra64be yvyu422 ya16be gbrap gbrap16be gbrap16 qsv d3d11va cuda yuv420p12be yuv420p12 yuv420p14be yuv420p14 yuv422p12be yuv422p12 yuv422p14be yuv422p14 yuv444p12be yuv444p12 yuv444p14be yuv444p14 gbrp12be gbrp12 gbrp14be gbrp14 yuvj411p bayer bggr8 rggb8 gbrg8 grbg8 bggr16 bggr16be rggb16 rggb16be gbrg16 gbrg16be grbg16 grbg16be yuv440p10 yuv440p10be yuv440p12 yuv440p12be ayuv64 ayuv64be vl p010be gbrap12be gbrap12 gbrap10be gbrap10 mediacodec"
_mpv_fargs[vf@format]="colormatrix= colorlevels= outfmt= primaries= rotate= fmt= chroma-location= stereo-in= dh= dw= dar= gamma= peak= stereo-out="
_mpv_pargs[vf@format@colormatrix]="auto bt.601 bt.709 smpte-240m bt.2020-ncl bt.2020-cl rgb xyz ycgco"
_mpv_pargs[vf@format@colorlevels]="auto limited full"
_mpv_pargs[vf@format@outfmt]="yuv444p yuv422p yuv440p yuv420p yuv411p yuv410p yuv444p16 yuv444p10 yuv444p9 yuv422p16 yuv422p10 yuv422p9 yuv420p16 yuv420p10 yuv420p9 yuva444p yuva422p yuva420p gray gray16 ya8 ya16 yuyv422 uyvy422 nv12 nv21 p010 argb bgra abgr rgba bgr24 rgb24 rgb48 rgba64 bgra64 0rgb bgr0 0bgr rgb0 rgb565 pal8 xyz12 vdpau output vaapi d3d11 rgb dxva2 vld mmal videotoolbox monow monob xvmcmc xvmcidct uyyvyy411 bgr8 bgr4 byte rgb8 rgb4 gray16be h264 mpeg1 mpeg2 wmv3 vc1 rgb48be rgb565be rgb555be rgb555 bgr565be bgr565 bgr555be bgr555 moco idct yuv420p16be yuv422p16be yuv444p16be mpeg4 rgb444 rgb444be bgr444 bgr444be bgr48be bgr48 yuv420p9be yuv420p10be yuv422p10be yuv444p9be yuv444p10be yuv422p9be vda gbrp gbrp9be gbrp9 gbrp10be gbrp10 gbrp16be gbrp16 yuva420p9be yuva420p9 yuva422p9be yuva422p9 yuva444p9be yuva444p9 yuva420p10be yuva420p10 yuva422p10be yuva422p10 yuva444p10be yuva444p10 yuva420p16be yuva420p16 yuva422p16be yuva422p16 yuva444p16be yuva444p16 xyz12be nv16 nv20 nv20be rgba64be bgra64be yvyu422 ya16be gbrap gbrap16be gbrap16 qsv d3d11va cuda yuv420p12be yuv420p12 yuv420p14be yuv420p14 yuv422p12be yuv422p12 yuv422p14be yuv422p14 yuv444p12be yuv444p12 yuv444p14be yuv444p14 gbrp12be gbrp12 gbrp14be gbrp14 yuvj411p bayer bggr8 rggb8 gbrg8 grbg8 bggr16 bggr16be rggb16 rggb16be gbrg16 gbrg16be grbg16 grbg16be yuv440p10 yuv440p10be yuv440p12 yuv440p12be ayuv64 ayuv64be vl p010be gbrap12be gbrap12 gbrap10be gbrap10 mediacodec"
_mpv_pargs[vf@format@primaries]="auto bt.601-525 bt.601-625 bt.709 bt.2020 bt.470m apple adobe prophoto cie1931 dci-p3 v-gamut"
_mpv_pargs[vf@format@rotate]="-1 359"
_mpv_pargs[vf@format@fmt]="yuv444p yuv422p yuv440p yuv420p yuv411p yuv410p yuv444p16 yuv444p10 yuv444p9 yuv422p16 yuv422p10 yuv422p9 yuv420p16 yuv420p10 yuv420p9 yuva444p yuva422p yuva420p gray gray16 ya8 ya16 yuyv422 uyvy422 nv12 nv21 p010 argb bgra abgr rgba bgr24 rgb24 rgb48 rgba64 bgra64 0rgb bgr0 0bgr rgb0 rgb565 pal8 xyz12 vdpau output vaapi d3d11 rgb dxva2 vld mmal videotoolbox monow monob xvmcmc xvmcidct uyyvyy411 bgr8 bgr4 byte rgb8 rgb4 gray16be h264 mpeg1 mpeg2 wmv3 vc1 rgb48be rgb565be rgb555be rgb555 bgr565be bgr565 bgr555be bgr555 moco idct yuv420p16be yuv422p16be yuv444p16be mpeg4 rgb444 rgb444be bgr444 bgr444be bgr48be bgr48 yuv420p9be yuv420p10be yuv422p10be yuv444p9be yuv444p10be yuv422p9be vda gbrp gbrp9be gbrp9 gbrp10be gbrp10 gbrp16be gbrp16 yuva420p9be yuva420p9 yuva422p9be yuva422p9 yuva444p9be yuva444p9 yuva420p10be yuva420p10 yuva422p10be yuva422p10 yuva444p10be yuva444p10 yuva420p16be yuva420p16 yuva422p16be yuva422p16 yuva444p16be yuva444p16 xyz12be nv16 nv20 nv20be rgba64be bgra64be yvyu422 ya16be gbrap gbrap16be gbrap16 qsv d3d11va cuda yuv420p12be yuv420p12 yuv420p14be yuv420p14 yuv422p12be yuv422p12 yuv422p14be yuv422p14 yuv444p12be yuv444p12 yuv444p14be yuv444p14 gbrp12be gbrp12 gbrp14be gbrp14 yuvj411p bayer bggr8 rggb8 gbrg8 grbg8 bggr16 bggr16be rggb16 rggb16be gbrg16 gbrg16be grbg16 grbg16be yuv440p10 yuv440p10be yuv440p12 yuv440p12be ayuv64 ayuv64be vl p010be gbrap12be gbrap12 gbrap10be gbrap10 mediacodec"
_mpv_pargs[vf@format@chroma-location]="unknown mpeg2/4/h264 mpeg1/jpeg"
_mpv_pargs[vf@format@stereo-in]="mono no sbs2l ab2r ab2l checkr checkl irr irl icr icl arcc sbs2r agmc al ar"
_mpv_pargs[vf@format@dh]="0"
_mpv_pargs[vf@format@dw]="0"
_mpv_pargs[vf@format@dar]="0"
_mpv_pargs[vf@format@gamma]="auto bt.1886 srgb linear gamma1.8 gamma2.2 gamma2.8 prophoto st2084 std-b67 v-log"
_mpv_pargs[vf@format@peak]="0"
_mpv_pargs[vf@format@stereo-out]="mono no sbs2l ab2r ab2l checkr checkl irr irl icr icl arcc sbs2r agmc al ar"
### HELPER FUNCTIONS ###
_mpv_uniq(){
  local -A w
  local o=""
  for ww in "$@"; do
    if [[ -z "${w[$ww]}" ]]; then
      o="${o}${ww} "
      w[$ww]=x
    fi
  done
  printf "${o% }"
}
_mpv_profiles(){
  type mpv &>/dev/null || return 0;
  local p=$(mpv --profile help)
  echo "${p##*:}"
}
_mpv_drm_connectors(){
  type mpv &>/dev/null || return 0;
  local conn=$(mpv --no-config --drm-connector help \
                | awk '/\<connected\>/{ print $1 ; }')
  echo "${conn}"
}
_mpv_xrandr(){
  if [[ -z "$_mpv_xrandr_cache" && -n "$DISPLAY" ]] && type xrandr &>/dev/null; then
    _mpv_xrandr_cache=$(xrandr|while read l; do
      [[ $l =~ ([0-9]+x[0-9]+) ]] && echo "${BASH_REMATCH[1]}"
    done)
    _mpv_xrandr_cache=$(_mpv_uniq $_mpv_xrandr_cache)
  fi
  printf "$_mpv_xrandr_cache"
}
_mpv_s(){
  local cmp=$1
  local cur=$2
  COMPREPLY=($(compgen -W "$cmp" -- "$cur"))
}
_mpv_objarg(){
  local prev=${1#--} p=$2 r s t k f
  shift 2
  # Parameter arguments I:
  # All available parameters
  if [[ $p =~ : && $p =~ =$ ]]; then
    # current filter
    s=${p##*,}
    s=${s%%:*}
    # current parameter
    t=${p%=}
    t=${t##*:}
    # index key
    k="$prev@$s@$t"
    if [[ ${_mpv_pargs[$k]+x} ]]; then
      for q in ${_mpv_pargs[$k]}; do
        r="${r}${p}${q} "
      done
    fi

  # Parameter arguments II:
  # Fragment completion
  elif [[ ${p##*,} =~ : && ${p##*:} =~ = ]]; then
    # current filter
    s=${p##*,}
    s=${s%%:*}
    # current parameter
    t=${p%=}
    t=${t##*:}
    t=${t%%=*}
    # index key
    k="$prev@$s@$t"
    # fragment
    f=${p##*=}
    if [[ ${_mpv_pargs[$k]+x} ]]; then
      for q in ${_mpv_pargs[$k]}; do
        if [[ $q =~ ^${f} ]]; then
          r="${r}${p%=*}=${q} "
        fi
      done
    fi

  # Filter parameters I:
  # Suggest all available parameters
  elif [[ $p =~ :$ ]]; then
    # current filter
    s=${p##*,}
    s=${s%%:*}
    # index key
    k="$prev@$s"
    for q in ${_mpv_fargs[$k]}; do
      r="${r}${p}${q} "
    done

  # Filter parameters II:
  # Complete fragment
  elif [[ ${p##*,} =~ : ]]; then
    s=${p##*,}
    s=${s%%:*}
    # current argument
    t=${p##*:}
    # index key
    k="$prev@$s"
    for q in ${_mpv_fargs[$k]}; do
      if [[ $q =~ ^${t} ]]; then
        r="${r}${p%:*}:${q} "
      fi
    done

  # Filter list I:
  # All available filters
  elif [[ $p =~ ,$ ]]; then
    for q in "$@"; do
      r="${r}${p}${q} "
    done

  # Filter list II:
  # Complete fragment
  else
    s=${p##*,}
    for q in "$@"; do
      if [[ $q =~ ^${s} ]]; then
        r="${r}${p%,*},${q} "
      fi
    done
  fi
  printf "${r% }"
}
### COMPLETION ###
_mpv(){
  local cur=${COMP_WORDS[COMP_CWORD]}
  local prev=${COMP_WORDS[COMP_CWORD-1]}
  # handle --option=a|b|c and --option a=b=c
  COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
  # handle --af filter=arg,filter2=arg
  COMP_WORDBREAKS=${COMP_WORDBREAKS/:/}
  COMP_WORDBREAKS=${COMP_WORDBREAKS/,/}
if [[ -n $cur ]]; then case "$cur" in
--vo-vdpau-composite-detect=*)_mpv_s '--vo-vdpau-composite-detect=yes --vo-vdpau-composite-detect=no' "$cur"; return;;
--demuxer-lavf-probe-info=*)_mpv_s '--demuxer-lavf-probe-info=auto --demuxer-lavf-probe-info=no --demuxer-lavf-probe-info=yes' "$cur"; return;;
--vo-image-format=*)_mpv_s '--vo-image-format=jpg --vo-image-format=jpeg --vo-image-format=png' "$cur"; return;;
--jack-autostart=*)_mpv_s '--jack-autostart=yes --jack-autostart=no' "$cur"; return;;
--gamma-auto=*)_mpv_s '--gamma-auto=yes --gamma-auto=no' "$cur"; return;;
--vo-vdpau-pullup=*)_mpv_s '--vo-vdpau-pullup=yes --vo-vdpau-pullup=no' "$cur"; return;;
--opengl-debug=*)_mpv_s '--opengl-debug=yes --opengl-debug=no' "$cur"; return;;
--sub-use-margins=*)_mpv_s '--sub-use-margins=yes --sub-use-margins=no' "$cur"; return;;
--msg-module=*)_mpv_s '--msg-module=yes --msg-module=no' "$cur"; return;;
--loop-file=*)_mpv_s '--loop-file=0 --loop-file=no --loop-file=yes --loop-file=inf' "$cur"; return;;
--sub-ass-hinting=*)_mpv_s '--sub-ass-hinting=none --sub-ass-hinting=light --sub-ass-hinting=normal --sub-ass-hinting=native' "$cur"; return;;
--alsa-ignore-chmap=*)_mpv_s '--alsa-ignore-chmap=yes --alsa-ignore-chmap=no' "$cur"; return;;
--force-window=*)_mpv_s '--force-window=no --force-window=yes --force-window=immediate' "$cur"; return;;
--on-all-workspaces=*)_mpv_s '--on-all-workspaces=yes --on-all-workspaces=no' "$cur"; return;;
--demuxer-mkv-probe-start-time=*)_mpv_s '--demuxer-mkv-probe-start-time=yes --demuxer-mkv-probe-start-time=no' "$cur"; return;;
--sub-gray=*)_mpv_s '--sub-gray=yes --sub-gray=no' "$cur"; return;;
--vo-image-tag-colorspace=*)_mpv_s '--vo-image-tag-colorspace=yes --vo-image-tag-colorspace=no' "$cur"; return;;
--hidpi-window-scale=*)_mpv_s '--hidpi-window-scale=yes --hidpi-window-scale=no' "$cur"; return;;
--osd-justify=*)_mpv_s '--osd-justify=auto --osd-justify=left --osd-justify=center --osd-justify=right' "$cur"; return;;
--input-test=*)_mpv_s '--input-test=yes --input-test=no' "$cur"; return;;
--oautofps=*)_mpv_s '--oautofps=yes --oautofps=no' "$cur"; return;;
--resume-playback=*)_mpv_s '--resume-playback=yes --resume-playback=no' "$cur"; return;;
--tscale-clamp=*)_mpv_s '--tscale-clamp=yes --tscale-clamp=no' "$cur"; return;;
--osd-bold=*)_mpv_s '--osd-bold=yes --osd-bold=no' "$cur"; return;;
--stop-screensaver=*)_mpv_s '--stop-screensaver=yes --stop-screensaver=no' "$cur"; return;;
--video-sync=*)_mpv_s '--video-sync=audio --video-sync=display-resample --video-sync=display-resample-vdrop --video-sync=display-resample-desync --video-sync=display-adrop --video-sync=display-vdrop --video-sync=display-desync --video-sync=desync' "$cur"; return;;
--input-cursor=*)_mpv_s '--input-cursor=yes --input-cursor=no' "$cur"; return;;
--osd-scale-by-window=*)_mpv_s '--osd-scale-by-window=yes --osd-scale-by-window=no' "$cur"; return;;
--osd-italic=*)_mpv_s '--osd-italic=yes --osd-italic=no' "$cur"; return;;
--audio-exclusive=*)_mpv_s '--audio-exclusive=yes --audio-exclusive=no' "$cur"; return;;
--osd-level=*)_mpv_s '--osd-level=1 --osd-level=0 --osd-level=2 --osd-level=3' "$cur"; return;;
--opengl-dumb-mode=*)_mpv_s '--opengl-dumb-mode=yes --opengl-dumb-mode=no' "$cur"; return;;
--sub-filter-sdh=*)_mpv_s '--sub-filter-sdh=yes --sub-filter-sdh=no' "$cur"; return;;
--merge-files=*)_mpv_s '--merge-files=yes --merge-files=no' "$cur"; return;;
--audio-fallback-to-null=*)_mpv_s '--audio-fallback-to-null=yes --audio-fallback-to-null=no' "$cur"; return;;
--hr-seek=*)_mpv_s '--hr-seek=absolute --hr-seek=no --hr-seek=yes --hr-seek=always' "$cur"; return;;
--prefetch-playlist=*)_mpv_s '--prefetch-playlist=yes --prefetch-playlist=no' "$cur"; return;;
--osd-bar=*)_mpv_s '--osd-bar=yes --osd-bar=no' "$cur"; return;;
--sub-filter-sdh-harder=*)_mpv_s '--sub-filter-sdh-harder=yes --sub-filter-sdh-harder=no' "$cur"; return;;
--gapless-audio=*)_mpv_s '--gapless-audio=weak --gapless-audio=no --gapless-audio=yes' "$cur"; return;;
--ontop-level=*)_mpv_s '--ontop-level=0 --ontop-level=window --ontop-level=system' "$cur"; return;;
--stretch-dvd-subs=*)_mpv_s '--stretch-dvd-subs=yes --stretch-dvd-subs=no' "$cur"; return;;
--hdr-tone-mapping=*)_mpv_s '--hdr-tone-mapping=hable --hdr-tone-mapping=clip --hdr-tone-mapping=reinhard --hdr-tone-mapping=gamma --hdr-tone-mapping=linear' "$cur"; return;;
--vd-lavc-skipframe=*)_mpv_s '--vd-lavc-skipframe=default --vd-lavc-skipframe=none --vd-lavc-skipframe=nonref --vd-lavc-skipframe=bidir --vd-lavc-skipframe=nonkey --vd-lavc-skipframe=all' "$cur"; return;;
--jack-connect=*)_mpv_s '--jack-connect=yes --jack-connect=no' "$cur"; return;;
--term-osd-bar=*)_mpv_s '--term-osd-bar=yes --term-osd-bar=no' "$cur"; return;;
--input-default-bindings=*)_mpv_s '--input-default-bindings=yes --input-default-bindings=no' "$cur"; return;;
--demuxer-lavf-hacks=*)_mpv_s '--demuxer-lavf-hacks=yes --demuxer-lavf-hacks=no' "$cur"; return;;
--tv-forceaudio=*)_mpv_s '--tv-forceaudio=yes --tv-forceaudio=no' "$cur"; return;;
--load-scripts=*)_mpv_s '--load-scripts=yes --load-scripts=no' "$cur"; return;;
--initial-audio-sync=*)_mpv_s '--initial-audio-sync=yes --initial-audio-sync=no' "$cur"; return;;
--oharddup=*)_mpv_s '--oharddup=yes --oharddup=no' "$cur"; return;;
--sid=*)_mpv_s '--sid=0 --sid=auto --sid=no' "$cur"; return;;
--vo-wayland-rgb565=*)_mpv_s '--vo-wayland-rgb565=yes --vo-wayland-rgb565=no' "$cur"; return;;
--dither=*)_mpv_s '--dither=fruit --dither=ordered --dither=no' "$cur"; return;;
--input-vo-keyboard=*)_mpv_s '--input-vo-keyboard=yes --input-vo-keyboard=no' "$cur"; return;;
--sub-ass=*)_mpv_s '--sub-ass=yes --sub-ass=no' "$cur"; return;;
--vid=*)_mpv_s '--vid=0 --vid=auto --vid=no' "$cur"; return;;
--save-position-on-quit=*)_mpv_s '--save-position-on-quit=yes --save-position-on-quit=no' "$cur"; return;;
--scaler-resizes-only=*)_mpv_s '--scaler-resizes-only=yes --scaler-resizes-only=no' "$cur"; return;;
--tv-scan-autostart=*)_mpv_s '--tv-scan-autostart=yes --tv-scan-autostart=no' "$cur"; return;;
--deinterlace=*)_mpv_s '--deinterlace=auto --deinterlace=no --deinterlace=yes' "$cur"; return;;
--sigmoid-upscaling=*)_mpv_s '--sigmoid-upscaling=yes --sigmoid-upscaling=no' "$cur"; return;;
--cdda-skip=*)_mpv_s '--cdda-skip=yes --cdda-skip=no' "$cur"; return;;
--audio-spdif=*)_mpv_s '--audio-spdif=ac3 --audio-spdif=dts-hd --audio-spdif=dts' "$cur"; return;;
--ad-lavc-downmix=*)_mpv_s '--ad-lavc-downmix=yes --ad-lavc-downmix=no' "$cur"; return;;
--hr-seek-framedrop=*)_mpv_s '--hr-seek-framedrop=yes --hr-seek-framedrop=no' "$cur"; return;;
--cache-pause=*)_mpv_s '--cache-pause=yes --cache-pause=no' "$cur"; return;;
--untimed=*)_mpv_s '--untimed=yes --untimed=no' "$cur"; return;;
--screenshot-tag-colorspace=*)_mpv_s '--screenshot-tag-colorspace=yes --screenshot-tag-colorspace=no' "$cur"; return;;
--shuffle=*)_mpv_s '--shuffle=yes --shuffle=no' "$cur"; return;;
--force-seekable=*)_mpv_s '--force-seekable=yes --force-seekable=no' "$cur"; return;;
--target-prim=*)_mpv_s '--target-prim=auto --target-prim=bt.601-525 --target-prim=bt.601-625 --target-prim=bt.709 --target-prim=bt.2020 --target-prim=bt.470m --target-prim=apple --target-prim=adobe --target-prim=prophoto --target-prim=cie1931 --target-prim=dci-p3 --target-prim=v-gamut' "$cur"; return;;
--opengl-rectangle-textures=*)_mpv_s '--opengl-rectangle-textures=yes --opengl-rectangle-textures=no' "$cur"; return;;
--fit-border=*)_mpv_s '--fit-border=yes --fit-border=no' "$cur"; return;;
--input-right-alt-gr=*)_mpv_s '--input-right-alt-gr=yes --input-right-alt-gr=no' "$cur"; return;;
--vo-vaapi-scaling=*)_mpv_s '--vo-vaapi-scaling=default --vo-vaapi-scaling=fast --vo-vaapi-scaling=hq --vo-vaapi-scaling=nla' "$cur"; return;;
--pause=*)_mpv_s '--pause=yes --pause=no' "$cur"; return;;
--snap-window=*)_mpv_s '--snap-window=yes --snap-window=no' "$cur"; return;;
--framedrop=*)_mpv_s '--framedrop=vo --framedrop=no --framedrop=decoder --framedrop=decoder+vo' "$cur"; return;;
--list-properties=*)_mpv_s '--list-properties=yes --list-properties=no' "$cur"; return;;
--opengl-glfinish=*)_mpv_s '--opengl-glfinish=yes --opengl-glfinish=no' "$cur"; return;;
--vd-lavc-framedrop=*)_mpv_s '--vd-lavc-framedrop=nonref --vd-lavc-framedrop=none --vd-lavc-framedrop=default --vd-lavc-framedrop=bidir --vd-lavc-framedrop=nonkey --vd-lavc-framedrop=all' "$cur"; return;;
--video-rotate=*)_mpv_s '--video-rotate=0 --video-rotate=no' "$cur"; return;;
--ometadata=*)_mpv_s '--ometadata=yes --ometadata=no' "$cur"; return;;
--temporal-dither=*)_mpv_s '--temporal-dither=yes --temporal-dither=no' "$cur"; return;;
--ignore-path-in-watch-later-config=*)_mpv_s '--ignore-path-in-watch-later-config=yes --ignore-path-in-watch-later-config=no' "$cur"; return;;
--border=*)_mpv_s '--border=yes --border=no' "$cur"; return;;
--use-filedir-conf=*)_mpv_s '--use-filedir-conf=yes --use-filedir-conf=no' "$cur"; return;;
--autoload-files=*)_mpv_s '--autoload-files=yes --autoload-files=no' "$cur"; return;;
--ao-null-untimed=*)_mpv_s '--ao-null-untimed=yes --ao-null-untimed=no' "$cur"; return;;
--stretch-image-subs-to-screen=*)_mpv_s '--stretch-image-subs-to-screen=yes --stretch-image-subs-to-screen=no' "$cur"; return;;
--xv-ck=*)_mpv_s '--xv-ck=cur --xv-ck=use --xv-ck=set' "$cur"; return;;
--sub-ass-force-margins=*)_mpv_s '--sub-ass-force-margins=yes --sub-ass-force-margins=no' "$cur"; return;;
--player-operation-mode=*)_mpv_s '--player-operation-mode=cplayer --player-operation-mode=pseudo-gui' "$cur"; return;;
--demuxer-lavf-allow-mimetype=*)_mpv_s '--demuxer-lavf-allow-mimetype=yes --demuxer-lavf-allow-mimetype=no' "$cur"; return;;
--stop-playback-on-init-failure=*)_mpv_s '--stop-playback-on-init-failure=yes --stop-playback-on-init-failure=no' "$cur"; return;;
--sub-ass-vsfilter-blur-compat=*)_mpv_s '--sub-ass-vsfilter-blur-compat=yes --sub-ass-vsfilter-blur-compat=no' "$cur"; return;;
--ovfirst=*)_mpv_s '--ovfirst=yes --ovfirst=no' "$cur"; return;;
--tv-immediatemode=*)_mpv_s '--tv-immediatemode=yes --tv-immediatemode=no' "$cur"; return;;
--cursor-autohide=*)_mpv_s '--cursor-autohide=0 --cursor-autohide=1000 --cursor-autohide=no --cursor-autohide=always' "$cur"; return;;
--vo-vaapi-scaled-osd=*)_mpv_s '--vo-vaapi-scaled-osd=yes --vo-vaapi-scaled-osd=no' "$cur"; return;;
--correct-downscaling=*)_mpv_s '--correct-downscaling=yes --correct-downscaling=no' "$cur"; return;;
--fs-screen=*)_mpv_s '--fs-screen=0 --fs-screen=current --fs-screen=all' "$cur"; return;;
--idle=*)_mpv_s '--idle=no --idle=once --idle=yes' "$cur"; return;;
--alsa-non-interleaved=*)_mpv_s '--alsa-non-interleaved=yes --alsa-non-interleaved=no' "$cur"; return;;
--icc-profile-auto=*)_mpv_s '--icc-profile-auto=yes --icc-profile-auto=no' "$cur"; return;;
--access-references=*)_mpv_s '--access-references=yes --access-references=no' "$cur"; return;;
--force-rgba-osd-rendering=*)_mpv_s '--force-rgba-osd-rendering=yes --force-rgba-osd-rendering=no' "$cur"; return;;
--sub-italic=*)_mpv_s '--sub-italic=yes --sub-italic=no' "$cur"; return;;
--msg-time=*)_mpv_s '--msg-time=yes --msg-time=no' "$cur"; return;;
--pulse-buffer=*)_mpv_s '--pulse-buffer=1 --pulse-buffer=250 --pulse-buffer=native' "$cur"; return;;
--sub-ass-vsfilter-color-compat=*)_mpv_s '--sub-ass-vsfilter-color-compat=basic --sub-ass-vsfilter-color-compat=no --sub-ass-vsfilter-color-compat=full --sub-ass-vsfilter-color-compat=force-601' "$cur"; return;;
--sub-scale-by-window=*)_mpv_s '--sub-scale-by-window=yes --sub-scale-by-window=no' "$cur"; return;;
--cache-default=*)_mpv_s '--cache-default=32 --cache-default=75000 --cache-default=no' "$cur"; return;;
--keepaspect-window=*)_mpv_s '--keepaspect-window=yes --keepaspect-window=no' "$cur"; return;;
--field-dominance=*)_mpv_s '--field-dominance=auto --field-dominance=top --field-dominance=bottom' "$cur"; return;;
--list-options=*)_mpv_s '--list-options=yes --list-options=no' "$cur"; return;;
--sub-scale-with-window=*)_mpv_s '--sub-scale-with-window=yes --sub-scale-with-window=no' "$cur"; return;;
--vd-lavc-skiploopfilter=*)_mpv_s '--vd-lavc-skiploopfilter=default --vd-lavc-skiploopfilter=none --vd-lavc-skiploopfilter=nonref --vd-lavc-skiploopfilter=bidir --vd-lavc-skiploopfilter=nonkey --vd-lavc-skiploopfilter=all' "$cur"; return;;
--demuxer-rawaudio-format=*)_mpv_s '--demuxer-rawaudio-format=s16le --demuxer-rawaudio-format=u8 --demuxer-rawaudio-format=s8 --demuxer-rawaudio-format=u16le --demuxer-rawaudio-format=u16be --demuxer-rawaudio-format=s16be --demuxer-rawaudio-format=u24le --demuxer-rawaudio-format=u24be --demuxer-rawaudio-format=s24le --demuxer-rawaudio-format=s24be --demuxer-rawaudio-format=u32le --demuxer-rawaudio-format=u32be --demuxer-rawaudio-format=s32le --demuxer-rawaudio-format=s32be --demuxer-rawaudio-format=floatle --demuxer-rawaudio-format=floatbe --demuxer-rawaudio-format=doublele --demuxer-rawaudio-format=doublebe --demuxer-rawaudio-format=u16 --demuxer-rawaudio-format=s16 --demuxer-rawaudio-format=u24 --demuxer-rawaudio-format=s24 --demuxer-rawaudio-format=u32 --demuxer-rawaudio-format=s32 --demuxer-rawaudio-format=float --demuxer-rawaudio-format=double' "$cur"; return;;
--vd-lavc-skipidct=*)_mpv_s '--vd-lavc-skipidct=default --vd-lavc-skipidct=none --vd-lavc-skipidct=nonref --vd-lavc-skipidct=bidir --vd-lavc-skipidct=nonkey --vd-lavc-skipidct=all' "$cur"; return;;
--sub-visibility=*)_mpv_s '--sub-visibility=yes --sub-visibility=no' "$cur"; return;;
--sub-ass-justify=*)_mpv_s '--sub-ass-justify=yes --sub-ass-justify=no' "$cur"; return;;
--ff-vid=*)_mpv_s '--ff-vid=0 --ff-vid=auto --ff-vid=no' "$cur"; return;;
--opengl-waitvsync=*)_mpv_s '--opengl-waitvsync=yes --opengl-waitvsync=no' "$cur"; return;;
--ao-null-broken-eof=*)_mpv_s '--ao-null-broken-eof=yes --ao-null-broken-eof=no' "$cur"; return;;
--terminal=*)_mpv_s '--terminal=yes --terminal=no' "$cur"; return;;
--ao-null-broken-delay=*)_mpv_s '--ao-null-broken-delay=yes --ao-null-broken-delay=no' "$cur"; return;;
--sub-ass-scale-with-window=*)_mpv_s '--sub-ass-scale-with-window=yes --sub-ass-scale-with-window=no' "$cur"; return;;
--tv-alsa=*)_mpv_s '--tv-alsa=yes --tv-alsa=no' "$cur"; return;;
--ff-sid=*)_mpv_s '--ff-sid=0 --ff-sid=auto --ff-sid=no' "$cur"; return;;
--rtsp-transport=*)_mpv_s '--rtsp-transport=tcp --rtsp-transport=lavf --rtsp-transport=udp --rtsp-transport=http' "$cur"; return;;
--cdda-cdtext=*)_mpv_s '--cdda-cdtext=yes --cdda-cdtext=no' "$cur"; return;;
--deband=*)_mpv_s '--deband=yes --deband=no' "$cur"; return;;
--tv-audio=*)_mpv_s '--tv-audio=yes --tv-audio=no' "$cur"; return;;
--demuxer-mkv-probe-video-duration=*)_mpv_s '--demuxer-mkv-probe-video-duration=no --demuxer-mkv-probe-video-duration=yes --demuxer-mkv-probe-video-duration=full' "$cur"; return;;
--cache=*)_mpv_s '--cache=32 --cache=auto --cache=no --cache=yes' "$cur"; return;;
--oafirst=*)_mpv_s '--oafirst=yes --oafirst=no' "$cur"; return;;
--config=*)_mpv_s '--config=yes --config=no' "$cur"; return;;
--jack-std-channel-layout=*)_mpv_s '--jack-std-channel-layout=waveext --jack-std-channel-layout=any' "$cur"; return;;
--vd-lavc-bitexact=*)_mpv_s '--vd-lavc-bitexact=yes --vd-lavc-bitexact=no' "$cur"; return;;
--vo-vdpau-chroma-deint=*)_mpv_s '--vo-vdpau-chroma-deint=yes --vo-vdpau-chroma-deint=no' "$cur"; return;;
--sub-bold=*)_mpv_s '--sub-bold=yes --sub-bold=no' "$cur"; return;;
--vo-vdpau-force-yuv=*)_mpv_s '--vo-vdpau-force-yuv=yes --vo-vdpau-force-yuv=no' "$cur"; return;;
--edition=*)_mpv_s '--edition=0 --edition=auto' "$cur"; return;;
--opengl-es=*)_mpv_s '--opengl-es=auto --opengl-es=no --opengl-es=yes --opengl-es=force2' "$cur"; return;;
--vd-lavc-check-hw-profile=*)_mpv_s '--vd-lavc-check-hw-profile=yes --vd-lavc-check-hw-profile=no' "$cur"; return;;
--vd-lavc-fast=*)_mpv_s '--vd-lavc-fast=yes --vd-lavc-fast=no' "$cur"; return;;
--sub-fix-timing=*)_mpv_s '--sub-fix-timing=yes --sub-fix-timing=no' "$cur"; return;;
--vd-lavc-show-all=*)_mpv_s '--vd-lavc-show-all=yes --vd-lavc-show-all=no' "$cur"; return;;
--cookies=*)_mpv_s '--cookies=yes --cookies=no' "$cur"; return;;
--audio-pitch-correction=*)_mpv_s '--audio-pitch-correction=yes --audio-pitch-correction=no' "$cur"; return;;
--opengl-sw=*)_mpv_s '--opengl-sw=yes --opengl-sw=no' "$cur"; return;;
--vo-wayland-alpha=*)_mpv_s '--vo-wayland-alpha=yes --vo-wayland-alpha=no' "$cur"; return;;
--osc=*)_mpv_s '--osc=yes --osc=no' "$cur"; return;;
--video-osd=*)_mpv_s '--video-osd=yes --video-osd=no' "$cur"; return;;
--vo-image-jpeg-source-chroma=*)_mpv_s '--vo-image-jpeg-source-chroma=yes --vo-image-jpeg-source-chroma=no' "$cur"; return;;
--target-trc=*)_mpv_s '--target-trc=auto --target-trc=bt.1886 --target-trc=srgb --target-trc=linear --target-trc=gamma1.8 --target-trc=gamma2.2 --target-trc=gamma2.8 --target-trc=prophoto --target-trc=st2084 --target-trc=std-b67 --target-trc=v-log' "$cur"; return;;
--dvbin-full-transponder=*)_mpv_s '--dvbin-full-transponder=yes --dvbin-full-transponder=no' "$cur"; return;;
--sub-forced-only=*)_mpv_s '--sub-forced-only=yes --sub-forced-only=no' "$cur"; return;;
--keep-open=*)_mpv_s '--keep-open=no --keep-open=yes --keep-open=always' "$cur"; return;;
--playlist-start=*)_mpv_s '--playlist-start=0 --playlist-start=auto --playlist-start=no' "$cur"; return;;
--vo-tct-256=*)_mpv_s '--vo-tct-256=yes --vo-tct-256=no' "$cur"; return;;
--loop-playlist=*)_mpv_s '--loop-playlist=1 --loop-playlist=no --loop-playlist=inf --loop-playlist=yes --loop-playlist=force' "$cur"; return;;
--window-dragging=*)_mpv_s '--window-dragging=yes --window-dragging=no' "$cur"; return;;
--tls-verify=*)_mpv_s '--tls-verify=yes --tls-verify=no' "$cur"; return;;
--oneverdrop=*)_mpv_s '--oneverdrop=yes --oneverdrop=no' "$cur"; return;;
--sub-ass-style-override=*)_mpv_s '--sub-ass-style-override=yes --sub-ass-style-override=no --sub-ass-style-override=force --sub-ass-style-override=signfs --sub-ass-style-override=strip' "$cur"; return;;
--sub-clear-on-seek=*)_mpv_s '--sub-clear-on-seek=yes --sub-clear-on-seek=no' "$cur"; return;;
--input-terminal=*)_mpv_s '--input-terminal=yes --input-terminal=no' "$cur"; return;;
--interpolation=*)_mpv_s '--interpolation=yes --interpolation=no' "$cur"; return;;
--image-subs-video-resolution=*)_mpv_s '--image-subs-video-resolution=yes --image-subs-video-resolution=no' "$cur"; return;;
--xv-ck-method=*)_mpv_s '--xv-ck-method=man --xv-ck-method=none --xv-ck-method=bg --xv-ck-method=auto' "$cur"; return;;
--orawts=*)_mpv_s '--orawts=yes --orawts=no' "$cur"; return;;
--osd-fractions=*)_mpv_s '--osd-fractions=yes --osd-fractions=no' "$cur"; return;;
--ytdl=*)_mpv_s '--ytdl=yes --ytdl=no' "$cur"; return;;
--video-stereo-mode=*)_mpv_s '--video-stereo-mode=mono --video-stereo-mode=no --video-stereo-mode=sbs2l --video-stereo-mode=ab2r --video-stereo-mode=ab2l --video-stereo-mode=checkr --video-stereo-mode=checkl --video-stereo-mode=irr --video-stereo-mode=irl --video-stereo-mode=icr --video-stereo-mode=icl --video-stereo-mode=arcc --video-stereo-mode=sbs2r --video-stereo-mode=agmc --video-stereo-mode=al --video-stereo-mode=ar' "$cur"; return;;
--embeddedfonts=*)_mpv_s '--embeddedfonts=yes --embeddedfonts=no' "$cur"; return;;
--video-output-levels=*)_mpv_s '--video-output-levels=auto --video-output-levels=limited --video-output-levels=full' "$cur"; return;;
--opengl-pbo=*)_mpv_s '--opengl-pbo=yes --opengl-pbo=no' "$cur"; return;;
--ff-aid=*)_mpv_s '--ff-aid=0 --ff-aid=auto --ff-aid=no' "$cur"; return;;
--msg-color=*)_mpv_s '--msg-color=yes --msg-color=no' "$cur"; return;;
--load-unsafe-playlists=*)_mpv_s '--load-unsafe-playlists=yes --load-unsafe-playlists=no' "$cur"; return;;
--pulse-latency-hacks=*)_mpv_s '--pulse-latency-hacks=yes --pulse-latency-hacks=no' "$cur"; return;;
--fullscreen=*)_mpv_s '--fullscreen=yes --fullscreen=no' "$cur"; return;;
--linear-scaling=*)_mpv_s '--linear-scaling=yes --linear-scaling=no' "$cur"; return;;
--quiet=*)_mpv_s '--quiet=yes --quiet=no' "$cur"; return;;
--dither-depth=*)_mpv_s '--dither-depth=-1 --dither-depth=no --dither-depth=auto' "$cur"; return;;
--ao-pcm-waveheader=*)_mpv_s '--ao-pcm-waveheader=yes --ao-pcm-waveheader=no' "$cur"; return;;
--x11-netwm=*)_mpv_s '--x11-netwm=auto --x11-netwm=no --x11-netwm=yes' "$cur"; return;;
--keep-open-pause=*)_mpv_s '--keep-open-pause=yes --keep-open-pause=no' "$cur"; return;;
--osd-align-x=*)_mpv_s '--osd-align-x=left --osd-align-x=center --osd-align-x=right' "$cur"; return;;
--sub-auto=*)_mpv_s '--sub-auto=exact --sub-auto=no --sub-auto=fuzzy --sub-auto=all' "$cur"; return;;
--ordered-chapters=*)_mpv_s '--ordered-chapters=yes --ordered-chapters=no' "$cur"; return;;
--screenshot-jpeg-source-chroma=*)_mpv_s '--screenshot-jpeg-source-chroma=yes --screenshot-jpeg-source-chroma=no' "$cur"; return;;
--taskbar-progress=*)_mpv_s '--taskbar-progress=yes --taskbar-progress=no' "$cur"; return;;
--audio-normalize-downmix=*)_mpv_s '--audio-normalize-downmix=yes --audio-normalize-downmix=no' "$cur"; return;;
--sub-justify=*)_mpv_s '--sub-justify=auto --sub-justify=left --sub-justify=center --sub-justify=right' "$cur"; return;;
--hwdec=*)_mpv_s '--hwdec=no --hwdec=auto --hwdec=yes --hwdec=auto-copy --hwdec=vdpau --hwdec=vdpau-copy --hwdec=videotoolbox --hwdec=videotoolbox-copy --hwdec=vaapi --hwdec=vaapi-copy --hwdec=dxva2 --hwdec=dxva2-copy --hwdec=d3d11va --hwdec=d3d11va-copy --hwdec=rpi --hwdec=rpi-copy --hwdec=mediacodec --hwdec=cuda --hwdec=cuda-copy --hwdec=crystalhd' "$cur"; return;;
--sub-ass-shaper=*)_mpv_s '--sub-ass-shaper=complex --sub-ass-shaper=simple' "$cur"; return;;
--alsa-resample=*)_mpv_s '--alsa-resample=yes --alsa-resample=no' "$cur"; return;;
--sub-ass-vsfilter-aspect-compat=*)_mpv_s '--sub-ass-vsfilter-aspect-compat=yes --sub-ass-vsfilter-aspect-compat=no' "$cur"; return;;
--force-window-position=*)_mpv_s '--force-window-position=yes --force-window-position=no' "$cur"; return;;
--sub-align-x=*)_mpv_s '--sub-align-x=center --sub-align-x=left --sub-align-x=right' "$cur"; return;;
--screenshot-high-bit-depth=*)_mpv_s '--screenshot-high-bit-depth=yes --screenshot-high-bit-depth=no' "$cur"; return;;
--aid=*)_mpv_s '--aid=0 --aid=auto --aid=no' "$cur"; return;;
--frames=*)_mpv_s '--frames=0 --frames=all' "$cur"; return;;
--demuxer-thread=*)_mpv_s '--demuxer-thread=yes --demuxer-thread=no' "$cur"; return;;
--native-keyrepeat=*)_mpv_s '--native-keyrepeat=yes --native-keyrepeat=no' "$cur"; return;;
--demuxer-mkv-subtitle-preroll=*)_mpv_s '--demuxer-mkv-subtitle-preroll=index --demuxer-mkv-subtitle-preroll=no --demuxer-mkv-subtitle-preroll=yes' "$cur"; return;;
--correct-pts=*)_mpv_s '--correct-pts=yes --correct-pts=no' "$cur"; return;;
--ao-pcm-append=*)_mpv_s '--ao-pcm-append=yes --ao-pcm-append=no' "$cur"; return;;
--alpha=*)_mpv_s '--alpha=blend-tiles --alpha=no --alpha=yes --alpha=blend' "$cur"; return;;
--tv-mjpeg=*)_mpv_s '--tv-mjpeg=yes --tv-mjpeg=no' "$cur"; return;;
--x11-bypass-compositor=*)_mpv_s '--x11-bypass-compositor=fs-only --x11-bypass-compositor=no --x11-bypass-compositor=yes --x11-bypass-compositor=never' "$cur"; return;;
--demuxer-lavf-genpts-mode=*)_mpv_s '--demuxer-lavf-genpts-mode=no --demuxer-lavf-genpts-mode=lavf' "$cur"; return;;
--osd-align-y=*)_mpv_s '--osd-align-y=top --osd-align-y=center --osd-align-y=bottom' "$cur"; return;;
--ocopyts=*)_mpv_s '--ocopyts=yes --ocopyts=no' "$cur"; return;;
--audio-file-auto=*)_mpv_s '--audio-file-auto=no --audio-file-auto=exact --audio-file-auto=fuzzy --audio-file-auto=all' "$cur"; return;;
--blend-subtitles=*)_mpv_s '--blend-subtitles=no --blend-subtitles=yes --blend-subtitles=video' "$cur"; return;;
--v=*)_mpv_s '--v=yes --v=no' "$cur"; return;;
--write-filename-in-watch-later-config=*)_mpv_s '--write-filename-in-watch-later-config=yes --write-filename-in-watch-later-config=no' "$cur"; return;;
--sws-scaler=*)_mpv_s '--sws-scaler=bicubic --sws-scaler=fast-bilinear --sws-scaler=bilinear --sws-scaler=x --sws-scaler=point --sws-scaler=area --sws-scaler=bicublin --sws-scaler=gauss --sws-scaler=sinc --sws-scaler=lanczos --sws-scaler=spline' "$cur"; return;;
--keepaspect=*)_mpv_s '--keepaspect=yes --keepaspect=no' "$cur"; return;;
--screenshot-format=*)_mpv_s '--screenshot-format=jpg --screenshot-format=jpeg --screenshot-format=png' "$cur"; return;;
--ontop=*)_mpv_s '--ontop=yes --ontop=no' "$cur"; return;;
--audio-stream-silence=*)_mpv_s '--audio-stream-silence=yes --audio-stream-silence=no' "$cur"; return;;
--cscale-clamp=*)_mpv_s '--cscale-clamp=yes --cscale-clamp=no' "$cur"; return;;
--mute=*)_mpv_s '--mute=no --mute=auto --mute=yes' "$cur"; return;;
--vd-lavc-software-fallback=*)_mpv_s '--vd-lavc-software-fallback=1 --vd-lavc-software-fallback=3 --vd-lavc-software-fallback=no --vd-lavc-software-fallback=yes' "$cur"; return;;
--dscale-clamp=*)_mpv_s '--dscale-clamp=yes --dscale-clamp=no' "$cur"; return;;
--screen=*)_mpv_s '--screen=0 --screen=default' "$cur"; return;;
--hls-bitrate=*)_mpv_s '--hls-bitrate=0 --hls-bitrate=max --hls-bitrate=no --hls-bitrate=min' "$cur"; return;;
--video-aspect-method=*)_mpv_s '--video-aspect-method=hybrid --video-aspect-method=bitstream --video-aspect-method=container' "$cur"; return;;
--vo-image-high-bit-depth=*)_mpv_s '--vo-image-high-bit-depth=yes --vo-image-high-bit-depth=no' "$cur"; return;;
--really-quiet=*)_mpv_s '--really-quiet=yes --really-quiet=no' "$cur"; return;;
--scale-clamp=*)_mpv_s '--scale-clamp=yes --scale-clamp=no' "$cur"; return;;
--term-osd=*)_mpv_s '--term-osd=auto --term-osd=force --term-osd=no' "$cur"; return;;
--secondary-sid=*)_mpv_s '--secondary-sid=0 --secondary-sid=no --secondary-sid=auto' "$cur"; return;;
--sub-align-y=*)_mpv_s '--sub-align-y=bottom --sub-align-y=top --sub-align-y=center' "$cur"; return;;
--rebase-start-time=*)_mpv_s '--rebase-start-time=yes --rebase-start-time=no' "$cur"; return;;
--cursor-autohide-fs-only=*)_mpv_s '--cursor-autohide-fs-only=yes --cursor-autohide-fs-only=no' "$cur"; return;;
--opengl-fbo-format=*)_mpv_s '--opengl-fbo-format=auto --opengl-fbo-format=rgb8 --opengl-fbo-format=rgba8 --opengl-fbo-format=rgb10 --opengl-fbo-format=rgb10_a2 --opengl-fbo-format=rgb16 --opengl-fbo-format=rgb16f --opengl-fbo-format=rgb32f --opengl-fbo-format=rgba12 --opengl-fbo-format=rgba16 --opengl-fbo-format=rgba16f --opengl-fbo-format=rgba32f' "$cur"; return;;
--video-unscaled=*)_mpv_s '--video-unscaled=no --video-unscaled=yes --video-unscaled=downscale-big' "$cur"; return;;
--audio-display=*)_mpv_s '--audio-display=attachment --audio-display=no' "$cur"; return;;
--opengl-early-flush=*)_mpv_s '--opengl-early-flush=auto --opengl-early-flush=no --opengl-early-flush=yes' "$cur"; return;;
--autosync=*)_mpv_s '--autosync=0 --autosync=no' "$cur"; return;;
--index=*)_mpv_s '--index=default --index=recreate' "$cur"; return;;
--vo-tct-algo=*)_mpv_s '--vo-tct-algo=half-blocks --vo-tct-algo=plain' "$cur"; return;;
esac; fi
if [[ -n $prev && ( $cur =~ , || $cur =~ : ) ]]; then case "$prev" in
--vo)_mpv_s "$(_mpv_objarg "$prev" "$cur" opengl vdpau wayland xv vaapi x11 null image tct caca drm)" "$cur";return;;
--vf-add)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--vf-defaults)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--vf-del)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--ao)_mpv_s "$(_mpv_objarg "$prev" "$cur" pulse alsa oss jack null pcm)" "$cur";return;;
--af-set)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
--af-del)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
--af-clr)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
--af-add)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
--af-toggle)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
--vf-toggle)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--vf-clr)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--vf-pre)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--vf)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--af)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
--af-defaults)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
--vf-set)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi lavfi-bridge rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--af-pre)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan lavcac3enc lavrresample scaletempo lavfi lavfi-bridge)" "$cur";return;;
esac; fi
if [[ -n $prev ]]; then case "$prev" in
--input-conf|--input-ipc-server|--cookies-file|--audio-file|--cache-file|--opengl-shaders|--chapters-file|--input-file|--ao-pcm-file|--script|--stream-dump|--tls-key-file|--o|--icc-profile|--tls-cert-file|--tls-ca-file|--sub-file|--sub-ass-styles|--record-file|--dvbin-file|--playlist|--ordered-chapters-files|--include|--external-file|--bluray-device|--cdrom-device|--log-file)_filedir;return;;
--profile)_mpv_s "$(_mpv_profiles)" "$cur";return;;
--drm-connector)_mpv_s "$(_mpv_drm_connectors)" "$cur";return;;
--vo-image-outdir|--config-dir|--screenshot-directory|--watch-later-directory|--icc-cache-dir)_filedir -d;return;;
--demuxer-lavf-probesize)_mpv_s '0 2147483647 32' "$cur"; return;;
--dvbin-card)_mpv_s '0 1 4' "$cur"; return;;
--demuxer-lavf-cryptokey)_mpv_s '' "$cur"; return;;
--vo-vdpau-sharpen)_mpv_s '-1 0 1' "$cur"; return;;
--opengl-tex-pad-y)_mpv_s '0 4096' "$cur"; return;;
--ao)_mpv_s 'alsa jack null oss pcm pulse' "$cur"; return;;
--tscale-taper)_mpv_s '0 1' "$cur"; return;;
--oacopts*)_mpv_s '' "$cur"; return;;
--cdda-toc-offset)_mpv_s '0' "$cur"; return;;
--audio-file-paths)_mpv_s '' "$cur"; return;;
--opengl-hwdec-interop)_mpv_s '(other auto vaapi-egl vaapi-glx vdpau-glx' "$cur"; return;;
--deband-range)_mpv_s '1 16 64' "$cur"; return;;
--scaler-lut-size)_mpv_s '10 4 6' "$cur"; return;;
--dscale-taper)_mpv_s '0 1' "$cur"; return;;
--cscale-wparam)_mpv_s 'nan' "$cur"; return;;
--audio-format)_mpv_s '' "$cur"; return;;
--af-add)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--xv-adaptor)_mpv_s '-1' "$cur"; return;;
--oac)_mpv_s 'aac ac3 ac3_fixed adpcm_adx adpcm_ima_qt adpcm_ima_wav adpcm_ms adpcm_swf adpcm_yamaha alac comfortnoise dca eac3 flac g722 g723_1 g726 libfdk_aac libgsm libgsm_ms libmp3lame libopus libspeex libtwolame libvorbis mlp mp2 mp2fixed nellymoser pcm_alaw pcm_f32be pcm_f32le pcm_f64be pcm_f64le pcm_mulaw pcm_s16be pcm_s16be_planar pcm_s16le pcm_s16le_planar pcm_s24be pcm_s24daud pcm_s24le pcm_s24le_planar pcm_s32be pcm_s32le pcm_s32le_planar pcm_s64be pcm_s64le pcm_s8 pcm_s8_planar pcm_u16be pcm_u16le pcm_u24be pcm_u24le pcm_u32be pcm_u32le pcm_u8 real_144 roq_dpcm s302m sonic sonicls truehd tta vorbis wavpack wmav1 wmav2' "$cur"; return;;
--panscan)_mpv_s '0 1' "$cur"; return;;
--ad-lavc-threads)_mpv_s '0 1 16' "$cur"; return;;
--interpolation-threshold)_mpv_s '0.0001' "$cur"; return;;
--scale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--demuxer-rawvideo-mp-format)_mpv_s '0bgr 0rgb abgr argb ayuv64 ayuv64be bayer bggr16 bggr16be bggr8 bgr0 bgr24 bgr4 bgr444 bgr444be bgr48 bgr48be bgr555 bgr555be bgr565 bgr565be bgr8 bgra bgra64 bgra64be byte cuda d3d11 d3d11va dxva2 gbrap gbrap10 gbrap10be gbrap12 gbrap12be gbrap16 gbrap16be gbrg16 gbrg16be gbrg8 gbrp gbrp10 gbrp10be gbrp12 gbrp12be gbrp14 gbrp14be gbrp16 gbrp16be gbrp9 gbrp9be gray gray16 gray16be grbg16 grbg16be grbg8 h264 idct mediacodec mmal moco monob monow mpeg1 mpeg2 mpeg4 nv12 nv16 nv20 nv20be nv21 output p010 p010be pal8 qsv rgb rgb0 rgb24 rgb4 rgb444 rgb444be rgb48 rgb48be rgb555 rgb555be rgb565 rgb565be rgb8 rgba rgba64 rgba64be rggb16 rggb16be rggb8 uyvy422 uyyvyy411 vaapi vc1 vda vdpau videotoolbox vl vld wmv3 xvmcidct xvmcmc xyz12 xyz12be ya16 ya16be ya8 yuv410p yuv411p yuv420p yuv420p10 yuv420p10be yuv420p12 yuv420p12be yuv420p14 yuv420p14be yuv420p16 yuv420p16be yuv420p9 yuv420p9be yuv422p yuv422p10 yuv422p10be yuv422p12 yuv422p12be yuv422p14 yuv422p14be yuv422p16 yuv422p16be yuv422p9 yuv422p9be yuv440p yuv440p10 yuv440p10be yuv440p12 yuv440p12be yuv444p yuv444p10 yuv444p10be yuv444p12 yuv444p12be yuv444p14 yuv444p14be yuv444p16 yuv444p16be yuv444p9 yuv444p9be yuva420p yuva420p10 yuva420p10be yuva420p16 yuva420p16be yuva420p9 yuva420p9be yuva422p yuva422p10 yuva422p10be yuva422p16 yuva422p16be yuva422p9 yuva422p9be yuva444p yuva444p10 yuva444p10be yuva444p16 yuva444p16be yuva444p9 yuva444p9be yuvj411p yuyv422 yvyu422' "$cur"; return;;
--screenshot-jpeg-smooth)_mpv_s '0 100' "$cur"; return;;
--tv-treble)_mpv_s '-1 0 65535' "$cur"; return;;
--cscale-taper)_mpv_s '0 1' "$cur"; return;;
--wid)_mpv_s '-1' "$cur"; return;;
--dscale-blur)_mpv_s '0' "$cur"; return;;
--tv-scan-period)_mpv_s '0.1 0.5 2' "$cur"; return;;
--input-doubleclick-time)_mpv_s '0 1000 300' "$cur"; return;;
--dither-size-fruit)_mpv_s '2 6 8' "$cur"; return;;
--tv-automute)_mpv_s '0 255' "$cur"; return;;
--input-key-fifo-size)_mpv_s '2 65000 7' "$cur"; return;;
--sub-codepage)_mpv_s 'auto' "$cur"; return;;
--xv-port)_mpv_s '0' "$cur"; return;;
--demuxer-readahead-secs)_mpv_s '1' "$cur"; return;;
--video-zoom)_mpv_s '-20 0 20' "$cur"; return;;
--video-align-y)_mpv_s '-1 0 1' "$cur"; return;;
--dscale)_mpv_s 'bcspline bicubic bicubic_fast bilinear box catmull_rom ewa_ginseng ewa_hanning ewa_lanczos ewa_lanczossharp ewa_lanczossoft ewa_robidoux ewa_robidouxsharp gaussian ginseng haasnsoft jinc lanczos mitchell nearest oversample robidoux robidouxsharp sinc spline16 spline36 spline64 triangle' "$cur"; return;;
--vf-toggle)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--cache-initial)_mpv_s '0 2147483647' "$cur"; return;;
--vf-defaults)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--tv-outfmt)_mpv_s 'I420 UYVY YUY2 YV12 other' "$cur"; return;;
--tscale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--ao-null-channel-layouts)_mpv_s '' "$cur"; return;;
--vo-image-png-filter)_mpv_s '0 5' "$cur"; return;;
--video-pan-x)_mpv_s '-3 0 3' "$cur"; return;;
--scale-param1)_mpv_s 'nan' "$cur"; return;;
--volume)_mpv_s '-1 100 1000' "$cur"; return;;
--sub-gauss)_mpv_s '0 3' "$cur"; return;;
--tv-saturation)_mpv_s '-100 0 100' "$cur"; return;;
--cache-secs)_mpv_s '10' "$cur"; return;;
--scale-window)_mpv_s 'bartlett blackman box gaussian hamming hanning jinc kaiser quadric sinc sphinx triangle tukey welch' "$cur"; return;;
--demuxer-rawaudio-channels)_mpv_s 'stereo' "$cur"; return;;
--sub-font-size)_mpv_s '1 55 9000' "$cur"; return;;
--vo-image-png-compression)_mpv_s '0 7 9' "$cur"; return;;
--input-ar-rate)_mpv_s '40' "$cur"; return;;
--demuxer-mkv-subtitle-preroll-secs)_mpv_s '1' "$cur"; return;;
--monitorpixelaspect)_mpv_s '0.2 1 9' "$cur"; return;;
--demuxer-rawvideo-codec)_mpv_s '' "$cur"; return;;
--demuxer-rawvideo-format)_mpv_s 'I420 UYVY YUY2 YV12 other' "$cur"; return;;
--jack-port)_mpv_s '' "$cur"; return;;
--tv-normid)_mpv_s '-1' "$cur"; return;;
--sigmoid-slope)_mpv_s '1 20 6.5' "$cur"; return;;
--sub-ass-line-spacing)_mpv_s '-1000 0 1000' "$cur"; return;;
--icc-intent)_mpv_s '1' "$cur"; return;;
--vo-image-jpeg-smooth)_mpv_s '0 100' "$cur"; return;;
--tv-hue)_mpv_s '-100 0 100' "$cur"; return;;
--sub-spacing)_mpv_s '-10 0 10' "$cur"; return;;
--sub-margin-x)_mpv_s '0 25 300' "$cur"; return;;
--tv-forcechan)_mpv_s '-1 1 2' "$cur"; return;;
--vf-del)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--image-display-duration)_mpv_s '1' "$cur"; return;;
--ao-null-buffer)_mpv_s '0 0.2 100' "$cur"; return;;
--osd-border-size)_mpv_s '0 10 3' "$cur"; return;;
--osd-back-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--alsa-mixer-device)_mpv_s 'default' "$cur"; return;;
--audio-demuxer)_mpv_s 'cue demuxer: disc edl lavf mf mkv null playlist rar rawaudio rawvideo tv' "$cur"; return;;
--audio-samplerate)_mpv_s '0 1000 768000' "$cur"; return;;
--mc)_mpv_s '-1 0 100' "$cur"; return;;
--osd-blur)_mpv_s '0 20' "$cur"; return;;
--tv-channels)_mpv_s '' "$cur"; return;;
--cdda-speed)_mpv_s '0 1 100' "$cur"; return;;
--sub-speed)_mpv_s '1' "$cur"; return;;
--vo-vdpau-hqscaling)_mpv_s '0 9' "$cur"; return;;
--tscale-param1)_mpv_s 'nan' "$cur"; return;;
--xv-buffers)_mpv_s '1 10 2' "$cur"; return;;
--demuxer)_mpv_s 'cue demuxer: disc edl lavf mf mkv null playlist rar rawaudio rawvideo tv' "$cur"; return;;
--demuxer-rawaudio-rate)_mpv_s '1000 384000 44100' "$cur"; return;;
--lavfi-complex)_mpv_s '' "$cur"; return;;
--tv-brightness)_mpv_s '-100 0 100' "$cur"; return;;
--af-del)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--tv-gain)_mpv_s '-1 100' "$cur"; return;;
--vf-set)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--sub-back-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--tscale-wparam)_mpv_s 'nan' "$cur"; return;;
--vo-image-jpeg-quality)_mpv_s '0 100 90' "$cur"; return;;
--audio-device)_mpv_s 'auto' "$cur"; return;;
--scale-taper)_mpv_s '0 1' "$cur"; return;;
--osd-shadow-offset)_mpv_s '0 10' "$cur"; return;;
--osd-margin-x)_mpv_s '0 25 300' "$cur"; return;;
--opengl-shader-cache-dir)_mpv_s '' "$cur"; return;;
--vo)_mpv_s 'caca drm image null opengl tct vaapi vdpau wayland x11 xv' "$cur"; return;;
--af-set)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--tv-volume)_mpv_s '-1 0 65535' "$cur"; return;;
--video-align-x)_mpv_s '-1 0 1' "$cur"; return;;
--heartbeat-interval)_mpv_s '30' "$cur"; return;;
--osd-msg2)_mpv_s '' "$cur"; return;;
--cscale-param1)_mpv_s 'nan' "$cur"; return;;
--osd-bar-align-x)_mpv_s '-1 0 1' "$cur"; return;;
--screenshot-png-filter)_mpv_s '0 5' "$cur"; return;;
--sws-chs)_mpv_s '0' "$cur"; return;;
--sub-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--tv-balance)_mpv_s '-1 0 65535' "$cur"; return;;
--display-fps)_mpv_s '0' "$cur"; return;;
--vo-null-fps)_mpv_s '0 10000' "$cur"; return;;
--sub-margin-y)_mpv_s '0 22 600' "$cur"; return;;
--tv-bass)_mpv_s '-1 0 65535' "$cur"; return;;
--reset-on-next-file)_mpv_s '' "$cur"; return;;
--hwdec-codecs)_mpv_s 'h264,vc1,wmv3,hevc,mpeg2video,vp9' "$cur"; return;;
--term-osd-bar-chars)_mpv_s '[-+-]' "$cur"; return;;
--deband-iterations)_mpv_s '1 16' "$cur"; return;;
--opengl-backend)_mpv_s 'auto vdpauglx x11 x11egl x11probe' "$cur"; return;;
--ao-null-outburst)_mpv_s '1 100000 256' "$cur"; return;;
--sws-lgb)_mpv_s '0 100' "$cur"; return;;
--af-pre)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--vo-vdpau-queuetime-windowed)_mpv_s '50' "$cur"; return;;
--vo-vdpau-output-surfaces)_mpv_s '15 2 3' "$cur"; return;;
--cache-backbuffer)_mpv_s '0 2147483647 75000' "$cur"; return;;
--tv-amode)_mpv_s '-1 0 3' "$cur"; return;;
--ad)_mpv_s '8svx_exp 8svx_fib aac aac_fixed aac_latm ac3 ac3_fixed adpcm_4xm adpcm_adx adpcm_afc adpcm_aica adpcm_ct adpcm_dtk adpcm_ea adpcm_ea_maxis_xa adpcm_ea_r1 adpcm_ea_r2 adpcm_ea_r3 adpcm_ea_xas adpcm_ima_amv adpcm_ima_apc adpcm_ima_dat4 adpcm_ima_dk3 adpcm_ima_dk4 adpcm_ima_ea_eacs adpcm_ima_ea_sead adpcm_ima_iss adpcm_ima_oki adpcm_ima_qt adpcm_ima_rad adpcm_ima_smjpeg adpcm_ima_wav adpcm_ima_ws adpcm_ms adpcm_mtaf adpcm_psx adpcm_sbpro_2 adpcm_sbpro_3 adpcm_sbpro_4 adpcm_swf adpcm_thp adpcm_thp_le adpcm_vima adpcm_xa adpcm_yamaha alac als amrnb amrwb ape atrac1 atrac3 atrac3plus binkaudio_dct binkaudio_rdft bmv_audio comfortnoise cook dca dsd_lsbf dsd_lsbf_planar dsd_msbf dsd_msbf_planar dsicinaudio dss_sp dst dvaudio eac3 evrc flac g722 g723_1 g726 g726le g729 gsm gsm_ms iac imc interplay_dpcm interplayacm libcelt libfdk_aac libgsm libgsm_ms libopus libspeex libvorbis mace3 mace6 metasound mlp mp1 mp1float mp2 mp2float mp3 mp3adu mp3adufloat mp3float mp3on4 mp3on4float mpc7 mpc8 nellymoser on2avc opus paf_audio pcm_alaw pcm_bluray pcm_dvd pcm_f32be pcm_f32le pcm_f64be pcm_f64le pcm_lxf pcm_mulaw pcm_s16be pcm_s16be_planar pcm_s16le pcm_s16le_planar pcm_s24be pcm_s24daud pcm_s24le pcm_s24le_planar pcm_s32be pcm_s32le pcm_s32le_planar pcm_s64be pcm_s64le pcm_s8 pcm_s8_planar pcm_u16be pcm_u16le pcm_u24be pcm_u24le pcm_u32be pcm_u32le pcm_u8 pcm_zork qcelp qdm2 ralf real_144 real_288 roq_dpcm s302m sdx2_dpcm shorten sipr smackaud sol_dpcm sonic tak truehd truespeech tta twinvq vmdaudio vorbis wavesynth wavpack wmalossless wmapro wmav1 wmav2 wmavoice ws_snd1 xan_dpcm xma1 xma2' "$cur"; return;;
--contrast)_mpv_s '-100 0 100' "$cur"; return;;
--vd)_mpv_s '012v 4xm 8bps aasc aic alias_pix amv anm ansi apng asv1 asv2 aura aura2 avrn avrp avs avui ayuv bethsoftvid bfi binkvideo bintext bmp bmv_video brender_pix c93 camstudio camtasia cavs cdgraphics cdxl cfhd cinepak cljr cllc cpia cyuv dds dfa dirac dnxhd dpx dsicinvideo dvvideo dxa dxtory dxv eacmv eamad eatgq eatgv eatqi escape124 escape130 exr ffv1 ffvhuff fic flashsv flashsv2 flic flv fraps frwu g2m gif h261 h263 h263i h263p h264 hap hevc hnm4video hq_hqa hqx huffyuv idcinvideo idf iff indeo2 indeo3 indeo4 indeo5 interplayvideo jpeg2000 jpegls jv kgv1 kmvc lagarith libopenjpeg libschroedinger libvpx libvpx-vp9 loco m101 magicyuv mdec mimic mjpeg mjpegb mmvideo motionpixels mp-rawvideo mpeg1video mpeg2video mpeg4 mpegvideo msa1 msmpeg4 msmpeg4v1 msmpeg4v2 msrle mss1 mss2 msvideo1 mszh mts2 mvc1 mvc2 mxpeg nuv paf_video pam pbm pcx pgm pgmyuv pictor png ppm prores prores_lgpl ptx qdraw qpeg qtrle r10k r210 rawvideo rl2 roqvideo rpza rscc rv10 rv20 rv30 rv40 sanm screenpresso sgi sgirle sheervideo smackvid smc smvjpeg snow sp5x sunrast svq1 svq3 targa targa_y216 tdsc theora thp tiertexseqvideo tiff tmv truemotion1 truemotion2 truemotion2rt tscc2 txd ultimotion utvideo v210 v210x v308 v408 v410 vb vble vc1 vc1image vcr1 vmdvideo vmnc vp3 vp5 vp6 vp6a vp6f vp7 vp8 vp9 vqavideo webp wmv1 wmv2 wmv3 wmv3image wnv1 xan_wc3 xan_wc4 xbin xbm xface xl xwd y41p ylc yop yuv4 zerocodec zlib zmbv' "$cur"; return;;
--vf-clr)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--sigmoid-center)_mpv_s '0 0.75 1' "$cur"; return;;
--sub-border-size)_mpv_s '0 10 3' "$cur"; return;;
--cdda-span)_mpv_s 'j-k' "$cur"; return;;
--demuxer-max-bytes)_mpv_s '0 2147483647 419430400' "$cur"; return;;
--osd-bar-w)_mpv_s '1 100 75' "$cur"; return;;
--osd-margin-y)_mpv_s '0 22 600' "$cur"; return;;
--cdda-sector-size)_mpv_s '0 1 100' "$cur"; return;;
--deband-grain)_mpv_s '0 4096 48' "$cur"; return;;
--tv-norm)_mpv_s 'pal' "$cur"; return;;
--osd-playing-msg)_mpv_s '' "$cur"; return;;
--temporal-dither-period)_mpv_s '1 128' "$cur"; return;;
--demuxer-rawvideo-h)_mpv_s '1 720 8192' "$cur"; return;;
--vo-vdpau-queuetime-fs)_mpv_s '50' "$cur"; return;;
--ab-loop-b)_mpv_s '00:00:00' "$cur"; return;;
--hue)_mpv_s '-100 0 100' "$cur"; return;;
--sub-blur)_mpv_s '0 20' "$cur"; return;;
--end)_mpv_s '-60 50% 60' "$cur"; return;;
--sub-ass-force-style)_mpv_s '' "$cur"; return;;
--ad-lavc-o)_mpv_s '' "$cur"; return;;
--monitoraspect)_mpv_s '0 9' "$cur"; return;;
--osd-font)_mpv_s 'sans-serif' "$cur"; return;;
--tv-input)_mpv_s '0' "$cur"; return;;
--mf-type)_mpv_s '' "$cur"; return;;
--dscale-param1)_mpv_s 'nan' "$cur"; return;;
--omaxfps)_mpv_s '0 1000000' "$cur"; return;;
--audio-delay)_mpv_s '0' "$cur"; return;;
--af-clr)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--demuxer-lavf-buffersize)_mpv_s '1 10485760 32768' "$cur"; return;;
--tscale-antiring)_mpv_s '0 1' "$cur"; return;;
--tv-driver)_mpv_s '' "$cur"; return;;
--xv-colorkey)_mpv_s '65280' "$cur"; return;;
--force-media-title)_mpv_s '' "$cur"; return;;
--display-tags*)_mpv_s 'Artist,Album,Album_Artist,Comment,Composer,Genre,Performer,Title,Track,icy-title,service_name' "$cur"; return;;
--cscale)_mpv_s 'bilinear' "$cur"; return;;
--http-header-fields)_mpv_s '' "$cur"; return;;
--oss-mixer-channel)_mpv_s '' "$cur"; return;;
--demuxer-lavf-analyzeduration)_mpv_s '0 3600' "$cur"; return;;
--tscale-window)_mpv_s '' "$cur"; return;;
--msg-level)_mpv_s 'all=debug all=error all=fatal all=info all=no all=status all=trace all=v all=warn' "$cur"; return;;
--vo-vdpau-deint)_mpv_s '-4 0 4' "$cur"; return;;
--icc-3dlut-size)_mpv_s '64x64x64' "$cur"; return;;
--sub-scale)_mpv_s '0 1 100' "$cur"; return;;
--osd-duration)_mpv_s '0 1000 3600000' "$cur"; return;;
--sub-pos)_mpv_s '0 100' "$cur"; return;;
--scale-wtaper)_mpv_s '0 1' "$cur"; return;;
--af-toggle)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--start)_mpv_s '-60 50% 60' "$cur"; return;;
--video-sync-adrop-size)_mpv_s '0 0.02 1' "$cur"; return;;
--sws-cs)_mpv_s '-100 0 100' "$cur"; return;;
--ovcopts*)_mpv_s '' "$cur"; return;;
--opengl-swapinterval)_mpv_s '1' "$cur"; return;;
--screenshot-template)_mpv_s 'mpv-shot%n' "$cur"; return;;
--network-timeout)_mpv_s '0' "$cur"; return;;
--screenshot-png-compression)_mpv_s '0 7 9' "$cur"; return;;
--scale)_mpv_s 'bilinear' "$cur"; return;;
--ao-null-latency)_mpv_s '0 100' "$cur"; return;;
--tv-adevice)_mpv_s '' "$cur"; return;;
--user-agent)_mpv_s 'mpv 0.25.0' "$cur"; return;;
--osd-bar-h)_mpv_s '0.1 3.125 50' "$cur"; return;;
--x11-name)_mpv_s '' "$cur"; return;;
--ytdl-format)_mpv_s '' "$cur"; return;;
--cscale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--fps)_mpv_s '0' "$cur"; return;;
--title)_mpv_s '${?media-title:${media-title}}${!media-title:No file} - mpv' "$cur"; return;;
--osd-msg3)_mpv_s '' "$cur"; return;;
--alsa-mixer-name)_mpv_s 'Master' "$cur"; return;;
--sub-delay)_mpv_s '0' "$cur"; return;;
--sub-paths)_mpv_s '' "$cur"; return;;
--demuxer-lavf-o)_mpv_s '' "$cur"; return;;
--pulse-host)_mpv_s '' "$cur"; return;;
--script-opts)_mpv_s '' "$cur"; return;;
--cscale-antiring)_mpv_s '0 1' "$cur"; return;;
--vf-pre)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--cache-file-size)_mpv_s '0 1048576 2147483647' "$cur"; return;;
--cdda-paranoia)_mpv_s '0 2' "$cur"; return;;
--tscale)_mpv_s 'mitchell' "$cur"; return;;
--dscale-antiring)_mpv_s '0 1' "$cur"; return;;
--vo-tct-height)_mpv_s '0' "$cur"; return;;
--cscale-blur)_mpv_s '0' "$cur"; return;;
--saturation)_mpv_s '-100 0 100' "$cur"; return;;
--osd-msg1)_mpv_s '' "$cur"; return;;
--stream-lavf-o)_mpv_s '' "$cur"; return;;
--demuxer-lavf-format)_mpv_s '' "$cur"; return;;
--ab-loop-a)_mpv_s '00:00:00' "$cur"; return;;
--chapter-seek-threshold)_mpv_s '5' "$cur"; return;;
--tv-channel)_mpv_s '' "$cur"; return;;
--tv-chanlist)_mpv_s 'europe-east' "$cur"; return;;
--referrer)_mpv_s '' "$cur"; return;;
--sws-cvs)_mpv_s '0' "$cur"; return;;
--term-playing-msg)_mpv_s '' "$cur"; return;;
--ytdl-raw-options)_mpv_s '' "$cur"; return;;
--vd-lavc-o)_mpv_s '' "$cur"; return;;
--dvbin-prog)_mpv_s '' "$cur"; return;;
--mf-fps)_mpv_s '1' "$cur"; return;;
--alsa-mixer-index)_mpv_s '0 99' "$cur"; return;;
--osd-status-msg)_mpv_s '' "$cur"; return;;
--sub-font)_mpv_s 'sans-serif' "$cur"; return;;
--tv-device)_mpv_s '' "$cur"; return;;
--tv-fps)_mpv_s '-1' "$cur"; return;;
--opengl-gamma)_mpv_s '0.1 1 2' "$cur"; return;;
--osd-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--sub-shadow-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--window-scale)_mpv_s '0.001 1 100' "$cur"; return;;
--osd-border-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--tv-height)_mpv_s '-1 0 4096' "$cur"; return;;
--dscale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--background)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--cscale-param2)_mpv_s 'nan' "$cur"; return;;
--dscale-param2)_mpv_s 'nan' "$cur"; return;;
--cdda-overlap)_mpv_s '-1 0 75' "$cur"; return;;
--tone-mapping-param)_mpv_s 'nan' "$cur"; return;;
--drm-mode)_mpv_s '0' "$cur"; return;;
--cscale-wtaper)_mpv_s '0 1' "$cur"; return;;
--dscale-wtaper)_mpv_s '0 1' "$cur"; return;;
--osd-scale)_mpv_s '0 1 100' "$cur"; return;;
--tscale-wblur)_mpv_s '0' "$cur"; return;;
--vf-add)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--sub-shadow-offset)_mpv_s '0 10' "$cur"; return;;
--sub-fps)_mpv_s '0' "$cur"; return;;
--brightness)_mpv_s '-100 0 100' "$cur"; return;;
--audio-wait-open)_mpv_s '0 60' "$cur"; return;;
--tv-audioid)_mpv_s '0 9' "$cur"; return;;
--opengl-check-pattern)_mpv_s 'j-k' "$cur"; return;;
--af-defaults)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--tscale-param2)_mpv_s 'nan' "$cur"; return;;
--demuxer-lavf-probescore)_mpv_s '1 100 26' "$cur"; return;;
--opengl-tex-pad-x)_mpv_s '0 4096' "$cur"; return;;
--sub-border-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--osd-spacing)_mpv_s '-10 0 10' "$cur"; return;;
--tscale-wtaper)_mpv_s '0 1' "$cur"; return;;
--cscale-wblur)_mpv_s '0' "$cur"; return;;
--video-sync-max-audio-change)_mpv_s '0 0.125 1' "$cur"; return;;
--ofps)_mpv_s '0 1000000' "$cur"; return;;
--target-brightness)_mpv_s '1 100000 250' "$cur"; return;;
--opengl-vsync-fences)_mpv_s '0 10' "$cur"; return;;
--speed)_mpv_s '0.01 1 100' "$cur"; return;;
--show-profile)_mpv_s '' "$cur"; return;;
--dscale-wparam)_mpv_s 'nan' "$cur"; return;;
--ovoffset)_mpv_s '-1000000 0 1000000' "$cur"; return;;
--dump-stats)_mpv_s '' "$cur"; return;;
--cache-seek-min)_mpv_s '0 2147483647 500' "$cur"; return;;
--sstep)_mpv_s '0' "$cur"; return;;
--vo-tct-width)_mpv_s '0' "$cur"; return;;
--vo-vdpau-denoise)_mpv_s '0 1' "$cur"; return;;
--dscale-wblur)_mpv_s '0' "$cur"; return;;
--tv-audiorate)_mpv_s '44100' "$cur"; return;;
--ad-lavc-ac3drc)_mpv_s '0 6' "$cur"; return;;
--vd-lavc-threads)_mpv_s '0' "$cur"; return;;
--slang)_mpv_s '' "$cur"; return;;
--cdda-toc-bias)_mpv_s '0' "$cur"; return;;
--audio-client-name)_mpv_s 'mpv' "$cur"; return;;
--icc-contrast)_mpv_s '0 100000' "$cur"; return;;
--scale-antiring)_mpv_s '0 1' "$cur"; return;;
--deband-threshold)_mpv_s '0 4096 64' "$cur"; return;;
--oaoffset)_mpv_s '-1000000 0 1000000' "$cur"; return;;
--balance)_mpv_s '-1 0 1' "$cur"; return;;
--demuxer-mkv-subtitle-preroll-secs-index)_mpv_s '10' "$cur"; return;;
--tscale-blur)_mpv_s '0' "$cur"; return;;
--teletext-page)_mpv_s '1 100 999' "$cur"; return;;
--vo-vdpau-fps)_mpv_s '0' "$cur"; return;;
--cscale-window)_mpv_s 'bartlett blackman box gaussian hamming hanning jinc kaiser quadric sinc sphinx triangle tukey welch' "$cur"; return;;
--demuxer-rawvideo-fps)_mpv_s '0.001 1000 25' "$cur"; return;;
--chapter-merge-threshold)_mpv_s '0 100 10000' "$cur"; return;;
--dscale-window)_mpv_s 'bartlett blackman box gaussian hamming hanning jinc kaiser quadric sinc sphinx triangle tukey welch' "$cur"; return;;
--scale-blur)_mpv_s '0' "$cur"; return;;
--ao-null-speed)_mpv_s '0 1 10000' "$cur"; return;;
--af)_mpv_s 'channels equalizer format lavcac3enc lavfi lavfi-bridge lavrresample pan scaletempo volume' "$cur"; return;;
--scale-wblur)_mpv_s '0' "$cur"; return;;
--audio-buffer)_mpv_s '0 0.2 10' "$cur"; return;;
--tv-width)_mpv_s '-1 0 4096' "$cur"; return;;
--hr-seek-demuxer-offset)_mpv_s '0' "$cur"; return;;
--input-ar-delay)_mpv_s '200' "$cur"; return;;
--sharpen)_mpv_s '0' "$cur"; return;;
--length)_mpv_s '-60 50% 60' "$cur"; return;;
--tv-decimation)_mpv_s '1 2 4' "$cur"; return;;
--tv-quality)_mpv_s '0 100 90' "$cur"; return;;
--osd-font-size)_mpv_s '1 55 9000' "$cur"; return;;
--vf)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi lavfi-bridge mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--tv-buffersize)_mpv_s '-1 1024 16' "$cur"; return;;
--ofopts*)_mpv_s '' "$cur"; return;;
--gamma)_mpv_s '-100 0 100' "$cur"; return;;
--dvbin-timeout)_mpv_s '1 30' "$cur"; return;;
--demuxer-rawvideo-w)_mpv_s '1 1280 8192' "$cur"; return;;
--video-pan-y)_mpv_s '-3 0 3' "$cur"; return;;
--of)_mpv_s '' "$cur"; return;;
--osd-bar-align-y)_mpv_s '-1 0.5 1' "$cur"; return;;
--scale-param2)_mpv_s 'nan' "$cur"; return;;
--tv-scan-threshold)_mpv_s '1 100 50' "$cur"; return;;
--video-sync-max-video-change)_mpv_s '1' "$cur"; return;;
--audio-channels)_mpv_s 'auto-safe' "$cur"; return;;
--alang)_mpv_s '' "$cur"; return;;
--sub-demuxer)_mpv_s 'cue demuxer: disc edl lavf mf mkv null playlist rar rawaudio rawvideo tv' "$cur"; return;;
--jack-name)_mpv_s 'mpv' "$cur"; return;;
--oss-mixer-device)_mpv_s '/dev/mixer' "$cur"; return;;
--demuxer-rawvideo-size)_mpv_s '0 1 268435456' "$cur"; return;;
--sws-cgb)_mpv_s '0 100' "$cur"; return;;
--tv-contrast)_mpv_s '-100 0 100' "$cur"; return;;
--screenshot-jpeg-quality)_mpv_s '0 100 90' "$cur"; return;;
--ovc)_mpv_s 'a64multi a64multi5 alias_pix amv apng asv1 asv2 avrp avui ayuv bmp cinepak cljr dnxhd dpx dvvideo ffv1 ffvhuff flashsv flashsv2 flv gif h261 h263 h263p h264_nvenc h264_vaapi hevc_nvenc hevc_vaapi huffyuv jpeg2000 jpegls libopenjpeg libschroedinger libtheora libvpx libvpx-vp9 libwebp libx264 libx264rgb libx265 libxvid ljpeg mjpeg mjpeg_vaapi mpeg1video mpeg2video mpeg4 msmpeg4 msmpeg4v2 msvideo1 nvenc nvenc_h264 nvenc_hevc pam pbm pcx pgm pgmyuv png ppm prores prores_aw prores_ks qtrle r10k r210 rawvideo roqvideo rv10 rv20 sgi snow sunrast svq1 targa tiff utvideo v210 v308 v408 v410 vc2 wmv1 wmv2 wrapped_avframe xbm xface xwd y41p yuv4 zlib zmbv' "$cur"; return;;
--tv-freq)_mpv_s '0' "$cur"; return;;
--vo-vdpau-colorkey)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--scale-wparam)_mpv_s 'nan' "$cur"; return;;
--sws-ls)_mpv_s '-100 0 100' "$cur"; return;;
--volume-max)_mpv_s '100 1000 130' "$cur"; return;;
--osd-shadow-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--term-status-msg)_mpv_s '' "$cur"; return;;
--geometry)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
--autofit-smaller)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
--autofit)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
--autofit-larger)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
esac; fi
if [[ $cur =~ ^- ]]; then
_mpv_s '--vo-vdpau-composite-detect= --demuxer-lavf-probe-info= --vo-image-format= --jack-autostart= --gamma-auto= --vo-vdpau-pullup= --opengl-debug= --sub-use-margins= --msg-module= --loop-file= --sub-ass-hinting= --alsa-ignore-chmap= --force-window= --on-all-workspaces= --demuxer-mkv-probe-start-time= --sub-gray= --vo-image-tag-colorspace= --hidpi-window-scale= --osd-justify= --input-test= --oautofps= --resume-playback= --tscale-clamp= --osd-bold= --stop-screensaver= --video-sync= --input-cursor= --osd-scale-by-window= --osd-italic= --audio-exclusive= --osd-level= --opengl-dumb-mode= --sub-filter-sdh= --merge-files= --audio-fallback-to-null= --hr-seek= --prefetch-playlist= --osd-bar= --sub-filter-sdh-harder= --gapless-audio= --ontop-level= --stretch-dvd-subs= --hdr-tone-mapping= --vd-lavc-skipframe= --jack-connect= --term-osd-bar= --input-default-bindings= --demuxer-lavf-hacks= --tv-forceaudio= --load-scripts= --initial-audio-sync= --oharddup= --sid= --vo-wayland-rgb565= --dither= --input-vo-keyboard= --sub-ass= --vid= --save-position-on-quit= --scaler-resizes-only= --tv-scan-autostart= --deinterlace= --sigmoid-upscaling= --cdda-skip= --audio-spdif= --ad-lavc-downmix= --hr-seek-framedrop= --cache-pause= --untimed= --screenshot-tag-colorspace= --shuffle= --force-seekable= --target-prim= --opengl-rectangle-textures= --fit-border= --input-right-alt-gr= --vo-vaapi-scaling= --pause= --snap-window= --framedrop= --list-properties= --opengl-glfinish= --vd-lavc-framedrop= --video-rotate= --ometadata= --temporal-dither= --ignore-path-in-watch-later-config= --border= --use-filedir-conf= --autoload-files= --ao-null-untimed= --stretch-image-subs-to-screen= --xv-ck= --sub-ass-force-margins= --player-operation-mode= --demuxer-lavf-allow-mimetype= --stop-playback-on-init-failure= --sub-ass-vsfilter-blur-compat= --ovfirst= --tv-immediatemode= --cursor-autohide= --vo-vaapi-scaled-osd= --correct-downscaling= --fs-screen= --idle= --alsa-non-interleaved= --icc-profile-auto= --access-references= --force-rgba-osd-rendering= --sub-italic= --msg-time= --pulse-buffer= --sub-ass-vsfilter-color-compat= --sub-scale-by-window= --cache-default= --keepaspect-window= --field-dominance= --list-options= --sub-scale-with-window= --vd-lavc-skiploopfilter= --demuxer-rawaudio-format= --vd-lavc-skipidct= --sub-visibility= --sub-ass-justify= --ff-vid= --opengl-waitvsync= --ao-null-broken-eof= --terminal= --ao-null-broken-delay= --sub-ass-scale-with-window= --tv-alsa= --ff-sid= --rtsp-transport= --cdda-cdtext= --deband= --tv-audio= --demuxer-mkv-probe-video-duration= --cache= --oafirst= --config= --jack-std-channel-layout= --vd-lavc-bitexact= --vo-vdpau-chroma-deint= --sub-bold= --vo-vdpau-force-yuv= --edition= --opengl-es= --vd-lavc-check-hw-profile= --vd-lavc-fast= --sub-fix-timing= --vd-lavc-show-all= --cookies= --audio-pitch-correction= --opengl-sw= --vo-wayland-alpha= --osc= --video-osd= --vo-image-jpeg-source-chroma= --target-trc= --dvbin-full-transponder= --sub-forced-only= --keep-open= --playlist-start= --vo-tct-256= --loop-playlist= --window-dragging= --tls-verify= --oneverdrop= --sub-ass-style-override= --sub-clear-on-seek= --input-terminal= --interpolation= --image-subs-video-resolution= --xv-ck-method= --orawts= --osd-fractions= --ytdl= --video-stereo-mode= --embeddedfonts= --video-output-levels= --opengl-pbo= --ff-aid= --msg-color= --load-unsafe-playlists= --pulse-latency-hacks= --fullscreen= --linear-scaling= --quiet= --dither-depth= --ao-pcm-waveheader= --x11-netwm= --keep-open-pause= --osd-align-x= --sub-auto= --ordered-chapters= --screenshot-jpeg-source-chroma= --taskbar-progress= --audio-normalize-downmix= --sub-justify= --hwdec= --sub-ass-shaper= --alsa-resample= --sub-ass-vsfilter-aspect-compat= --force-window-position= --sub-align-x= --screenshot-high-bit-depth= --aid= --frames= --demuxer-thread= --native-keyrepeat= --demuxer-mkv-subtitle-preroll= --correct-pts= --ao-pcm-append= --alpha= --tv-mjpeg= --x11-bypass-compositor= --demuxer-lavf-genpts-mode= --osd-align-y= --ocopyts= --audio-file-auto= --blend-subtitles= --v= --write-filename-in-watch-later-config= --sws-scaler= --keepaspect= --screenshot-format= --ontop= --audio-stream-silence= --cscale-clamp= --mute= --vd-lavc-software-fallback= --dscale-clamp= --screen= --hls-bitrate= --video-aspect-method= --vo-image-high-bit-depth= --really-quiet= --scale-clamp= --term-osd= --secondary-sid= --sub-align-y= --rebase-start-time= --cursor-autohide-fs-only= --opengl-fbo-format= --video-unscaled= --audio-display= --opengl-early-flush= --autosync= --index= --vo-tct-algo= --input-conf --input-ipc-server --cookies-file --audio-file --cache-file --opengl-shaders --chapters-file --input-file --ao-pcm-file --script --stream-dump --tls-key-file --o --icc-profile --tls-cert-file --tls-ca-file --sub-file --sub-ass-styles --record-file --dvbin-file --playlist --ordered-chapters-files --include --external-file --bluray-device --cdrom-device --log-file --profile --drm-connector --vo-image-outdir --config-dir --screenshot-directory --watch-later-directory --icc-cache-dir --demuxer-lavf-probesize --dvbin-card --demuxer-lavf-cryptokey --vo-vdpau-sharpen --opengl-tex-pad-y --ao --tscale-taper --oacopts* --cdda-toc-offset --audio-file-paths --opengl-hwdec-interop --deband-range --scaler-lut-size --dscale-taper --cscale-wparam --audio-format --af-add --xv-adaptor --oac --panscan --ad-lavc-threads --interpolation-threshold --scale-radius --demuxer-rawvideo-mp-format --screenshot-jpeg-smooth --tv-treble --cscale-taper --wid --dscale-blur --tv-scan-period --input-doubleclick-time --dither-size-fruit --tv-automute --input-key-fifo-size --sub-codepage --xv-port --demuxer-readahead-secs --video-zoom --video-align-y --dscale --vf-toggle --cache-initial --vf-defaults --tv-outfmt --tscale-radius --ao-null-channel-layouts --vo-image-png-filter --video-pan-x --scale-param1 --volume --sub-gauss --tv-saturation --cache-secs --scale-window --demuxer-rawaudio-channels --sub-font-size --vo-image-png-compression --input-ar-rate --demuxer-mkv-subtitle-preroll-secs --monitorpixelaspect --demuxer-rawvideo-codec --demuxer-rawvideo-format --jack-port --tv-normid --sigmoid-slope --sub-ass-line-spacing --icc-intent --vo-image-jpeg-smooth --tv-hue --sub-spacing --sub-margin-x --tv-forcechan --vf-del --image-display-duration --ao-null-buffer --osd-border-size --osd-back-color --alsa-mixer-device --audio-demuxer --audio-samplerate --mc --osd-blur --tv-channels --cdda-speed --sub-speed --vo-vdpau-hqscaling --tscale-param1 --xv-buffers --demuxer --demuxer-rawaudio-rate --lavfi-complex --tv-brightness --af-del --tv-gain --vf-set --sub-back-color --tscale-wparam --vo-image-jpeg-quality --audio-device --scale-taper --osd-shadow-offset --osd-margin-x --opengl-shader-cache-dir --vo --af-set --tv-volume --video-align-x --heartbeat-interval --osd-msg2 --cscale-param1 --osd-bar-align-x --screenshot-png-filter --sws-chs --sub-color --tv-balance --display-fps --vo-null-fps --sub-margin-y --tv-bass --reset-on-next-file --hwdec-codecs --term-osd-bar-chars --deband-iterations --opengl-backend --ao-null-outburst --sws-lgb --af-pre --vo-vdpau-queuetime-windowed --vo-vdpau-output-surfaces --cache-backbuffer --tv-amode --ad --contrast --vd --vf-clr --sigmoid-center --sub-border-size --cdda-span --demuxer-max-bytes --osd-bar-w --osd-margin-y --cdda-sector-size --deband-grain --tv-norm --osd-playing-msg --temporal-dither-period --demuxer-rawvideo-h --vo-vdpau-queuetime-fs --ab-loop-b --hue --sub-blur --end --sub-ass-force-style --ad-lavc-o --monitoraspect --osd-font --tv-input --mf-type --dscale-param1 --omaxfps --audio-delay --af-clr --demuxer-lavf-buffersize --tscale-antiring --tv-driver --xv-colorkey --force-media-title --display-tags* --cscale --http-header-fields --oss-mixer-channel --demuxer-lavf-analyzeduration --tscale-window --msg-level --vo-vdpau-deint --icc-3dlut-size --sub-scale --osd-duration --sub-pos --scale-wtaper --af-toggle --start --video-sync-adrop-size --sws-cs --ovcopts* --opengl-swapinterval --screenshot-template --network-timeout --screenshot-png-compression --scale --ao-null-latency --tv-adevice --user-agent --osd-bar-h --x11-name --ytdl-format --cscale-radius --fps --title --osd-msg3 --alsa-mixer-name --sub-delay --sub-paths --demuxer-lavf-o --pulse-host --script-opts --cscale-antiring --vf-pre --cache-file-size --cdda-paranoia --tscale --dscale-antiring --vo-tct-height --cscale-blur --saturation --osd-msg1 --stream-lavf-o --demuxer-lavf-format --ab-loop-a --chapter-seek-threshold --tv-channel --tv-chanlist --referrer --sws-cvs --term-playing-msg --ytdl-raw-options --vd-lavc-o --dvbin-prog --mf-fps --alsa-mixer-index --osd-status-msg --sub-font --tv-device --tv-fps --opengl-gamma --osd-color --sub-shadow-color --window-scale --osd-border-color --tv-height --dscale-radius --background --cscale-param2 --dscale-param2 --cdda-overlap --tone-mapping-param --drm-mode --cscale-wtaper --dscale-wtaper --osd-scale --tscale-wblur --vf-add --sub-shadow-offset --sub-fps --brightness --audio-wait-open --tv-audioid --opengl-check-pattern --af-defaults --tscale-param2 --demuxer-lavf-probescore --opengl-tex-pad-x --sub-border-color --osd-spacing --tscale-wtaper --cscale-wblur --video-sync-max-audio-change --ofps --target-brightness --opengl-vsync-fences --speed --show-profile --dscale-wparam --ovoffset --dump-stats --cache-seek-min --sstep --vo-tct-width --vo-vdpau-denoise --dscale-wblur --tv-audiorate --ad-lavc-ac3drc --vd-lavc-threads --slang --cdda-toc-bias --audio-client-name --icc-contrast --scale-antiring --deband-threshold --oaoffset --balance --demuxer-mkv-subtitle-preroll-secs-index --tscale-blur --teletext-page --vo-vdpau-fps --cscale-window --demuxer-rawvideo-fps --chapter-merge-threshold --dscale-window --scale-blur --ao-null-speed --af --scale-wblur --audio-buffer --tv-width --hr-seek-demuxer-offset --input-ar-delay --sharpen --length --tv-decimation --tv-quality --osd-font-size --vf --tv-buffersize --ofopts* --gamma --dvbin-timeout --demuxer-rawvideo-w --video-pan-y --of --osd-bar-align-y --scale-param2 --tv-scan-threshold --video-sync-max-video-change --audio-channels --alang --sub-demuxer --jack-name --oss-mixer-device --demuxer-rawvideo-size --sws-cgb --tv-contrast --screenshot-jpeg-quality --ovc --tv-freq --vo-vdpau-colorkey --scale-wparam --sws-ls --volume-max --osd-shadow-color --term-status-msg --geometry --autofit-smaller --autofit --autofit-larger --input-cmdlist --} --h --fs --version --list-protocols --V --sub --video --video-aspect --help --{ --audio --input-keylist' "$cur"; return;
fi
_filedir
}
complete -o nospace -F _mpv mpv
