#!/bin/bash
# mpv 3.3.8
### LOOKUP TABLES AND CACHES ###
declare _mpv_xrandr_cache
declare -A _mpv_fargs
declare -A _mpv_pargs
_mpv_fargs[vf@vdpaupp]="sharpen= hqscaling= deint= deint-mode= chroma-deint= denoise= interlaced-only= pullup="
_mpv_pargs[vf@vdpaupp@sharpen]="0 -1 1"
_mpv_pargs[vf@vdpaupp@hqscaling]="0 9"
_mpv_pargs[vf@vdpaupp@deint]="yes no"
_mpv_pargs[vf@vdpaupp@deint-mode]="temporal first-field bob temporal-spatial"
_mpv_pargs[vf@vdpaupp@chroma-deint]="yes no"
_mpv_pargs[vf@vdpaupp@denoise]="0 1"
_mpv_pargs[vf@vdpaupp@interlaced-only]="yes no"
_mpv_pargs[vf@vdpaupp@pullup]="yes no"
_mpv_fargs[vf@dsize]="aspect= round= h= w= method="
_mpv_pargs[vf@dsize@aspect]="0 10"
_mpv_pargs[vf@dsize@round]="1 0 9999"
_mpv_pargs[vf@dsize@h]="-1 -3 2147483647"
_mpv_pargs[vf@dsize@w]="-1 -3 2147483647"
_mpv_pargs[vf@dsize@method]="-1 3"
_mpv_fargs[vf@crop]="h= w= x= y="
_mpv_pargs[vf@crop@h]="-1"
_mpv_pargs[vf@crop@w]="-1"
_mpv_pargs[vf@crop@x]="-1"
_mpv_pargs[vf@crop@y]="-1"
_mpv_fargs[vf@format]="colorlevels= dw= dar= stereo-out= dh= gamma= outfmt= rotate= primaries= stereo-in= fmt= colormatrix= peak= chroma-location="
_mpv_pargs[vf@format@colorlevels]="auto limited full"
_mpv_pargs[vf@format@dw]="0"
_mpv_pargs[vf@format@dar]="0"
_mpv_pargs[vf@format@stereo-out]="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@gamma]="auto bt.1886 srgb linear gamma1.8 gamma2.2 gamma2.8 prophoto st2084 std-b67 v-log"
_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@rotate]="-1 359"
_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@stereo-in]="mono no sbs2l ab2r ab2l checkr checkl irr irl icr icl arcc sbs2r agmc al ar"
_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@colormatrix]="auto bt.601 bt.709 smpte-240m bt.2020-ncl bt.2020-cl rgb xyz ycgco"
_mpv_pargs[vf@format@peak]="0"
_mpv_pargs[vf@format@chroma-location]="unknown mpeg2/4/h264 mpeg1/jpeg"
_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@rotate]="angle= lavfi-o= lavfi-sws-flags="
_mpv_pargs[vf@rotate@angle]="0 90 180 270 auto"
_mpv_pargs[vf@rotate@lavfi-sws-flags]="4"
_mpv_fargs[vf@gradfun]="radius= size= strength= lavfi-o= lavfi-sws-flags="
_mpv_pargs[vf@gradfun@radius]="-1 4 32"
_mpv_pargs[vf@gradfun@size]="-1 0.1 5"
_mpv_pargs[vf@gradfun@strength]="1.5 0.51 255"
_mpv_pargs[vf@gradfun@lavfi-sws-flags]="4"
_mpv_fargs[vf@yadif]="mode= lavfi-o= interlaced-only= lavfi-sws-flags="
_mpv_pargs[vf@yadif@mode]="field frame frame-nospatial field-nospatial"
_mpv_pargs[vf@yadif@interlaced-only]="yes no"
_mpv_pargs[vf@yadif@lavfi-sws-flags]="4"
_mpv_fargs[vf@stereo3d]="lavfi-o= in= out= lavfi-sws-flags="
_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_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@lavfi-sws-flags]="4"
_mpv_fargs[vf@expand]="aspect= round= y= x= w= h="
_mpv_pargs[vf@expand@aspect]="0"
_mpv_pargs[vf@expand@round]="1"
_mpv_pargs[vf@expand@y]="-1"
_mpv_pargs[vf@expand@x]="-1"
_mpv_pargs[vf@expand@w]="-1"
_mpv_pargs[vf@expand@h]="-1"
_mpv_fargs[vf@eq]="saturation= rg= gg= bg= weight= contrast= brightness= gamma="
_mpv_pargs[vf@eq@saturation]="1 0 3"
_mpv_pargs[vf@eq@rg]="1 0.1 10"
_mpv_pargs[vf@eq@gg]="1 0.1 10"
_mpv_pargs[vf@eq@bg]="1 0.1 10"
_mpv_pargs[vf@eq@weight]="1 0"
_mpv_pargs[vf@eq@contrast]="1 -2 2"
_mpv_pargs[vf@eq@brightness]="0 -1 1"
_mpv_pargs[vf@eq@gamma]="1 0.1 10"
_mpv_fargs[vf@scale]="param= param2= arnd= h= w= noup= chr-drop="
_mpv_pargs[vf@scale@param]="123456 0 100"
_mpv_pargs[vf@scale@param2]="123456 0 100"
_mpv_pargs[vf@scale@arnd]="yes no"
_mpv_pargs[vf@scale@h]="-1"
_mpv_pargs[vf@scale@w]="-1"
_mpv_pargs[vf@scale@noup]="0 2"
_mpv_pargs[vf@scale@chr-drop]="0 3"
_mpv_fargs[vf@dlopen]="a11= a12= a15= dll= a13= a7= a8= a5= a6= a4= a3= a2= a0= a14= a9= a1= a10="
_mpv_fargs[vf@vavpp]="deint= interlaced-only="
_mpv_pargs[vf@vavpp@deint]="bob no first-field weave motion-adaptive motion-compensated"
_mpv_pargs[vf@vavpp@interlaced-only]="yes no"
_mpv_fargs[vf@pullup]="sb= jb= lavfi-o= lavfi-sws-flags= mp= jr= jl= jt="
_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@jr]="1"
_mpv_pargs[vf@pullup@jl]="1"
_mpv_pargs[vf@pullup@jt]="4"
_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@lavfi]="blackdetect= crop= realtime= random= deband= ass= removegrain= bench= waveform= setdar= colormatrix= thumbnail= idet= perspective= copy= il= framestep= repeatfields= bitplanenoise= setsar= framerate= mestimate= noformat= lutrgb= sws-flags= trim= fieldhint= tblend= colorlevels= scale= smartblur= gblur= settb= phase= deflate= lut= dilation= palettegen= negate= fftfilt= chromakey= elbg= transpose= interlace= lenscorrection= dejudder= boxblur= perms= hue= null= swapuv= inflate= hwdownload= colorspace= unsharp= sendcmd= detelecine= sobel= swaprect= hqdn3d= drawgraph= tile= fps= drawbox= zoompan= kerndeint= fade= noise= bwdif= separatefields= telecine= deshake= codecview= selectivecolor= vaguedenoiser= reverse= colorchannelmixer= o= graph= fifo= yadif= xbr= lut3d= weave= pixdesctest= loop= w3fdif= vignette= vflip= curves= vectorscope= format= uspp= hflip= rotate= gradfun= tinterlace= histogram= bbox= cropdetect= signalstats= nnedi= convolution= fieldorder= super2xsai= colorbalance= subtitles= colorkey= hqx= fspp= stereo3d= spp= setfield= pullup= qp= pp= pp7= datascope= sidedata= lutyuv= delogo= pad= shuffleplanes= owdenoise= dctdnoiz= avgblur= nlmeans= shuffleframes= ciescope= hwupload= showpalette= showinfo= sab= histeq= eq= prewitt= minterpolate= field= removelogo= atadenoise= blackframe= drawgrid= readvitc= edgedetect= setpts= mcdeint= geq= metadata= mpdecimate= erosion= drawtext="
_mpv_pargs[vf@lavfi@sws-flags]="4"
_mpv_fargs[vf@buffer]="num="
_mpv_pargs[vf@buffer@num]="2 1 100"
_mpv_fargs[af@lavcac3enc]="minch= bitrate= tospdif= o= encoder="
_mpv_pargs[af@lavcac3enc@minch]="3 2 6"
_mpv_pargs[af@lavcac3enc@bitrate]="32 640 auto default"
_mpv_pargs[af@lavcac3enc@tospdif]="yes no"
_mpv_pargs[af@lavcac3enc@encoder]="ac3"
_mpv_fargs[af@format]="srate= out-channels= out-srate= format= channels= out-format= fail="
_mpv_pargs[af@format@srate]="0 1000 384000"
_mpv_pargs[af@format@out-srate]="0 1000 384000"
_mpv_pargs[af@format@fail]="yes no"
_mpv_fargs[af@channels]="routes= nch="
_mpv_pargs[af@channels@nch]="2 1 16"
_mpv_fargs[af@volume]="s16= replaygain-preamp= detach= replaygain-album= replaygain-clip= replaygain-track= softclip= replaygain-fallback= volumedb="
_mpv_pargs[af@volume@s16]="yes no"
_mpv_pargs[af@volume@replaygain-preamp]="0 -15 15"
_mpv_pargs[af@volume@detach]="yes no"
_mpv_pargs[af@volume@replaygain-album]="yes no"
_mpv_pargs[af@volume@replaygain-clip]="yes no"
_mpv_pargs[af@volume@replaygain-track]="yes no"
_mpv_pargs[af@volume@softclip]="yes no"
_mpv_pargs[af@volume@replaygain-fallback]="0 -200 60"
_mpv_pargs[af@volume@volumedb]="0 -200 60"
_mpv_fargs[af@drc]="target= method="
_mpv_pargs[af@drc@target]="0.25"
_mpv_pargs[af@drc@method]="1 2"
_mpv_fargs[af@lavfi]="o= graph="
_mpv_fargs[af@equalizer]="e7= e8= e5= e6= e9= e0= e4= e3= e2= e1="
_mpv_pargs[af@equalizer@e7]="0"
_mpv_pargs[af@equalizer@e8]="0"
_mpv_pargs[af@equalizer@e5]="0"
_mpv_pargs[af@equalizer@e6]="0"
_mpv_pargs[af@equalizer@e9]="0"
_mpv_pargs[af@equalizer@e0]="0"
_mpv_pargs[af@equalizer@e4]="0"
_mpv_pargs[af@equalizer@e3]="0"
_mpv_pargs[af@equalizer@e2]="0"
_mpv_pargs[af@equalizer@e1]="0"
_mpv_fargs[af@pan]="matrix= channels="
_mpv_pargs[af@pan@channels]="0 16"
_mpv_fargs[af@scaletempo]="overlap= scale= search= speed= stride="
_mpv_pargs[af@scaletempo@overlap]="0.2 0 1"
_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@stride]="60"
_mpv_fargs[af@lavrresample]="cutoff= filter-size= linear= phase-shift= o= normalize= detach="
_mpv_pargs[af@lavrresample@cutoff]="0 1"
_mpv_pargs[af@lavrresample@filter-size]="16 0 32"
_mpv_pargs[af@lavrresample@linear]="yes no"
_mpv_pargs[af@lavrresample@phase-shift]="10 0 30"
_mpv_pargs[af@lavrresample@normalize]="auto no yes"
_mpv_pargs[af@lavrresample@detach]="yes no"
### 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_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
--alsa-resample=*)_mpv_s '--alsa-resample=yes --alsa-resample=no' "$cur"; return;;
--vd-lavc-fast=*)_mpv_s '--vd-lavc-fast=yes --vd-lavc-fast=no' "$cur"; return;;
--screenshot-jpeg-source-chroma=*)_mpv_s '--screenshot-jpeg-source-chroma=yes --screenshot-jpeg-source-chroma=no' "$cur"; return;;
--on-all-workspaces=*)_mpv_s '--on-all-workspaces=yes --on-all-workspaces=no' "$cur"; return;;
--deband=*)_mpv_s '--deband=yes --deband=no' "$cur"; return;;
--demuxer-lavf-genpts-mode=*)_mpv_s '--demuxer-lavf-genpts-mode=no --demuxer-lavf-genpts-mode=lavf' "$cur"; return;;
--oafirst=*)_mpv_s '--oafirst=yes --oafirst=no' "$cur"; return;;
--ao-null-broken-delay=*)_mpv_s '--ao-null-broken-delay=yes --ao-null-broken-delay=no' "$cur"; return;;
--taskbar-progress=*)_mpv_s '--taskbar-progress=yes --taskbar-progress=no' "$cur"; return;;
--fit-border=*)_mpv_s '--fit-border=yes --fit-border=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;;
--load-unsafe-playlists=*)_mpv_s '--load-unsafe-playlists=yes --load-unsafe-playlists=no' "$cur"; return;;
--ytdl=*)_mpv_s '--ytdl=yes --ytdl=no' "$cur"; return;;
--vo-vdpau-force-yuv=*)_mpv_s '--vo-vdpau-force-yuv=yes --vo-vdpau-force-yuv=no' "$cur"; return;;
--demuxer-mkv-probe-start-time=*)_mpv_s '--demuxer-mkv-probe-start-time=yes --demuxer-mkv-probe-start-time=no' "$cur"; return;;
--gamma-auto=*)_mpv_s '--gamma-auto=yes --gamma-auto=no' "$cur"; return;;
--autoload-files=*)_mpv_s '--autoload-files=yes --autoload-files=no' "$cur"; return;;
--autosync=*)_mpv_s '--autosync=0 --autosync=no' "$cur"; return;;
--stop-screensaver=*)_mpv_s '--stop-screensaver=yes --stop-screensaver=no' "$cur"; return;;
--dither=*)_mpv_s '--dither=fruit --dither=ordered --dither=no' "$cur"; return;;
--msg-time=*)_mpv_s '--msg-time=yes --msg-time=no' "$cur"; return;;
--opengl-glfinish=*)_mpv_s '--opengl-glfinish=yes --opengl-glfinish=no' "$cur"; return;;
--sub-ass=*)_mpv_s '--sub-ass=yes --sub-ass=no' "$cur"; return;;
--input-terminal=*)_mpv_s '--input-terminal=yes --input-terminal=no' "$cur"; return;;
--window-dragging=*)_mpv_s '--window-dragging=yes --window-dragging=no' "$cur"; return;;
--stop-playback-on-init-failure=*)_mpv_s '--stop-playback-on-init-failure=yes --stop-playback-on-init-failure=no' "$cur"; return;;
--fullscreen=*)_mpv_s '--fullscreen=yes --fullscreen=no' "$cur"; return;;
--orawts=*)_mpv_s '--orawts=yes --orawts=no' "$cur"; return;;
--shuffle=*)_mpv_s '--shuffle=yes --shuffle=no' "$cur"; return;;
--cscale-clamp=*)_mpv_s '--cscale-clamp=yes --cscale-clamp=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;;
--dscale-clamp=*)_mpv_s '--dscale-clamp=yes --dscale-clamp=no' "$cur"; return;;
--blend-subtitles=*)_mpv_s '--blend-subtitles=no --blend-subtitles=yes --blend-subtitles=video' "$cur"; return;;
--player-operation-mode=*)_mpv_s '--player-operation-mode=cplayer --player-operation-mode=pseudo-gui' "$cur"; return;;
--jack-std-channel-layout=*)_mpv_s '--jack-std-channel-layout=waveext --jack-std-channel-layout=any' "$cur"; return;;
--cdda-cdtext=*)_mpv_s '--cdda-cdtext=yes --cdda-cdtext=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;;
--pulse-buffer=*)_mpv_s '--pulse-buffer=1 --pulse-buffer=250 --pulse-buffer=native' "$cur"; return;;
--cookies=*)_mpv_s '--cookies=yes --cookies=no' "$cur"; return;;
--osd-align-x=*)_mpv_s '--osd-align-x=left --osd-align-x=center --osd-align-x=right' "$cur"; return;;
--osd-bar=*)_mpv_s '--osd-bar=yes --osd-bar=no' "$cur"; return;;
--keepaspect=*)_mpv_s '--keepaspect=yes --keepaspect=no' "$cur"; return;;
--osc=*)_mpv_s '--osc=yes --osc=no' "$cur"; return;;
--sub-align-x=*)_mpv_s '--sub-align-x=center --sub-align-x=left --sub-align-x=right' "$cur"; return;;
--tscale-clamp=*)_mpv_s '--tscale-clamp=yes --tscale-clamp=no' "$cur"; return;;
--jack-autostart=*)_mpv_s '--jack-autostart=yes --jack-autostart=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;;
--playlist-start=*)_mpv_s '--playlist-start=0 --playlist-start=auto --playlist-start=no' "$cur"; return;;
--scale-clamp=*)_mpv_s '--scale-clamp=yes --scale-clamp=no' "$cur"; return;;
--frames=*)_mpv_s '--frames=0 --frames=all' "$cur"; return;;
--rebase-start-time=*)_mpv_s '--rebase-start-time=yes --rebase-start-time=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;;
--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;;
--hr-seek=*)_mpv_s '--hr-seek=absolute --hr-seek=no --hr-seek=yes --hr-seek=always' "$cur"; return;;
--ff-sid=*)_mpv_s '--ff-sid=0 --ff-sid=auto --ff-sid=no' "$cur"; return;;
--hls-bitrate=*)_mpv_s '--hls-bitrate=0 --hls-bitrate=max --hls-bitrate=no --hls-bitrate=min' "$cur"; return;;
--opengl-rectangle-textures=*)_mpv_s '--opengl-rectangle-textures=yes --opengl-rectangle-textures=no' "$cur"; return;;
--vo-image-jpeg-source-chroma=*)_mpv_s '--vo-image-jpeg-source-chroma=yes --vo-image-jpeg-source-chroma=no' "$cur"; return;;
--video-output-levels=*)_mpv_s '--video-output-levels=auto --video-output-levels=limited --video-output-levels=full' "$cur"; return;;
--osd-fractions=*)_mpv_s '--osd-fractions=yes --osd-fractions=no' "$cur"; return;;
--resume-playback=*)_mpv_s '--resume-playback=yes --resume-playback=no' "$cur"; return;;
--input-cursor=*)_mpv_s '--input-cursor=yes --input-cursor=no' "$cur"; return;;
--term-osd=*)_mpv_s '--term-osd=auto --term-osd=force --term-osd=no' "$cur"; return;;
--stretch-dvd-subs=*)_mpv_s '--stretch-dvd-subs=yes --stretch-dvd-subs=no' "$cur"; return;;
--sigmoid-upscaling=*)_mpv_s '--sigmoid-upscaling=yes --sigmoid-upscaling=no' "$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;;
--input-default-bindings=*)_mpv_s '--input-default-bindings=yes --input-default-bindings=no' "$cur"; return;;
--ocopyts=*)_mpv_s '--ocopyts=yes --ocopyts=no' "$cur"; return;;
--sub-ass-shaper=*)_mpv_s '--sub-ass-shaper=complex --sub-ass-shaper=simple' "$cur"; return;;
--video-rotate=*)_mpv_s '--video-rotate=0 --video-rotate=no' "$cur"; return;;
--sub-bold=*)_mpv_s '--sub-bold=yes --sub-bold=no' "$cur"; return;;
--pause=*)_mpv_s '--pause=yes --pause=no' "$cur"; return;;
--cache-pause=*)_mpv_s '--cache-pause=yes --cache-pause=no' "$cur"; return;;
--quiet=*)_mpv_s '--quiet=yes --quiet=no' "$cur"; return;;
--sub-visibility=*)_mpv_s '--sub-visibility=yes --sub-visibility=no' "$cur"; return;;
--cache-default=*)_mpv_s '--cache-default=32 --cache-default=75000 --cache-default=no' "$cur"; return;;
--untimed=*)_mpv_s '--untimed=yes --untimed=no' "$cur"; return;;
--ordered-chapters=*)_mpv_s '--ordered-chapters=yes --ordered-chapters=no' "$cur"; return;;
--cdda-skip=*)_mpv_s '--cdda-skip=yes --cdda-skip=no' "$cur"; return;;
--sub-auto=*)_mpv_s '--sub-auto=exact --sub-auto=no --sub-auto=fuzzy --sub-auto=all' "$cur"; return;;
--ad-lavc-downmix=*)_mpv_s '--ad-lavc-downmix=yes --ad-lavc-downmix=no' "$cur"; return;;
--vo-vaapi-scaled-osd=*)_mpv_s '--vo-vaapi-scaled-osd=yes --vo-vaapi-scaled-osd=no' "$cur"; return;;
--fs-screen=*)_mpv_s '--fs-screen=0 --fs-screen=current --fs-screen=all' "$cur"; return;;
--sub-scale-by-window=*)_mpv_s '--sub-scale-by-window=yes --sub-scale-by-window=no' "$cur"; return;;
--hr-seek-framedrop=*)_mpv_s '--hr-seek-framedrop=yes --hr-seek-framedrop=no' "$cur"; return;;
--mute=*)_mpv_s '--mute=no --mute=auto --mute=yes' "$cur"; return;;
--sub-fix-timing=*)_mpv_s '--sub-fix-timing=yes --sub-fix-timing=no' "$cur"; return;;
--sub-forced-only=*)_mpv_s '--sub-forced-only=yes --sub-forced-only=no' "$cur"; return;;
--tv-alsa=*)_mpv_s '--tv-alsa=yes --tv-alsa=no' "$cur"; return;;
--list-properties=*)_mpv_s '--list-properties=yes --list-properties=no' "$cur"; return;;
--framedrop=*)_mpv_s '--framedrop=vo --framedrop=no --framedrop=decoder --framedrop=decoder+vo' "$cur"; return;;
--sub-gray=*)_mpv_s '--sub-gray=yes --sub-gray=no' "$cur"; return;;
--jack-connect=*)_mpv_s '--jack-connect=yes --jack-connect=no' "$cur"; return;;
--really-quiet=*)_mpv_s '--really-quiet=yes --really-quiet=no' "$cur"; return;;
--msg-color=*)_mpv_s '--msg-color=yes --msg-color=no' "$cur"; return;;
--hwdec-preload=*)_mpv_s '--hwdec-preload=no --hwdec-preload=auto --hwdec-preload=yes --hwdec-preload=auto-copy --hwdec-preload=vdpau --hwdec-preload=vdpau-copy --hwdec-preload=videotoolbox --hwdec-preload=videotoolbox-copy --hwdec-preload=vaapi --hwdec-preload=vaapi-copy --hwdec-preload=dxva2 --hwdec-preload=dxva2-copy --hwdec-preload=d3d11va --hwdec-preload=d3d11va-copy --hwdec-preload=rpi --hwdec-preload=rpi-copy --hwdec-preload=mediacodec --hwdec-preload=cuda --hwdec-preload=cuda-copy --hwdec-preload=crystalhd' "$cur"; return;;
--sub-italic=*)_mpv_s '--sub-italic=yes --sub-italic=no' "$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;;
--vd-lavc-bitexact=*)_mpv_s '--vd-lavc-bitexact=yes --vd-lavc-bitexact=no' "$cur"; return;;
--force-window-position=*)_mpv_s '--force-window-position=yes --force-window-position=no' "$cur"; return;;
--opengl-dwmflush=*)_mpv_s '--opengl-dwmflush=auto --opengl-dwmflush=no --opengl-dwmflush=windowed --opengl-dwmflush=yes' "$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;;
--ontop=*)_mpv_s '--ontop=yes --ontop=no' "$cur"; return;;
--initial-audio-sync=*)_mpv_s '--initial-audio-sync=yes --initial-audio-sync=no' "$cur"; return;;
--opengl-es=*)_mpv_s '--opengl-es=auto --opengl-es=no --opengl-es=yes' "$cur"; return;;
--ao-pcm-waveheader=*)_mpv_s '--ao-pcm-waveheader=yes --ao-pcm-waveheader=no' "$cur"; return;;
--sub-clear-on-seek=*)_mpv_s '--sub-clear-on-seek=yes --sub-clear-on-seek=no' "$cur"; return;;
--hidpi-window-scale=*)_mpv_s '--hidpi-window-scale=yes --hidpi-window-scale=no' "$cur"; return;;
--correct-downscaling=*)_mpv_s '--correct-downscaling=yes --correct-downscaling=no' "$cur"; return;;
--load-scripts=*)_mpv_s '--load-scripts=yes --load-scripts=no' "$cur"; return;;
--ometadata=*)_mpv_s '--ometadata=yes --ometadata=no' "$cur"; return;;
--audio-normalize-downmix=*)_mpv_s '--audio-normalize-downmix=yes --audio-normalize-downmix=no' "$cur"; return;;
--screenshot-tag-colorspace=*)_mpv_s '--screenshot-tag-colorspace=yes --screenshot-tag-colorspace=no' "$cur"; return;;
--sub-scale-with-window=*)_mpv_s '--sub-scale-with-window=yes --sub-scale-with-window=no' "$cur"; return;;
--audio-stream-silence=*)_mpv_s '--audio-stream-silence=yes --audio-stream-silence=no' "$cur"; return;;
--use-filedir-conf=*)_mpv_s '--use-filedir-conf=yes --use-filedir-conf=no' "$cur"; return;;
--sub-ass-scale-with-window=*)_mpv_s '--sub-ass-scale-with-window=yes --sub-ass-scale-with-window=no' "$cur"; return;;
--xv-ck=*)_mpv_s '--xv-ck=cur --xv-ck=use --xv-ck=set' "$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;;
--dvbin-full-transponder=*)_mpv_s '--dvbin-full-transponder=yes --dvbin-full-transponder=no' "$cur"; return;;
--demuxer-lavf-hacks=*)_mpv_s '--demuxer-lavf-hacks=yes --demuxer-lavf-hacks=no' "$cur"; return;;
--osd-bold=*)_mpv_s '--osd-bold=yes --osd-bold=no' "$cur"; return;;
--sub-use-margins=*)_mpv_s '--sub-use-margins=yes --sub-use-margins=no' "$cur"; return;;
--opengl-debug=*)_mpv_s '--opengl-debug=yes --opengl-debug=no' "$cur"; return;;
--force-rgba-osd-rendering=*)_mpv_s '--force-rgba-osd-rendering=yes --force-rgba-osd-rendering=no' "$cur"; return;;
--video-aspect-method=*)_mpv_s '--video-aspect-method=hybrid --video-aspect-method=bitstream --video-aspect-method=container' "$cur"; return;;
--oneverdrop=*)_mpv_s '--oneverdrop=yes --oneverdrop=no' "$cur"; return;;
--native-keyrepeat=*)_mpv_s '--native-keyrepeat=yes --native-keyrepeat=no' "$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;;
--opengl-pbo=*)_mpv_s '--opengl-pbo=yes --opengl-pbo=no' "$cur"; return;;
--access-references=*)_mpv_s '--access-references=yes --access-references=no' "$cur"; return;;
--correct-pts=*)_mpv_s '--correct-pts=yes --correct-pts=no' "$cur"; return;;
--osd-align-y=*)_mpv_s '--osd-align-y=top --osd-align-y=center --osd-align-y=bottom' "$cur"; return;;
--oautofps=*)_mpv_s '--oautofps=yes --oautofps=no' "$cur"; return;;
--demuxer-thread=*)_mpv_s '--demuxer-thread=yes --demuxer-thread=no' "$cur"; return;;
--ao-null-untimed=*)_mpv_s '--ao-null-untimed=yes --ao-null-untimed=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;;
--sub-ass-hinting=*)_mpv_s '--sub-ass-hinting=none --sub-ass-hinting=light --sub-ass-hinting=normal --sub-ass-hinting=native' "$cur"; return;;
--terminal=*)_mpv_s '--terminal=yes --terminal=no' "$cur"; return;;
--oharddup=*)_mpv_s '--oharddup=yes --oharddup=no' "$cur"; return;;
--field-dominance=*)_mpv_s '--field-dominance=auto --field-dominance=top --field-dominance=bottom' "$cur"; return;;
--interpolation=*)_mpv_s '--interpolation=yes --interpolation=no' "$cur"; return;;
--tls-verify=*)_mpv_s '--tls-verify=yes --tls-verify=no' "$cur"; return;;
--demuxer-lavf-allow-mimetype=*)_mpv_s '--demuxer-lavf-allow-mimetype=yes --demuxer-lavf-allow-mimetype=no' "$cur"; return;;
--loop-file=*)_mpv_s '--loop-file=0 --loop-file=no --loop-file=yes --loop-file=inf' "$cur"; return;;
--merge-files=*)_mpv_s '--merge-files=yes --merge-files=no' "$cur"; return;;
--force-window=*)_mpv_s '--force-window=no --force-window=yes --force-window=immediate' "$cur"; return;;
--opengl-dcomposition=*)_mpv_s '--opengl-dcomposition=yes --opengl-dcomposition=no' "$cur"; return;;
--sub-align-y=*)_mpv_s '--sub-align-y=bottom --sub-align-y=top --sub-align-y=center' "$cur"; return;;
--opengl-dumb-mode=*)_mpv_s '--opengl-dumb-mode=yes --opengl-dumb-mode=no' "$cur"; return;;
--icc-profile-auto=*)_mpv_s '--icc-profile-auto=yes --icc-profile-auto=no' "$cur"; return;;
--alsa-ignore-chmap=*)_mpv_s '--alsa-ignore-chmap=yes --alsa-ignore-chmap=no' "$cur"; return;;
--temporal-dither=*)_mpv_s '--temporal-dither=yes --temporal-dither=no' "$cur"; return;;
--audio-pitch-correction=*)_mpv_s '--audio-pitch-correction=yes --audio-pitch-correction=no' "$cur"; return;;
--stretch-image-subs-to-screen=*)_mpv_s '--stretch-image-subs-to-screen=yes --stretch-image-subs-to-screen=no' "$cur"; return;;
--vo-vdpau-pullup=*)_mpv_s '--vo-vdpau-pullup=yes --vo-vdpau-pullup=no' "$cur"; return;;
--screenshot-high-bit-depth=*)_mpv_s '--screenshot-high-bit-depth=yes --screenshot-high-bit-depth=no' "$cur"; return;;
--tv-mjpeg=*)_mpv_s '--tv-mjpeg=yes --tv-mjpeg=no' "$cur"; return;;
--tv-scan-autostart=*)_mpv_s '--tv-scan-autostart=yes --tv-scan-autostart=no' "$cur"; return;;
--audio-file-auto=*)_mpv_s '--audio-file-auto=exact --audio-file-auto=no --audio-file-auto=fuzzy --audio-file-auto=all' "$cur"; return;;
--alsa-non-interleaved=*)_mpv_s '--alsa-non-interleaved=yes --alsa-non-interleaved=no' "$cur"; return;;
--gapless-audio=*)_mpv_s '--gapless-audio=weak --gapless-audio=no --gapless-audio=yes' "$cur"; return;;
--idle=*)_mpv_s '--idle=no --idle=once --idle=yes' "$cur"; return;;
--vd-lavc-check-hw-profile=*)_mpv_s '--vd-lavc-check-hw-profile=yes --vd-lavc-check-hw-profile=no' "$cur"; return;;
--cache=*)_mpv_s '--cache=32 --cache=auto --cache=no --cache=yes' "$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;;
--video-osd=*)_mpv_s '--video-osd=yes --video-osd=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;;
--ff-aid=*)_mpv_s '--ff-aid=0 --ff-aid=auto --ff-aid=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;;
--loop=*)_mpv_s '--loop=1 --loop=no --loop=inf --loop=yes --loop=force' "$cur"; return;;
--video-unscaled=*)_mpv_s '--video-unscaled=no --video-unscaled=yes --video-unscaled=downscale-big' "$cur"; return;;
--rtsp-transport=*)_mpv_s '--rtsp-transport=tcp --rtsp-transport=lavf --rtsp-transport=udp --rtsp-transport=http' "$cur"; return;;
--cursor-autohide=*)_mpv_s '--cursor-autohide=0 --cursor-autohide=1000 --cursor-autohide=no --cursor-autohide=always' "$cur"; return;;
--sub-ass-force-margins=*)_mpv_s '--sub-ass-force-margins=yes --sub-ass-force-margins=no' "$cur"; return;;
--vo-image-high-bit-depth=*)_mpv_s '--vo-image-high-bit-depth=yes --vo-image-high-bit-depth=no' "$cur"; return;;
--vo-image-tag-colorspace=*)_mpv_s '--vo-image-tag-colorspace=yes --vo-image-tag-colorspace=no' "$cur"; return;;
--vo-tct-256=*)_mpv_s '--vo-tct-256=yes --vo-tct-256=no' "$cur"; return;;
--sub-ass-vsfilter-blur-compat=*)_mpv_s '--sub-ass-vsfilter-blur-compat=yes --sub-ass-vsfilter-blur-compat=no' "$cur"; return;;
--config=*)_mpv_s '--config=yes --config=no' "$cur"; return;;
--save-position-on-quit=*)_mpv_s '--save-position-on-quit=yes --save-position-on-quit=no' "$cur"; return;;
--linear-scaling=*)_mpv_s '--linear-scaling=yes --linear-scaling=no' "$cur"; return;;
--keepaspect-window=*)_mpv_s '--keepaspect-window=yes --keepaspect-window=no' "$cur"; return;;
--audio-fallback-to-null=*)_mpv_s '--audio-fallback-to-null=yes --audio-fallback-to-null=no' "$cur"; return;;
--cursor-autohide-fs-only=*)_mpv_s '--cursor-autohide-fs-only=yes --cursor-autohide-fs-only=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;;
--edition=*)_mpv_s '--edition=0 --edition=auto' "$cur"; return;;
--x11-netwm=*)_mpv_s '--x11-netwm=auto --x11-netwm=no --x11-netwm=yes' "$cur"; return;;
--sub-ass-vsfilter-aspect-compat=*)_mpv_s '--sub-ass-vsfilter-aspect-compat=yes --sub-ass-vsfilter-aspect-compat=no' "$cur"; return;;
--scaler-resizes-only=*)_mpv_s '--scaler-resizes-only=yes --scaler-resizes-only=no' "$cur"; return;;
--tv-audio=*)_mpv_s '--tv-audio=yes --tv-audio=no' "$cur"; return;;
--msg-module=*)_mpv_s '--msg-module=yes --msg-module=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;;
--sid=*)_mpv_s '--sid=0 --sid=auto --sid=no' "$cur"; return;;
--vid=*)_mpv_s '--vid=0 --vid=auto --vid=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;;
--tv-immediatemode=*)_mpv_s '--tv-immediatemode=yes --tv-immediatemode=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;;
--vo-tct-algo=*)_mpv_s '--vo-tct-algo=half-blocks --vo-tct-algo=plain' "$cur"; return;;
--pulse-latency-hacks=*)_mpv_s '--pulse-latency-hacks=yes --pulse-latency-hacks=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;;
--opengl-waitvsync=*)_mpv_s '--opengl-waitvsync=yes --opengl-waitvsync=no' "$cur"; return;;
--opengl-early-flush=*)_mpv_s '--opengl-early-flush=auto --opengl-early-flush=no --opengl-early-flush=yes' "$cur"; return;;
--dither-depth=*)_mpv_s '--dither-depth=-1 --dither-depth=no --dither-depth=auto' "$cur"; return;;
--input-right-alt-gr=*)_mpv_s '--input-right-alt-gr=yes --input-right-alt-gr=no' "$cur"; return;;
--input-vo-keyboard=*)_mpv_s '--input-vo-keyboard=yes --input-vo-keyboard=no' "$cur"; return;;
--keep-open=*)_mpv_s '--keep-open=no --keep-open=yes --keep-open=always' "$cur"; return;;
--ao-pcm-append=*)_mpv_s '--ao-pcm-append=yes --ao-pcm-append=no' "$cur"; return;;
--border=*)_mpv_s '--border=yes --border=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;;
--v=*)_mpv_s '--v=yes --v=no' "$cur"; return;;
--ff-vid=*)_mpv_s '--ff-vid=0 --ff-vid=auto --ff-vid=no' "$cur"; return;;
--deinterlace=*)_mpv_s '--deinterlace=auto --deinterlace=no --deinterlace=yes' "$cur"; return;;
--index=*)_mpv_s '--index=default --index=recreate' "$cur"; return;;
--audio-display=*)_mpv_s '--audio-display=attachment --audio-display=no' "$cur"; return;;
--tv-forceaudio=*)_mpv_s '--tv-forceaudio=yes --tv-forceaudio=no' "$cur"; return;;
--term-osd-bar=*)_mpv_s '--term-osd-bar=yes --term-osd-bar=no' "$cur"; return;;
--audio-exclusive=*)_mpv_s '--audio-exclusive=yes --audio-exclusive=no' "$cur"; return;;
--vo-vdpau-composite-detect=*)_mpv_s '--vo-vdpau-composite-detect=yes --vo-vdpau-composite-detect=no' "$cur"; return;;
--screen=*)_mpv_s '--screen=0 --screen=default' "$cur"; return;;
--vd-lavc-show-all=*)_mpv_s '--vd-lavc-show-all=yes --vd-lavc-show-all=no' "$cur"; return;;
--embeddedfonts=*)_mpv_s '--embeddedfonts=yes --embeddedfonts=no' "$cur"; return;;
--alpha=*)_mpv_s '--alpha=blend-tiles --alpha=no --alpha=yes --alpha=blend' "$cur"; return;;
--ao-null-broken-eof=*)_mpv_s '--ao-null-broken-eof=yes --ao-null-broken-eof=no' "$cur"; return;;
--force-seekable=*)_mpv_s '--force-seekable=yes --force-seekable=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;;
--ovfirst=*)_mpv_s '--ovfirst=yes --ovfirst=no' "$cur"; return;;
--secondary-sid=*)_mpv_s '--secondary-sid=0 --secondary-sid=no --secondary-sid=auto' "$cur"; return;;
--input-test=*)_mpv_s '--input-test=yes --input-test=no' "$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;;
--vo-vdpau-chroma-deint=*)_mpv_s '--vo-vdpau-chroma-deint=yes --vo-vdpau-chroma-deint=no' "$cur"; return;;
--aid=*)_mpv_s '--aid=0 --aid=auto --aid=no' "$cur"; return;;
--list-options=*)_mpv_s '--list-options=yes --list-options=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;;
--osd-level=*)_mpv_s '--osd-level=1 --osd-level=0 --osd-level=2 --osd-level=3' "$cur"; return;;
--opengl-sw=*)_mpv_s '--opengl-sw=yes --opengl-sw=no' "$cur"; return;;
esac; fi
if [[ -n $prev && ( $cur =~ , || $cur =~ : ) ]]; then case "$prev" in
--vf-clr)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi 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 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 drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--vf-toggle)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi 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 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 openal null pcm)" "$cur";return;;
--af)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--vf-add)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--af-set)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--vf-pre)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
--af-defaults)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--vo)_mpv_s "$(_mpv_objarg "$prev" "$cur" opengl vdpau xv vaapi x11 null image tct caca drm)" "$cur";return;;
--af-del)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--af-clr)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--af-toggle)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--af-add)_mpv_s "$(_mpv_objarg "$prev" "$cur" channels format volume equalizer pan drc lavcac3enc lavrresample scaletempo lavfi)" "$cur";return;;
--vf-set)_mpv_s "$(_mpv_objarg "$prev" "$cur" crop expand scale format noformat flip mirror lavfi 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 rotate gradfun pullup yadif stereo3d eq dsize sub buffer dlopen vavpp vdpaupp)" "$cur";return;;
esac; fi
if [[ -n $prev ]]; then case "$prev" in
--playlist|--external-file|--audio-file|--input-ipc-server|--cache-file|--bluray-device|--input-conf|--input-file|--log-file|--dvd-device|--dvbin-file|--stream-dump|--ordered-chapters-files|--tls-cert-file|--tls-key-file|--cdrom-device|--tls-ca-file|--sub-file|--sub-ass-styles|--cookies-file|--stream-capture|--chapters-file|--script|--include)_filedir;return;;
--vo-image-outdir|--config-dir|--icc-cache-dir|--watch-later-directory|--screenshot-directory)_filedir -d;return;;
--tv-automute)_mpv_s '0 255' "$cur"; return;;
--vo-null-fps)_mpv_s '0 10000' "$cur"; return;;
--sigmoid-center)_mpv_s '0 0.75 1' "$cur"; return;;
--sigmoid-slope)_mpv_s '1 20 6.5' "$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;;
--af-clr)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--tv-normid)_mpv_s '-1' "$cur"; return;;
--demuxer-rawvideo-w)_mpv_s '1 1280 8192' "$cur"; return;;
--vf-add)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--opengl-tex-pad-x)_mpv_s '0 4096' "$cur"; return;;
--alsa-mixer-device)_mpv_s 'default' "$cur"; return;;
--video-sync-adrop-size)_mpv_s '0 0.02 1' "$cur"; return;;
--cache-file-size)_mpv_s '0 1048576 2147483647' "$cur"; return;;
--ao-null-channel-layouts)_mpv_s '' "$cur"; return;;
--osd-playing-msg)_mpv_s '' "$cur"; return;;
--sub-speed)_mpv_s '1' "$cur"; return;;
--vo-vdpau-queuetime-windowed)_mpv_s '50' "$cur"; return;;
--af-add)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--vo-image-jpeg-smooth)_mpv_s '0 100' "$cur"; return;;
--tv-volume)_mpv_s '-1 0 65535' "$cur"; return;;
--osd-spacing)_mpv_s '-10 0 10' "$cur"; return;;
--profile)_mpv_s 'builtin-pseudo-gui default encoding libmpv opengl-hq pseudo-gui' "$cur"; return;;
--vo-tct-height)_mpv_s '0' "$cur"; return;;
--video-zoom)_mpv_s '-20 0 20' "$cur"; return;;
--tscale-wparam)_mpv_s 'nan' "$cur"; return;;
--tscale-param2)_mpv_s 'nan' "$cur"; return;;
--demuxer-rawaudio-rate)_mpv_s '1000 384000 44100' "$cur"; return;;
--alang)_mpv_s '' "$cur"; return;;
--icc-contrast)_mpv_s '0 100000' "$cur"; return;;
--osd-margin-x)_mpv_s '0 25 300' "$cur"; return;;
--sub-margin-x)_mpv_s '0 25 300' "$cur"; return;;
--demuxer-rawvideo-h)_mpv_s '1 720 8192' "$cur"; return;;
--tv-driver)_mpv_s '' "$cur"; return;;
--vf-defaults)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--sub-ass-line-spacing)_mpv_s '-1000 0 1000' "$cur"; return;;
--ovcopts*)_mpv_s '' "$cur"; return;;
--deband-iterations)_mpv_s '1 16' "$cur"; return;;
--tscale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--demuxer-rawvideo-size)_mpv_s '0 1 268435456' "$cur"; return;;
--scale-param1)_mpv_s 'nan' "$cur"; return;;
--length)_mpv_s '-60 50% 60' "$cur"; return;;
--volume)_mpv_s '-1 100 1000' "$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;;
--cscale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--dscale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--opengl-backend)_mpv_s 'auto x11 x11probe' "$cur"; return;;
--scaler-lut-size)_mpv_s '10 4 6' "$cur"; return;;
--osd-status-msg)_mpv_s '' "$cur"; return;;
--sws-ls)_mpv_s '-100 0 100' "$cur"; return;;
--ovc)_mpv_s '' "$cur"; return;;
--display-tags*)_mpv_s 'Artist,Album,Album_Artist,Comment,Composer,Genre,Performer,Title,Track,icy-title,service_name' "$cur"; return;;
--cdda-speed)_mpv_s '0 1 100' "$cur"; return;;
--ao-null-buffer)_mpv_s '0 0.2 100' "$cur"; return;;
--sws-chs)_mpv_s '0' "$cur"; return;;
--video-align-x)_mpv_s '-1 0 1' "$cur"; return;;
--contrast)_mpv_s '-100 0 100' "$cur"; return;;
--tv-channels)_mpv_s '' "$cur"; return;;
--drm-mode)_mpv_s '0' "$cur"; return;;
--osd-bar-w)_mpv_s '1 100 75' "$cur"; return;;
--audio-format)_mpv_s '' "$cur"; return;;
--dvd-speed)_mpv_s '0' "$cur"; return;;
--sws-cvs)_mpv_s '0' "$cur"; return;;
--opengl-gamma)_mpv_s '0.1 1 2' "$cur"; return;;
--vf-del)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--video-sync-max-audio-change)_mpv_s '0 0.125 1' "$cur"; return;;
--tscale-antiring)_mpv_s '0 1' "$cur"; return;;
--scale-antiring)_mpv_s '0 1' "$cur"; return;;
--tone-mapping-param)_mpv_s 'nan' "$cur"; return;;
--deband-grain)_mpv_s '0 4096 48' "$cur"; return;;
--oss-mixer-channel)_mpv_s '' "$cur"; return;;
--dvd-angle)_mpv_s '1 99' "$cur"; return;;
--fps)_mpv_s '0' "$cur"; return;;
--video-align-y)_mpv_s '-1 0 1' "$cur"; return;;
--dscale-wtaper)_mpv_s '0 1' "$cur"; return;;
--deband-threshold)_mpv_s '0 4096 64' "$cur"; return;;
--dscale-antiring)_mpv_s '0 1' "$cur"; return;;
--sub-demuxer)_mpv_s '' "$cur"; return;;
--xv-adaptor)_mpv_s '-1' "$cur"; return;;
--sub-delay)_mpv_s '0' "$cur"; return;;
--sub-pos)_mpv_s '0 100' "$cur"; return;;
--tv-treble)_mpv_s '-1 0 65535' "$cur"; return;;
--alsa-mixer-index)_mpv_s '0 99' "$cur"; return;;
--oss-mixer-device)_mpv_s '/dev/mixer' "$cur"; return;;
--demuxer-rawvideo-codec)_mpv_s '' "$cur"; return;;
--cdda-overlap)_mpv_s '-1 0 75' "$cur"; return;;
--sub-border-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--osd-border-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--jack-port)_mpv_s '' "$cur"; return;;
--scale-blur)_mpv_s '0' "$cur"; return;;
--sstep)_mpv_s '0' "$cur"; return;;
--video-pan-y)_mpv_s '-3 0 3' "$cur"; return;;
--term-status-msg)_mpv_s '' "$cur"; return;;
--tv-device)_mpv_s '' "$cur"; return;;
--chapter-seek-threshold)_mpv_s '5' "$cur"; return;;
--demuxer-mkv-subtitle-preroll-secs-index)_mpv_s '10' "$cur"; return;;
--dvbin-prog)_mpv_s '' "$cur"; return;;
--vf)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--cscale-param2)_mpv_s 'nan' "$cur"; return;;
--ytdl-format)_mpv_s '' "$cur"; return;;
--ofopts*)_mpv_s '' "$cur"; return;;
--demuxer-lavf-format)_mpv_s '' "$cur"; return;;
--opengl-tex-pad-y)_mpv_s '0 4096' "$cur"; return;;
--sub-gauss)_mpv_s '0 3' "$cur"; return;;
--opengl-shaders)_mpv_s '' "$cur"; return;;
--osd-msg3)_mpv_s '' "$cur"; return;;
--demuxer-rawvideo-format)_mpv_s 'I420 UYVY YUY2 YV12 other' "$cur"; return;;
--teletext-page)_mpv_s '1 100 999' "$cur"; return;;
--of)_mpv_s '' "$cur"; return;;
--sub-border-size)_mpv_s '0 10 3' "$cur"; return;;
--end)_mpv_s '-60 50% 60' "$cur"; return;;
--tv-gain)_mpv_s '-1 100' "$cur"; return;;
--demuxer-lavf-probescore)_mpv_s '1 100 26' "$cur"; return;;
--tv-brightness)_mpv_s '-100 0 100' "$cur"; return;;
--screenshot-template)_mpv_s 'mpv-shot%n' "$cur"; return;;
--af)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--o)_mpv_s '' "$cur"; return;;
--scale-param2)_mpv_s 'nan' "$cur"; return;;
--vo-image-png-compression)_mpv_s '0 7 9' "$cur"; return;;
--af-del)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--tv-decimation)_mpv_s '1 2 4' "$cur"; return;;
--ao-null-latency)_mpv_s '0 100' "$cur"; return;;
--ovoffset)_mpv_s '-1000000 0 1000000' "$cur"; return;;
--video-sync-max-video-change)_mpv_s '1' "$cur"; return;;
--ab-loop-b)_mpv_s '00:00:00' "$cur"; return;;
--demuxer-lavf-analyzeduration)_mpv_s '0 3600' "$cur"; return;;
--tv-saturation)_mpv_s '-100 0 100' "$cur"; return;;
--vd-lavc-threads)_mpv_s '0' "$cur"; return;;
--dscale-blur)_mpv_s '0' "$cur"; return;;
--cscale-blur)_mpv_s '0' "$cur"; return;;
--video-pan-x)_mpv_s '-3 0 3' "$cur"; return;;
--user-agent)_mpv_s 'mpv 3.3.8' "$cur"; return;;
--osd-bar-align-x)_mpv_s '-1 0 1' "$cur"; return;;
--osd-back-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--tv-audiorate)_mpv_s '44100' "$cur"; return;;
--vo-vdpau-denoise)_mpv_s '0 1' "$cur"; return;;
--demuxer-readahead-secs)_mpv_s '1' "$cur"; return;;
--tv-quality)_mpv_s '0 100 90' "$cur"; return;;
--cdda-span)_mpv_s 'j-k' "$cur"; return;;
--tscale-blur)_mpv_s '0' "$cur"; return;;
--tv-hue)_mpv_s '-100 0 100' "$cur"; return;;
--audio-file-paths)_mpv_s '' "$cur"; return;;
--brightness)_mpv_s '-100 0 100' "$cur"; return;;
--vo-vdpau-sharpen)_mpv_s '-1 0 1' "$cur"; return;;
--sub-scale)_mpv_s '0 1 100' "$cur"; return;;
--sharpen)_mpv_s '0' "$cur"; return;;
--tv-scan-threshold)_mpv_s '1 100 50' "$cur"; return;;
--saturation)_mpv_s '-100 0 100' "$cur"; return;;
--af-pre)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--vo-vdpau-deint)_mpv_s '-4 0 4' "$cur"; return;;
--temporal-dither-period)_mpv_s '1 128' "$cur"; return;;
--tscale)_mpv_s 'mitchell' "$cur"; return;;
--sws-lgb)_mpv_s '0 100' "$cur"; return;;
--mc)_mpv_s '-1 0 100' "$cur"; return;;
--cdda-toc-offset)_mpv_s '0' "$cur"; return;;
--sub-fps)_mpv_s '0' "$cur"; return;;
--vo-image-png-filter)_mpv_s '0 5' "$cur"; return;;
--dscale-taper)_mpv_s '0 1' "$cur"; return;;
--cscale-taper)_mpv_s '0 1' "$cur"; return;;
--term-playing-msg)_mpv_s '' "$cur"; return;;
--audio-spdif)_mpv_s '' "$cur"; return;;
--window-scale)_mpv_s '0.001 1 100' "$cur"; return;;
--osd-border-size)_mpv_s '0 10 3' "$cur"; return;;
--dump-stats)_mpv_s '' "$cur"; return;;
--demuxer-lavf-probesize)_mpv_s '0 2147483647 32' "$cur"; return;;
--audio-client-name)_mpv_s 'mpv' "$cur"; return;;
--hwdec-codecs)_mpv_s 'h264,vc1,wmv3,hevc,mpeg2video,vp9' "$cur"; return;;
--dscale-param2)_mpv_s 'nan' "$cur"; return;;
--volume-max)_mpv_s '100 1000 130' "$cur"; return;;
--tv-balance)_mpv_s '-1 0 65535' "$cur"; return;;
--ad-lavc-threads)_mpv_s '0 1 16' "$cur"; return;;
--panscan)_mpv_s '0 1' "$cur"; return;;
--cscale-wblur)_mpv_s '0' "$cur"; return;;
--input-ar-rate)_mpv_s '40' "$cur"; return;;
--scale-window)_mpv_s '' "$cur"; return;;
--af-set)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--osd-font)_mpv_s 'sans-serif' "$cur"; return;;
--vo-image-format)_mpv_s 'jpg' "$cur"; return;;
--osd-msg1)_mpv_s '' "$cur"; return;;
--dscale)_mpv_s '' "$cur"; return;;
--lavfi-complex)_mpv_s '' "$cur"; return;;
--ad-lavc-o)_mpv_s '' "$cur"; return;;
--osd-scale)_mpv_s '0 1 100' "$cur"; return;;
--input-key-fifo-size)_mpv_s '2 65000 7' "$cur"; return;;
--alsa-mixer-name)_mpv_s 'Master' "$cur"; return;;
--cscale)_mpv_s 'bilinear' "$cur"; return;;
--audio-samplerate)_mpv_s '0 1000 768000' "$cur"; return;;
--title)_mpv_s '${?media-title:${media-title}}${!media-title:No file} - mpv' "$cur"; return;;
--show-profile)_mpv_s '' "$cur"; return;;
--vo-vdpau-queuetime-fs)_mpv_s '50' "$cur"; return;;
--image-display-duration)_mpv_s '1' "$cur"; return;;
--tscale-wblur)_mpv_s '0' "$cur"; return;;
--scale-wtaper)_mpv_s '0 1' "$cur"; return;;
--hr-seek-demuxer-offset)_mpv_s '0' "$cur"; return;;
--chapter-merge-threshold)_mpv_s '0 100 10000' "$cur"; return;;
--tv-scan-period)_mpv_s '0.1 0.5 2' "$cur"; return;;
--speed)_mpv_s '0.01 1 100' "$cur"; return;;
--tv-adevice)_mpv_s '' "$cur"; return;;
--ad-lavc-ac3drc)_mpv_s '0 6' "$cur"; return;;
--gamma)_mpv_s '-100 0 100' "$cur"; return;;
--dvbin-timeout)_mpv_s '1 30' "$cur"; return;;
--scale)_mpv_s 'bilinear' "$cur"; return;;
--vd-lavc-o)_mpv_s '' "$cur"; return;;
--scale-wblur)_mpv_s '0' "$cur"; return;;
--screenshot-format)_mpv_s 'jpg' "$cur"; return;;
--cache-initial)_mpv_s '0 2147483647' "$cur"; return;;
--background)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--icc-profile)_mpv_s '' "$cur"; return;;
--vd)_mpv_s '' "$cur"; return;;
--audio-device)_mpv_s 'auto' "$cur"; return;;
--ao-pcm-file)_mpv_s '' "$cur"; return;;
--vo-vdpau-fps)_mpv_s '0' "$cur"; return;;
--tv-outfmt)_mpv_s 'I420 UYVY YUY2 YV12 other' "$cur"; return;;
--heartbeat-interval)_mpv_s '30' "$cur"; return;;
--interpolation-threshold)_mpv_s '0.0001' "$cur"; return;;
--sub-ass-force-style)_mpv_s '' "$cur"; return;;
--x11-name)_mpv_s '' "$cur"; return;;
--ytdl-raw-options)_mpv_s '' "$cur"; return;;
--tv-norm)_mpv_s 'pal' "$cur"; return;;
--audio-buffer)_mpv_s '0 0.2 10' "$cur"; return;;
--start)_mpv_s '-60 50% 60' "$cur"; return;;
--xv-colorkey)_mpv_s '65280' "$cur"; return;;
--force-media-title)_mpv_s '' "$cur"; return;;
--tv-channel)_mpv_s '' "$cur"; return;;
--dscale-window)_mpv_s '' "$cur"; return;;
--cscale-window)_mpv_s '' "$cur"; return;;
--script-opts)_mpv_s '' "$cur"; return;;
--osd-shadow-offset)_mpv_s '0 10' "$cur"; return;;
--demuxer-lavf-o)_mpv_s '' "$cur"; return;;
--sub-codepage)_mpv_s 'auto' "$cur"; return;;
--referrer)_mpv_s '' "$cur"; return;;
--vf-toggle)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--tv-chanlist)_mpv_s 'europe-east' "$cur"; return;;
--audio-demuxer)_mpv_s '' "$cur"; return;;
--ab-loop-a)_mpv_s '00:00:00' "$cur"; return;;
--reset-on-next-file)_mpv_s '' "$cur"; return;;
--slang)_mpv_s '' "$cur"; return;;
--term-osd-bar-chars)_mpv_s '[-+-]' "$cur"; return;;
--ad)_mpv_s '' "$cur"; return;;
--demuxer)_mpv_s '' "$cur"; return;;
--tscale-window)_mpv_s '' "$cur"; return;;
--demuxer-rawvideo-fps)_mpv_s '0.001 1000 25' "$cur"; return;;
--icc-3dlut-size)_mpv_s '64x64x64' "$cur"; return;;
--pulse-host)_mpv_s '' "$cur"; return;;
--dither-size-fruit)_mpv_s '2 6 8' "$cur"; return;;
--oac)_mpv_s '' "$cur"; return;;
--demuxer-lavf-cryptokey)_mpv_s '' "$cur"; return;;
--sub-font)_mpv_s 'sans-serif' "$cur"; return;;
--jack-name)_mpv_s 'mpv' "$cur"; return;;
--osd-shadow-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--opengl-check-pattern)_mpv_s 'j-k' "$cur"; return;;
--tv-buffersize)_mpv_s '-1 1024 16' "$cur"; return;;
--sub-back-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--sub-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--tv-audioid)_mpv_s '0 9' "$cur"; return;;
--demuxer-max-packets)_mpv_s '0 16000 2147483647' "$cur"; return;;
--ao-null-speed)_mpv_s '0 1 10000' "$cur"; return;;
--ao-null-outburst)_mpv_s '1 100000 256' "$cur"; return;;
--network-timeout)_mpv_s '0' "$cur"; return;;
--icc-intent)_mpv_s '1' "$cur"; return;;
--xv-port)_mpv_s '0' "$cur"; return;;
--dvbin-card)_mpv_s '1 4' "$cur"; return;;
--mf-fps)_mpv_s '1' "$cur"; return;;
--input-ar-delay)_mpv_s '200' "$cur"; return;;
--cache-backbuffer)_mpv_s '0 2147483647 75000' "$cur"; return;;
--sub-blur)_mpv_s '0 20' "$cur"; return;;
--tv-input)_mpv_s '0' "$cur"; return;;
--sub-shadow-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--cache-secs)_mpv_s '10' "$cur"; return;;
--tv-fps)_mpv_s '-1' "$cur"; return;;
--vo-vdpau-colorkey)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--input-doubleclick-time)_mpv_s '0 1000 300' "$cur"; return;;
--oaoffset)_mpv_s '-1000000 0 1000000' "$cur"; return;;
--opengl-vsync-fences)_mpv_s '0 10' "$cur"; return;;
--osd-color)_mpv_s '#ffffff 1.0/1.0/1.0/1.0' "$cur"; return;;
--mf-type)_mpv_s '' "$cur"; return;;
--osd-font-size)_mpv_s '1 55 9000' "$cur"; return;;
--audio-delay)_mpv_s '0' "$cur"; return;;
--sws-cgb)_mpv_s '0 100' "$cur"; return;;
--vo)_mpv_s 'caca drm image null opengl tct vaapi vdpau x11 xv' "$cur"; return;;
--audio-channels)_mpv_s '' "$cur"; return;;
--demuxer-rawaudio-channels)_mpv_s 'stereo' "$cur"; return;;
--demuxer-lavf-buffersize)_mpv_s '1 10485760 32768' "$cur"; return;;
--cdda-paranoia)_mpv_s '0 2' "$cur"; return;;
--screenshot-jpeg-quality)_mpv_s '0 100 90' "$cur"; return;;
--cache-seek-min)_mpv_s '0 2147483647 500' "$cur"; return;;
--tv-width)_mpv_s '-1 0 4096' "$cur"; return;;
--vo-vdpau-output-surfaces)_mpv_s '15 2 3' "$cur"; return;;
--cdda-sector-size)_mpv_s '0 1 100' "$cur"; return;;
--xv-buffers)_mpv_s '1 10 2' "$cur"; return;;
--af-defaults)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--monitorpixelaspect)_mpv_s '0.2 1 9' "$cur"; return;;
--cscale-wparam)_mpv_s 'nan' "$cur"; return;;
--dscale-wparam)_mpv_s 'nan' "$cur"; return;;
--osd-bar-h)_mpv_s '0.1 3.125 50' "$cur"; return;;
--sub-shadow-offset)_mpv_s '0 10' "$cur"; return;;
--osd-msg2)_mpv_s '' "$cur"; return;;
--cdda-toc-bias)_mpv_s '0' "$cur"; return;;
--dscale-wblur)_mpv_s '0' "$cur"; return;;
--osd-margin-y)_mpv_s '0 22 600' "$cur"; return;;
--opengl-swapinterval)_mpv_s '1' "$cur"; return;;
--omaxfps)_mpv_s '0 1000000' "$cur"; return;;
--tscale-param1)_mpv_s 'nan' "$cur"; return;;
--vf-set)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--scale-taper)_mpv_s '0 1' "$cur"; return;;
--wid)_mpv_s '-1' "$cur"; return;;
--demuxer-max-bytes)_mpv_s '0 2147483647 419430400' "$cur"; return;;
--vf-pre)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--hue)_mpv_s '-100 0 100' "$cur"; return;;
--vo-tct-width)_mpv_s '0' "$cur"; return;;
--screenshot-jpeg-smooth)_mpv_s '0 100' "$cur"; return;;
--vo-vdpau-hqscaling)_mpv_s '0 9' "$cur"; return;;
--ofps)_mpv_s '0 1000000' "$cur"; return;;
--cscale-antiring)_mpv_s '0 1' "$cur"; return;;
--cscale-wtaper)_mpv_s '0 1' "$cur"; return;;
--drm-connector)_mpv_s '' "$cur"; return;;
--scale-radius)_mpv_s '0 0.5 16' "$cur"; return;;
--display-fps)_mpv_s '0' "$cur"; return;;
--dscale-param1)_mpv_s 'nan' "$cur"; return;;
--cscale-param1)_mpv_s 'nan' "$cur"; return;;
--osd-blur)_mpv_s '0 20' "$cur"; return;;
--screenshot-png-compression)_mpv_s '0 7 9' "$cur"; return;;
--vo-image-jpeg-quality)_mpv_s '0 100 90' "$cur"; return;;
--screenshot-png-filter)_mpv_s '0 5' "$cur"; return;;
--vf-clr)_mpv_s 'buffer crop dlopen dsize eq expand flip format gradfun lavfi mirror noformat pullup rotate scale stereo3d sub vavpp vdpaupp yadif' "$cur"; return;;
--http-header-fields)_mpv_s '' "$cur"; return;;
--tv-amode)_mpv_s '-1 0 3' "$cur"; return;;
--tv-bass)_mpv_s '-1 0 65535' "$cur"; return;;
--demuxer-mkv-subtitle-preroll-secs)_mpv_s '1' "$cur"; return;;
--tscale-wtaper)_mpv_s '0 1' "$cur"; return;;
--osd-bar-align-y)_mpv_s '-1 0.5 1' "$cur"; return;;
--stream-lavf-o)_mpv_s '' "$cur"; return;;
--sub-font-size)_mpv_s '1 55 9000' "$cur"; return;;
--balance)_mpv_s '-1 0 1' "$cur"; return;;
--sub-margin-y)_mpv_s '0 22 600' "$cur"; return;;
--audio-wait-open)_mpv_s '0 60' "$cur"; return;;
--sub-spacing)_mpv_s '-10 0 10' "$cur"; return;;
--osd-duration)_mpv_s '0 1000 3600000' "$cur"; return;;
--deband-range)_mpv_s '1 16 64' "$cur"; return;;
--sws-cs)_mpv_s '-100 0 100' "$cur"; return;;
--tv-contrast)_mpv_s '-100 0 100' "$cur"; return;;
--monitoraspect)_mpv_s '0 9' "$cur"; return;;
--ao)_mpv_s 'alsa jack null openal oss pcm pulse' "$cur"; return;;
--tv-freq)_mpv_s '0' "$cur"; return;;
--scale-wparam)_mpv_s 'nan' "$cur"; return;;
--tscale-taper)_mpv_s '0 1' "$cur"; return;;
--af-toggle)_mpv_s 'channels drc equalizer format lavcac3enc lavfi lavrresample pan scaletempo volume' "$cur"; return;;
--oacopts*)_mpv_s '' "$cur"; return;;
--sub-paths)_mpv_s '' "$cur"; return;;
--tv-height)_mpv_s '-1 0 4096' "$cur"; return;;
--target-brightness)_mpv_s '1 100000 250' "$cur"; return;;
--tv-forcechan)_mpv_s '-1 1 2' "$cur"; return;;
--geometry)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
--autofit)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
--autofit-larger)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
--autofit-smaller)_mpv_s "$(_mpv_xrandr)" "$cur";return;;
esac; fi
if [[ $cur =~ ^- ]]; then
_mpv_s '--alsa-resample= --vd-lavc-fast= --screenshot-jpeg-source-chroma= --on-all-workspaces= --deband= --demuxer-lavf-genpts-mode= --oafirst= --ao-null-broken-delay= --taskbar-progress= --fit-border= --vo-vaapi-scaling= --load-unsafe-playlists= --ytdl= --vo-vdpau-force-yuv= --demuxer-mkv-probe-start-time= --gamma-auto= --autoload-files= --autosync= --stop-screensaver= --dither= --msg-time= --opengl-glfinish= --sub-ass= --input-terminal= --window-dragging= --stop-playback-on-init-failure= --fullscreen= --orawts= --shuffle= --cscale-clamp= --hdr-tone-mapping= --dscale-clamp= --blend-subtitles= --player-operation-mode= --jack-std-channel-layout= --cdda-cdtext= --target-trc= --pulse-buffer= --cookies= --osd-align-x= --osd-bar= --keepaspect= --osc= --sub-align-x= --tscale-clamp= --jack-autostart= --xv-ck-method= --playlist-start= --scale-clamp= --frames= --rebase-start-time= --osd-scale-by-window= --osd-italic= --video-stereo-mode= --hr-seek= --ff-sid= --hls-bitrate= --opengl-rectangle-textures= --vo-image-jpeg-source-chroma= --video-output-levels= --osd-fractions= --resume-playback= --input-cursor= --term-osd= --stretch-dvd-subs= --sigmoid-upscaling= --demuxer-rawaudio-format= --input-default-bindings= --ocopyts= --sub-ass-shaper= --video-rotate= --sub-bold= --pause= --cache-pause= --quiet= --sub-visibility= --cache-default= --untimed= --ordered-chapters= --cdda-skip= --sub-auto= --ad-lavc-downmix= --vo-vaapi-scaled-osd= --fs-screen= --sub-scale-by-window= --hr-seek-framedrop= --mute= --sub-fix-timing= --sub-forced-only= --tv-alsa= --list-properties= --framedrop= --sub-gray= --jack-connect= --really-quiet= --msg-color= --hwdec-preload= --sub-italic= --vd-lavc-skipframe= --vd-lavc-bitexact= --force-window-position= --opengl-dwmflush= --vd-lavc-skiploopfilter= --ontop= --initial-audio-sync= --opengl-es= --ao-pcm-waveheader= --sub-clear-on-seek= --hidpi-window-scale= --correct-downscaling= --load-scripts= --ometadata= --audio-normalize-downmix= --screenshot-tag-colorspace= --sub-scale-with-window= --audio-stream-silence= --use-filedir-conf= --sub-ass-scale-with-window= --xv-ck= --hwdec= --dvbin-full-transponder= --demuxer-lavf-hacks= --osd-bold= --sub-use-margins= --opengl-debug= --force-rgba-osd-rendering= --video-aspect-method= --oneverdrop= --native-keyrepeat= --vd-lavc-skipidct= --opengl-pbo= --access-references= --correct-pts= --osd-align-y= --oautofps= --demuxer-thread= --ao-null-untimed= --video-sync= --sub-ass-hinting= --terminal= --oharddup= --field-dominance= --interpolation= --tls-verify= --demuxer-lavf-allow-mimetype= --loop-file= --merge-files= --force-window= --opengl-dcomposition= --sub-align-y= --opengl-dumb-mode= --icc-profile-auto= --alsa-ignore-chmap= --temporal-dither= --audio-pitch-correction= --stretch-image-subs-to-screen= --vo-vdpau-pullup= --screenshot-high-bit-depth= --tv-mjpeg= --tv-scan-autostart= --audio-file-auto= --alsa-non-interleaved= --gapless-audio= --idle= --vd-lavc-check-hw-profile= --cache= --sub-ass-vsfilter-color-compat= --video-osd= --opengl-fbo-format= --ff-aid= --vd-lavc-framedrop= --loop= --video-unscaled= --rtsp-transport= --cursor-autohide= --sub-ass-force-margins= --vo-image-high-bit-depth= --vo-image-tag-colorspace= --vo-tct-256= --sub-ass-vsfilter-blur-compat= --config= --save-position-on-quit= --linear-scaling= --keepaspect-window= --audio-fallback-to-null= --cursor-autohide-fs-only= --demuxer-mkv-subtitle-preroll= --edition= --x11-netwm= --sub-ass-vsfilter-aspect-compat= --scaler-resizes-only= --tv-audio= --msg-module= --sws-scaler= --sid= --vid= --target-prim= --tv-immediatemode= --sub-ass-style-override= --vo-tct-algo= --pulse-latency-hacks= --ignore-path-in-watch-later-config= --opengl-waitvsync= --opengl-early-flush= --dither-depth= --input-right-alt-gr= --input-vo-keyboard= --keep-open= --ao-pcm-append= --border= --demuxer-mkv-probe-video-duration= --v= --ff-vid= --deinterlace= --index= --audio-display= --tv-forceaudio= --term-osd-bar= --audio-exclusive= --vo-vdpau-composite-detect= --screen= --vd-lavc-show-all= --embeddedfonts= --alpha= --ao-null-broken-eof= --force-seekable= --x11-bypass-compositor= --ovfirst= --secondary-sid= --input-test= --vd-lavc-software-fallback= --vo-vdpau-chroma-deint= --aid= --list-options= --write-filename-in-watch-later-config= --osd-level= --opengl-sw= --playlist --external-file --audio-file --input-ipc-server --cache-file --bluray-device --input-conf --input-file --log-file --dvd-device --dvbin-file --stream-dump --ordered-chapters-files --tls-cert-file --tls-key-file --cdrom-device --tls-ca-file --sub-file --sub-ass-styles --cookies-file --stream-capture --chapters-file --script --include --vo-image-outdir --config-dir --icc-cache-dir --watch-later-directory --screenshot-directory --tv-automute --vo-null-fps --sigmoid-center --sigmoid-slope --msg-level --af-clr --tv-normid --demuxer-rawvideo-w --vf-add --opengl-tex-pad-x --alsa-mixer-device --video-sync-adrop-size --cache-file-size --ao-null-channel-layouts --osd-playing-msg --sub-speed --vo-vdpau-queuetime-windowed --af-add --vo-image-jpeg-smooth --tv-volume --osd-spacing --profile --vo-tct-height --video-zoom --tscale-wparam --tscale-param2 --demuxer-rawaudio-rate --alang --icc-contrast --osd-margin-x --sub-margin-x --demuxer-rawvideo-h --tv-driver --vf-defaults --sub-ass-line-spacing --ovcopts* --deband-iterations --tscale-radius --demuxer-rawvideo-size --scale-param1 --length --volume --demuxer-rawvideo-mp-format --cscale-radius --dscale-radius --opengl-backend --scaler-lut-size --osd-status-msg --sws-ls --ovc --display-tags* --cdda-speed --ao-null-buffer --sws-chs --video-align-x --contrast --tv-channels --drm-mode --osd-bar-w --audio-format --dvd-speed --sws-cvs --opengl-gamma --vf-del --video-sync-max-audio-change --tscale-antiring --scale-antiring --tone-mapping-param --deband-grain --oss-mixer-channel --dvd-angle --fps --video-align-y --dscale-wtaper --deband-threshold --dscale-antiring --sub-demuxer --xv-adaptor --sub-delay --sub-pos --tv-treble --alsa-mixer-index --oss-mixer-device --demuxer-rawvideo-codec --cdda-overlap --sub-border-color --osd-border-color --jack-port --scale-blur --sstep --video-pan-y --term-status-msg --tv-device --chapter-seek-threshold --demuxer-mkv-subtitle-preroll-secs-index --dvbin-prog --vf --cscale-param2 --ytdl-format --ofopts* --demuxer-lavf-format --opengl-tex-pad-y --sub-gauss --opengl-shaders --osd-msg3 --demuxer-rawvideo-format --teletext-page --of --sub-border-size --end --tv-gain --demuxer-lavf-probescore --tv-brightness --screenshot-template --af --o --scale-param2 --vo-image-png-compression --af-del --tv-decimation --ao-null-latency --ovoffset --video-sync-max-video-change --ab-loop-b --demuxer-lavf-analyzeduration --tv-saturation --vd-lavc-threads --dscale-blur --cscale-blur --video-pan-x --user-agent --osd-bar-align-x --osd-back-color --tv-audiorate --vo-vdpau-denoise --demuxer-readahead-secs --tv-quality --cdda-span --tscale-blur --tv-hue --audio-file-paths --brightness --vo-vdpau-sharpen --sub-scale --sharpen --tv-scan-threshold --saturation --af-pre --vo-vdpau-deint --temporal-dither-period --tscale --sws-lgb --mc --cdda-toc-offset --sub-fps --vo-image-png-filter --dscale-taper --cscale-taper --term-playing-msg --audio-spdif --window-scale --osd-border-size --dump-stats --demuxer-lavf-probesize --audio-client-name --hwdec-codecs --dscale-param2 --volume-max --tv-balance --ad-lavc-threads --panscan --cscale-wblur --input-ar-rate --scale-window --af-set --osd-font --vo-image-format --osd-msg1 --dscale --lavfi-complex --ad-lavc-o --osd-scale --input-key-fifo-size --alsa-mixer-name --cscale --audio-samplerate --title --show-profile --vo-vdpau-queuetime-fs --image-display-duration --tscale-wblur --scale-wtaper --hr-seek-demuxer-offset --chapter-merge-threshold --tv-scan-period --speed --tv-adevice --ad-lavc-ac3drc --gamma --dvbin-timeout --scale --vd-lavc-o --scale-wblur --screenshot-format --cache-initial --background --icc-profile --vd --audio-device --ao-pcm-file --vo-vdpau-fps --tv-outfmt --heartbeat-interval --interpolation-threshold --sub-ass-force-style --x11-name --ytdl-raw-options --tv-norm --audio-buffer --start --xv-colorkey --force-media-title --tv-channel --dscale-window --cscale-window --script-opts --osd-shadow-offset --demuxer-lavf-o --sub-codepage --referrer --vf-toggle --tv-chanlist --audio-demuxer --ab-loop-a --reset-on-next-file --slang --term-osd-bar-chars --ad --demuxer --tscale-window --demuxer-rawvideo-fps --icc-3dlut-size --pulse-host --dither-size-fruit --oac --demuxer-lavf-cryptokey --sub-font --jack-name --osd-shadow-color --opengl-check-pattern --tv-buffersize --sub-back-color --sub-color --tv-audioid --demuxer-max-packets --ao-null-speed --ao-null-outburst --network-timeout --icc-intent --xv-port --dvbin-card --mf-fps --input-ar-delay --cache-backbuffer --sub-blur --tv-input --sub-shadow-color --cache-secs --tv-fps --vo-vdpau-colorkey --input-doubleclick-time --oaoffset --opengl-vsync-fences --osd-color --mf-type --osd-font-size --audio-delay --sws-cgb --vo --audio-channels --demuxer-rawaudio-channels --demuxer-lavf-buffersize --cdda-paranoia --screenshot-jpeg-quality --cache-seek-min --tv-width --vo-vdpau-output-surfaces --cdda-sector-size --xv-buffers --af-defaults --monitorpixelaspect --cscale-wparam --dscale-wparam --osd-bar-h --sub-shadow-offset --osd-msg2 --cdda-toc-bias --dscale-wblur --osd-margin-y --opengl-swapinterval --omaxfps --tscale-param1 --vf-set --scale-taper --wid --demuxer-max-bytes --vf-pre --hue --vo-tct-width --screenshot-jpeg-smooth --vo-vdpau-hqscaling --ofps --cscale-antiring --cscale-wtaper --drm-connector --scale-radius --display-fps --dscale-param1 --cscale-param1 --osd-blur --screenshot-png-compression --vo-image-jpeg-quality --screenshot-png-filter --vf-clr --http-header-fields --tv-amode --tv-bass --demuxer-mkv-subtitle-preroll-secs --tscale-wtaper --osd-bar-align-y --stream-lavf-o --sub-font-size --balance --sub-margin-y --audio-wait-open --sub-spacing --osd-duration --deband-range --sws-cs --tv-contrast --monitoraspect --ao --tv-freq --scale-wparam --tscale-taper --af-toggle --oacopts* --sub-paths --tv-height --target-brightness --tv-forcechan --geometry --autofit --autofit-larger --autofit-smaller --video-aspect --{ --fs --h --help --input-cmdlist --sub --list-protocols --version --audio --input-keylist --V --video --}' "$cur"; return;
fi
_filedir
}
complete -o nospace -F _mpv mpv
