profile=pc-stuff
profile=pc-display-conf
#profile=tv-display-auto
#profile=android-decent-hw





# AUDIO 


#audio-device=alsa/default

#Audio output drivers
ao=pipewire,coreauido,pulse,wasapi,

volume=100
volume-max=200

# enabling it will keep the pitch when changing speed
#audio-pitch-correction=no

# the audio will upmix and downmix to channel config, for example
# 'stereo' for 2.0 and 5.1 for 5.1, 'auto' will try to avoid up/downmixing
# default is 'auto-safe'.
audio-channels=stereo

#raw bitperfect audio, but you can only hear mpv
audio-exclusive=no




# OTHER

#Load external audio with (almost) the same name as the video.
audio-file-auto=fuzzy

sub-auto=fuzzy

#user-agent="Mozilla/5.0"

#Tries to load subtitles in these languages, if one is not available
#it falls back to the next one.
slang=en

#same for audio
#alang=ja,en

#Changes subtitle encoding, if the file is valid utf8 it prefers it,
#add '+' in front of codepage '+utf8' to force it.
#sub-codepage=utf8

# You can also include other configuration files.
#include=/path/to/the/file/you/want/to/include










# PROFILES


[pc-stuff]


#VIDEO

#catmull_rom uses less resources than lanczos and ewa_lanczossharp.
#spline36 is kinda bad, for upscaling you should use bicubic catrom for preserving spatial proerties
#or a lanczos scaler (like ewa_lanczos or ewa_lanczossharp) for sharpness.

#mitchell = bicubic b 1/3 c 1/3, can be tuned with scale-param1 and scale-param2
#catmull_rom = bicubic b 0 c 0.5
#hermite = bicubic b 0 c 0

scale=lanczos

#dscale, like scale, but for downscaling,
#it defaults to scale if unset

#Due to not having a negative lobe, hermite is better for
#downscaling (less ringing and aliasing), mitchell could work too
#hermite is sharper than mitchell
#https://github.com/mpv-player/mpv/pull/12384#issuecomment-1716775594
#https://github.com/mpv-player/mpv/pull/12384#issuecomment-1716855374

dscale=hermite


#'catmull_rom', 'sinc(blackman window)', hanning 'lanczos'
#For a traditional scaler, is better to use sinc, but it has more resource usage than catmull_rom.
cscale=catmull_rom
#cscale-window=blackman		#for sinc
#cscale-radius=3			#taps for sinc

#https://github.com/mpv-player/mpv/issues/12163
#you can also use 'FastBilateral', 'JointBilateral', 'MemeBilateral' or KrigBilateral
#meme shaders if you trust them.
#Fast and Joint may have staircase artifacts.
#Meme is Joint with + CfL (Chroma from Luma prediction), so you can instead use Fast and CfL 
#together for better performance.
#glsl-shader="~~/shaders/FastBilateral.glsl"
#glsl-shader="~~/shaders/CfL_Prediction.glsl"	#CfL has big accuracy issues

#There are memes about bilinear cscale being the true way the encoder and encoding software
#intended the chroma to be watched, if you believe them or not is up to you.


#can decrease performance depending on scalers, more noticeable on 4k content
correct-downscaling=yes

#enabling them gives better quality with almost no performance impact
linear-downscaling=yes
sigmoid-upscaling=yes


# SCREENSHOTS


screenshot-format=png

screenshot-tag-colorspace=no

screenshot-high-bit-depth=no

screenshot-template="mpv-shot-%tY-%tm-%td_%tH-%tM-%tS"

screenshot-directory=~/Pictures/

screenshot-png-compression=9

screenshot-png-filter=0




# DEBANDING


deband=no



# HARDWARE DECODING

#gpu has better performance but gpu-next has better hdr.
#vo=gpu
vo=gpu-next

#on windows be careful of using dxva2, d3d11va is better.
hwdec=auto-safe
#hwdec=auto-copy-safe	#enables copyback

#vulkan hwdec has better default hw deinterlacing (bwdif),
#you can still use bwdif without vulkan, using copyback.
#hwdec=vulkan		


#vulkan uses more resources,but has better hdr compatibility
#gpu-api=opengl  # Uncomment this if you notice stuttering with vulkan, opengl may cause screen tearing depending of your config
#gpu-api=vulkan  # Comment this if you notice stuttering and uncomment the above line

vulkan-device='Intel(R) UHD Graphics 620'
#vulkan-device='NVIDIA GeForce MX110'

#gpu-context=winvk
vulkan-async-compute=yes
vulkan-async-transfer=yes
vulkan-queue-count=1

#opengl-waitvsync=yes
vd-lavc-dr=yes
spirv-compiler=auto


# TEMPORAL INTERPOLATION (BETWEEN FRAMES)

#interpolation=yes
#interpolation-threshold=-1
#video-sync=display-resample	#can help with interpolation

#for tscale you can use 'sphinx' (smoother) or 'oversample' (less blurry)
#tscale=sphinx
#tscale-blur=0.6991556596428412		#magic haasn number for sphinx

video-sync=audio #fix desync on d3d11va-copy when not using gpu-api = opengl or vulkan



#diplays

[pc-display-conf]
dither-depth=8
dither=fruit
#dither-size-fruit=8

#common primaries for modern displays are 'bt.709' (sRGB), 'bt.2020', 'apple' (Apple RGB), 'adobe' (Adobe RGB) and 'dci-p3'
target-prim=bt.709

# transfer characteristics (gamma), you can leave it on 'auto', you can also use 'bt.1886', 'srgb', 'linear', 'pq' or another option
target-trc=srgb

#you can leave it on 'auto', sdr is '203'
target-peak=auto


[tv-display-auto]
dither-depth=auto
#dither=fruit
#dither-size-fruit=8

#common primaries for modern displays are 'bt.709' (sRGB), 'bt.2020', 'apple' (Apple RGB), 'adobe' (Adobe RGB) and 'dci-p3'
target-prim=auto

# transfer characteristics (gamma), you can leave it on 'auto', you can also use 'bt.1886', 'srgb', 'linear', 'pq' or another option
target-trc=auto

#you can leave it on 'auto', sdr is '203'
target-peak=auto


[tonemaping-pc]

# HDR TONE MAPPING

#https://github.com/mpv-player/mpv/pull/6564#issuecomment-473522461
#https://doodad.dev/dither-me-this/



hdr-compute-peak=yes	#uses own algorythm instead of metadata

allow-delayed-peak-detect=yes #enable for better performance


#You can use 'spline' (probably better), 'bt.2390', 'bt.2446a' or leave it on 'auto'.
tone-mapping=spline

#tone-mapping-param=1.5			#For bt.2390, mpv default 1.0 and some like 1.5, for spline default is 0.3

hdr-peak-percentile=99.995		#use 99.995 for better hdr
#hdr-contrast-recovery=0.30		#better hdr, less performance

#tone-mapping-mode=hybrid 	#deprecated https://github.com/mpv-player/mpv/commit/b4c98cb04c87999eccd061cc59e6f5f8fa706220

gamut-mapping-mode=perceptual

icc-intent=0

#blend-subtitles=yes



[android-decent-hw]

#scale=catmull_rom

#dscale=hermite

#cscale=catmull_rom


vo=gpu
#vo=gpu-next

#hwdec=auto-safe











#bwdif deinterlacing profile

[bwdifdeint]
profile-desc="Deinterlacing mode: bwdif bob"
#deinterlacing, bwdif and w3fdif are better quality than yadif
vf-append=bwdif=deint=1
#deinterlace=yes
#vf=bwdif
#vf-togle=bwdif
#vo-vaapi-deint-mode=bob

[deinterlace-no]
profile-desc="Deinterlacing mode: disabled"
vf-remove=bwdif
deinterlace=no
vf-clr


#[bwdifdeint-autoprofile]
#profile-cond=p["video-format/tff"]
#profile=bwdifdeint