summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-01-26 01:56:19 +0100
committerwm4 <wm4@nowhere>2015-01-26 01:56:19 +0100
commit639e2bd12f2592d016e30b542c217641c416c95d (patch)
tree513000d1b36acbeebc6639dd60bd4052bcabb01b
parent6945369e9c97c1caf64c9e47901e12f500d82e7e (diff)
downloadmpv-639e2bd12f2592d016e30b542c217641c416c95d.tar.bz2
mpv-639e2bd12f2592d016e30b542c217641c416c95d.tar.xz
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.)
-rw-r--r--video/out/filter_kernels.c3
-rw-r--r--video/out/gl_video.c21
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++) {