1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-11 08:37:59 +00:00

vo_gpu_next: add --corner-rounding option

For better or worse.
This commit is contained in:
Niklas Haas 2023-06-19 13:06:01 +02:00 committed by Niklas Haas
parent f1600ea9cf
commit 0af81b16d8
3 changed files with 13 additions and 0 deletions

View File

@ -77,6 +77,7 @@ Interface changes
`--gpu-shader-cache` is no longer required `--gpu-shader-cache` is no longer required
- remove the `--tone-mapping-crosstalk` option - remove the `--tone-mapping-crosstalk` option
- add `--gamut-mapping-mode=perceptual|relative|saturation|absolute|linear` - add `--gamut-mapping-mode=perceptual|relative|saturation|absolute|linear`
- add `--corner-rounding` option
--- mpv 0.35.0 --- --- mpv 0.35.0 ---
- add the `--vo=gpu-next` video output driver, as well as the options - add the `--vo=gpu-next` video output driver, as well as the options
`--allow-delayed-peak-detect`, `--builtin-scalers`, `--allow-delayed-peak-detect`, `--builtin-scalers`,

View File

@ -5967,6 +5967,12 @@ them.
remaining quantization artifacts. Higher numbers add more noise. (Default remaining quantization artifacts. Higher numbers add more noise. (Default
48) 48)
``--corner-rounding=<0..1>``
If set to a value above 0.0, the output will be rendered with rounded
corners, as if an alpha transparency mask had been applied. The value
indicates the relative fraction of the side length to round - a value of
1.0 rounds the corners as much as possible. (``--vo=gpu-next`` only)
``--sharpen=<value>`` ``--sharpen=<value>``
If set to a value other than 0, enable an unsharp masking filter. Positive If set to a value other than 0, enable an unsharp masking filter. Positive
values will sharpen the image (but add more ringing and aliasing). Negative values will sharpen the image (but add more ringing and aliasing). Negative

View File

@ -151,6 +151,8 @@ struct priv {
bool delayed_peak; bool delayed_peak;
bool inter_preserve; bool inter_preserve;
bool target_hint; bool target_hint;
float corner_rounding;
}; };
static void update_render_options(struct vo *vo); static void update_render_options(struct vo *vo);
@ -1815,6 +1817,9 @@ static void update_render_options(struct vo *vo)
p->params.disable_linear_scaling = !opts->linear_downscaling && !opts->linear_upscaling; p->params.disable_linear_scaling = !opts->linear_downscaling && !opts->linear_upscaling;
p->params.disable_fbos = opts->dumb_mode == 1; p->params.disable_fbos = opts->dumb_mode == 1;
p->params.blend_against_tiles = opts->alpha_mode == ALPHA_BLEND_TILES; p->params.blend_against_tiles = opts->alpha_mode == ALPHA_BLEND_TILES;
#if PL_API_VER >= 277
p->params.corner_rounding = p->corner_rounding;
#endif
// Map scaler options as best we can // Map scaler options as best we can
p->params.upscaler = map_scaler(p, SCALER_SCALE); p->params.upscaler = map_scaler(p, SCALER_SCALE);
@ -1998,6 +2003,7 @@ const struct vo_driver video_out_gpu_next = {
.options = (const struct m_option[]) { .options = (const struct m_option[]) {
{"allow-delayed-peak-detect", OPT_BOOL(delayed_peak)}, {"allow-delayed-peak-detect", OPT_BOOL(delayed_peak)},
{"corner-rounding", OPT_FLOAT(corner_rounding), M_RANGE(0, 1)},
{"interpolation-preserve", OPT_BOOL(inter_preserve)}, {"interpolation-preserve", OPT_BOOL(inter_preserve)},
{"lut", OPT_STRING(lut.opt), .flags = M_OPT_FILE}, {"lut", OPT_STRING(lut.opt), .flags = M_OPT_FILE},
{"lut-type", OPT_CHOICE_C(lut.type, lut_types)}, {"lut-type", OPT_CHOICE_C(lut.type, lut_types)},