From 639e2bd12f2592d016e30b542c217641c416c95d Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 26 Jan 2015 01:56:19 +0100 Subject: vo_opengl: simplify radius initialization Somehow, the default radius for filters with variable radius was set in mp_init_filter(). gl_video.c used NAN as default value for the radius, which would make the filter use the default radius. Simplify this, and set the default radius directly in the gl_video options. It also makes the options easier to understand, because the default value listed in --vo=opengl:help actually shows the default value. Remove the function can_use_filter_kernel(), because it doesn't set a radius if none is set. The function is worthless anyway (something about making filter_kernels.c reusable to other VOs, and trying to deal with the possibility that it could provide filters not supported by vo_opengl.) --- video/out/filter_kernels.c | 3 +-- video/out/gl_video.c | 21 +++++---------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/video/out/filter_kernels.c b/video/out/filter_kernels.c index 8c889e1023..77dbea57c0 100644 --- a/video/out/filter_kernels.c +++ b/video/out/filter_kernels.c @@ -56,8 +56,7 @@ const struct filter_kernel *mp_find_filter_kernel(const char *name) bool mp_init_filter(struct filter_kernel *filter, const int *sizes, double inv_scale) { - if (filter->radius < 0) - filter->radius = 3.0; + assert(filter->radius > 0); // polar filters are dependent only on the radius if (filter->polar) { filter->size = 1; diff --git a/video/out/gl_video.c b/video/out/gl_video.c index 23c4bc1435..d1d4d9713b 100644 --- a/video/out/gl_video.c +++ b/video/out/gl_video.c @@ -335,7 +335,7 @@ const struct gl_video_opts gl_video_opts_def = { .sigmoid_slope = 6.5, .scalers = { "bilinear", "bilinear" }, .scaler_params = {{NAN, NAN}, {NAN, NAN}}, - .scaler_radius = {NAN, NAN}, + .scaler_radius = {3, 3}, .alpha_mode = 2, .background = {0, 0, 0, 255}, }; @@ -351,7 +351,7 @@ const struct gl_video_opts gl_video_opts_hq_def = { .sigmoid_upscaling = 1, .scalers = { "spline36", "bilinear" }, .scaler_params = {{NAN, NAN}, {NAN, NAN}}, - .scaler_radius = {NAN, NAN}, + .scaler_radius = {3, 3}, .alpha_mode = 2, .background = {0, 0, 0, 255}, }; @@ -1390,11 +1390,8 @@ static void init_scaler(struct gl_video *p, struct scaler *scaler) scaler->antiring = p->opts.scaler_antiring[scaler->index]; - if (scaler->kernel->radius < 0) { - float radius = p->opts.scaler_radius[scaler->index]; - if (!isnan(radius)) - scaler->kernel->radius = radius; - } + if (scaler->kernel->radius < 0) + scaler->kernel->radius = p->opts.scaler_radius[scaler->index]; update_scale_factor(p, scaler); @@ -2720,20 +2717,12 @@ struct gl_video *gl_video_init(GL *gl, struct mp_log *log, struct osd_state *osd return p; } -static bool can_use_filter_kernel(const struct filter_kernel *kernel) -{ - if (!kernel) - return false; - struct filter_kernel k = *kernel; - return mp_init_filter(&k, filter_sizes, 1); -} - // Get static string for scaler shader. static const char *handle_scaler_opt(const char *name) { if (name) { const struct filter_kernel *kernel = mp_find_filter_kernel(name); - if (can_use_filter_kernel(kernel)) + if (kernel) return kernel->name; for (const char *const *filter = fixed_scale_filters; *filter; filter++) { -- cgit v1.2.3