From ad0e0006b2e68a4405604ec47f493cfaed1b12b3 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 24 Oct 2014 16:23:53 +0200 Subject: [PATCH] resampler: add some options --- gst-libs/gst/video/resampler.c | 15 ++++++++++++--- gst-libs/gst/video/resampler.h | 27 +++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/gst-libs/gst/video/resampler.c b/gst-libs/gst/video/resampler.c index 4c82f25..54cbde4 100644 --- a/gst-libs/gst/video/resampler.c +++ b/gst-libs/gst/video/resampler.c @@ -290,9 +290,18 @@ gst_resampler_init (GstResampler * resampler, { gdouble resample_inc = in_size / (gdouble) out_size; - params.envelope = 2.0; - params.sharpness = 1.0; - params.sharpen = 0.0; + if (!options + || !gst_structure_get_double (options, GST_RESAMPLER_OPT_ENVELOPE, + ¶ms.envelope)) + params.envelope = 2.0; + if (!options + || !gst_structure_get_double (options, GST_RESAMPLER_OPT_SHARPNESS, + ¶ms.sharpness)) + params.sharpness = 1.0; + if (!options + || !gst_structure_get_double (options, GST_RESAMPLER_OPT_SHARPEN, + ¶ms.sharpen)) + params.sharpen = 0.0; if (resample_inc > 1.0) { params.fx = (1.0 / resample_inc) * params.sharpness; diff --git a/gst-libs/gst/video/resampler.h b/gst-libs/gst/video/resampler.h index 95df197..e11096e 100644 --- a/gst-libs/gst/video/resampler.h +++ b/gst-libs/gst/video/resampler.h @@ -49,6 +49,33 @@ typedef enum { } GstResamplerMethod; /** + * GST_RESAMPLER_OPT_ENVELOPE: + * + * G_TYPE_DOUBLE, specifies the size of filter envelope for + * @GST_RESAMPLER_METHOD_LANCZOS. values are clamped between + * 1.0 and 5.0. 2.0 is the default. + */ +#define GST_RESAMPLER_OPT_ENVELOPE "GstResampler.envelope" + +/** + * GST_RESAMPLER_OPT_SHARPNESS: + * + * G_TYPE_DOUBLE, specifies sharpness of the filter for + * @GST_RESAMPLER_METHOD_LANCZOS. values are clamped between + * 0.5 and 1.5. 1.0 is the default. + */ +#define GST_RESAMPLER_OPT_SHARPNESS "GstResampler.sharpness" + +/** + * GST_RESAMPLER_OPT_SHARPEN: + * + * G_TYPE_DOUBLE, specifies sharpening of the filter for + * @GST_RESAMPLER_METHOD_LANCZOS. values are clamped between + * 0.0 and 1.0. 0.0 is the default. + */ +#define GST_RESAMPLER_OPT_SHARPEN "GstResampler.sharpen" + +/** * GstResamplerFlags: * @GST_RESAMPLER_FLAG_NONE: no flags * -- 2.7.4