Closed stax76 closed 6 months ago
--libplacebo-opts
can override mpv options and can cause weird option conflicts if you don't know what you're doing. It's mostly useful for options that aren't explicitly mapped in mpv, but exist in libplacebo. Or if there's a rendering-related issue and you're trying to determine if the problem is caused by mpv, or by libplacebo. So realistically, only the former point is useful for most end-users, since there are some libplacebo options that you can only access by passing them through --libplacebo-opts
.
There are still related issues that have not been fixed yet: https://github.com/mpv-player/mpv/issues/12265
There are about 100 libplacebo options, adding GUI support for all of them could possibly slow down the load time of the conf editor dialog, and it would increase memory usage (C# uses garbage collection), so I wonder which options can be ignored and which one are popular?
In the next mpv.net beta release, there is:
Full list of the options as found in the libplacebo manual:
Global preset preset=<default|fast|high_quality>
Scaling
upscaler=
Debanding
deband=<yes|no>
deband_preset=
Sigmoidization
sigmoid=<yes|no>
sigmoid_preset=
Color adjustment
color_adjustment=<yes|no>
color_adjustment_preset=
HDR peak detection peak_detect=<yes|no> peak_detection_preset=<default|high_quality> peak_smoothing_period=<0.0..1000.0> scene_threshold_low=<0.0..100.0>, scene_threshold_high=<0.0..100.0> peak_percentile=<0.0..100.0> black_cutoff=<0.0..100.0> allow_delayed_peak=<yes|no>
Color mapping
color_map=<yes|no>
color_map_preset=<default|high_quality>
gamut_mapping=
Dithering
dither=<yes|no>
dither_preset=
Cone distortion
cone=<yes|no>
cone_preset=
Output blending
blend=<yes|no>
blend_preset=
Deinterlacing
deinterlace=<yes|no>
deinterlace_preset=
Distortion
distort=<yes|no>
distort_preset=
Miscellaneous renderer settings
error_diffusion=
Performance / quality trade-offs skip_anti_aliasing=<yes|no> preserve_mixing_cache=<yes|no>
Debugging, tuning and testing skip_caching_single_frame=<yes|no> disable_linear_scaling=<yes|no> disable_builtin_scalers=<yes|no> correct_subpixel_offsets=<yes|no> force_dither=<yes|no> disable_dither_gamma_correction=<yes|no> disable_fbos=<yes|no> force_low_bit_depth_fbos=<yes|no> dynamic_constants=<yes|no>
This is a screenshot that shows the improved navigation tree view and the newly developed drop down menu combo box control:
so I wonder which options can be ignored and which one are popular?
Generally speaking, 99% of the popular ones are already mapped in mpv. Off the top of my head, some of the ones I've seen most commonly used are:
temperature
- Allows you to adjust the color temperature accordingly to your viewing environment.perceptual_deadzone
& perceptual_strength
- Tweak the default perceptual
gamut mapping.gamut_expansion
- Overshoot the source gamuts.upscaler=custom, ...
& downscaler=custom, ...
- Even though all of the popular scaler options are already mapped in mpv, this is technically the only way get around the --scale-antiring
bug, where AR is applied to up, down and chroma scaling at the same time. You can control the AR strength on a per-filter basis with libplacebo's custom scalers.Outside of these, there are some niche options like cone
/cone_preset
, and some visually libplacebo settings like lut3d_tricubic
. Can't really think of any others, outside of maybe peak_smoothing_period
to play around with brightness shimmering (but I haven't really found any reason to tweak this tbh).
Completely baseless speculation here, but I wouldn't be surprised if there was 1:1 parity between mpv's renderer options and libplacebo's options once vo_gpu
is eventually deprecated in the future. So it might be futile trying to cherrypick specific libplacebo-only options, especially when stuff like gamut mapping and tone mapping are always subject to changes and refactoring. But who knows really, I surely don't. Just my two cents on whether or not it's worth building a GUI for --libplacebo-opts
specifically.
There is a
--libplacebo-opts
option, it's documented with:If it's true, it doesn't make sense building a libplacebo GUI in my libmpv frontend. Why is it only for debugging purposes only, because mpv has regular options that should be preferred?