diff options
author | Kacper Michajłow <kasper93@gmail.com> | 2023-09-17 01:47:43 +0200 |
---|---|---|
committer | Niklas Haas <github-daiK1o@haasn.dev> | 2023-09-19 22:26:56 +0200 |
commit | 4bedcd36f69009253433582a84fcf513ff68966d (patch) | |
tree | da641a489ee6e99b23b80515dff78bd8b128f1d4 /video | |
parent | 8121d41245c62f44106b898eaaf0328db1ab239e (diff) | |
download | mpv-4bedcd36f69009253433582a84fcf513ff68966d.tar.bz2 mpv-4bedcd36f69009253433582a84fcf513ff68966d.tar.xz |
vo: make cscale follow scale by default
Diffstat (limited to 'video')
-rw-r--r-- | video/out/gpu/video.c | 17 | ||||
-rw-r--r-- | video/out/vo_gpu_next.c | 4 |
2 files changed, 19 insertions, 2 deletions
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c index 03331d7e2c..c6c7489053 100644 --- a/video/out/gpu/video.c +++ b/video/out/gpu/video.c @@ -307,7 +307,7 @@ static const struct gl_video_opts gl_video_opts_def = { .cutoff = 0.001}, // scale {{NULL, .params={NAN, NAN}}, {.params = {NAN, NAN}}, .cutoff = 0.001}, // dscale - {{"bilinear", .params={NAN, NAN}}, {.params = {NAN, NAN}}, + {{NULL, .params={NAN, NAN}}, {.params = {NAN, NAN}}, .cutoff = 0.001}, // cscale {{"mitchell", .params={NAN, NAN}}, {.params = {NAN, NAN}}, .clamp = 1, }, // tscale @@ -1733,6 +1733,12 @@ static void reinit_scaler(struct gl_video *p, struct scaler *scaler, conf = &p->opts.scaler[SCALER_SCALE]; } + if (conf && scaler->index == SCALER_CSCALE && (!conf->kernel.name || + !conf->kernel.name[0])) + { + conf = &p->opts.scaler[SCALER_SCALE]; + } + struct filter_kernel bare_window; const struct filter_kernel *t_kernel = mp_find_filter_kernel(conf->kernel.name); const struct filter_window *t_window = mp_find_filter_window(conf->window.name); @@ -2302,6 +2308,13 @@ static void pass_read_video(struct gl_video *p) continue; const struct scaler_config *conf = &p->opts.scaler[scaler_id]; + + if (scaler_id == SCALER_CSCALE && (!conf->kernel.name || + !conf->kernel.name[0])) + { + conf = &p->opts.scaler[SCALER_SCALE]; + } + struct scaler *scaler = &p->scaler[scaler_id]; // bilinear scaling is a free no-op thanks to GPU sampling @@ -4180,6 +4193,8 @@ static int validate_scaler_opt(struct mp_log *log, const m_option_t *opt, r = M_OPT_EXIT; } else if (bstr_equals0(name, "dscale") && !param.len) { return r; // empty dscale means "use same as upscaler" + } else if (bstr_equals0(name, "cscale") && !param.len) { + return r; // empty cscale means "use same as upscaler" } else { snprintf(s, sizeof(s), "%.*s", BSTR_P(param)); if (!handle_scaler_opt(s, tscale)) diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index ff76b3f264..422b7c0639 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -1740,7 +1740,9 @@ static const struct pl_filter_config *map_scaler(struct priv *p, const struct gl_video_opts *opts = p->opts_cache->opts; const struct scaler_config *cfg = &opts->scaler[unit]; - if (unit == SCALER_DSCALE && (!cfg->kernel.name || !strcmp(cfg->kernel.name, ""))) + if (unit == SCALER_DSCALE && (!cfg->kernel.name || !cfg->kernel.name[0])) + cfg = &opts->scaler[SCALER_SCALE]; + if (unit == SCALER_CSCALE && (!cfg->kernel.name || !cfg->kernel.name[0])) cfg = &opts->scaler[SCALER_SCALE]; for (int i = 0; fixed_presets[i].name; i++) { |