]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_median.c
avfilter: Constify all AVFilters
[ffmpeg] / libavfilter / vf_median.c
index ee264e1a74c5a74095803218cfe7082296bd68bf..4d8037df25769a1ba5478ee331871a43644ca0f0 100644 (file)
@@ -60,6 +60,7 @@ static const AVOption median_options[] = {
     { "radius", "set median radius",    OFFSET(radius), AV_OPT_TYPE_INT,   {.i64=1},     1,  127, FLAGS },
     { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT,   {.i64=0xF},   0,  0xF, FLAGS },
     { "radiusV", "set median vertical radius", OFFSET(radiusV), AV_OPT_TYPE_INT, {.i64=0},0, 127, FLAGS },
+    { "percentile", "set median percentile", OFFSET(percentile), AV_OPT_TYPE_FLOAT, {.dbl=.5}, 0., 1., FLAGS },
     { NULL }
 };
 
@@ -127,7 +128,7 @@ static void check_params(MedianContext *s, AVFilterLink *inlink)
         }
     }
 
-    s->t = 2 * s->radius * s->radiusV + 2 * s->radius;
+    s->t = (2 * s->radius * s->radiusV + s->radiusV + s->radius) * 2.f * s->percentile;
 }
 
 static int config_input(AVFilterLink *inlink)
@@ -284,7 +285,7 @@ static const AVFilterPad median_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_median = {
+const AVFilter ff_vf_median = {
     .name          = "median",
     .description   = NULL_IF_CONFIG_SMALL("Apply Median filter."),
     .priv_size     = sizeof(MedianContext),