[gst-cvs] gst-plugins-bad: geometrictransform: make bulge "radius" customizable
Sebastian Dröge
slomo at kemper.freedesktop.org
Mon Aug 9 10:26:01 PDT 2010
Module: gst-plugins-bad
Branch: master
Commit: 1652a3ef5710a18d77a3c28498f5d6f84c2aee05
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=1652a3ef5710a18d77a3c28498f5d6f84c2aee05
Author: Filippo Argiolas <filippo.argiolas at gmail.com>
Date: Thu Aug 5 12:29:16 2010 +0200
geometrictransform: make bulge "radius" customizable
https://bugzilla.gnome.org/show_bug.cgi?id=625908
---
gst/geometrictransform/gstbulge.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/gst/geometrictransform/gstbulge.c b/gst/geometrictransform/gstbulge.c
index 13476e6..453e33b 100644
--- a/gst/geometrictransform/gstbulge.c
+++ b/gst/geometrictransform/gstbulge.c
@@ -95,16 +95,15 @@ bulge_map (GstGeometricTransform * gt, gint x, gint y, gdouble * in_x,
norm_x = 2.0 * (x / width - cgt->x_center);
norm_y = 2.0 * (y / height - cgt->y_center);
- r = sqrt (norm_x * norm_x + norm_y * norm_y);
+ /* calculate radius, normalize to 1 for future convenience */
+ r = sqrt (0.5 * (norm_x * norm_x + norm_y * norm_y));
/* maps r to r^2 in the step region */
/* interpolating from negative values limits the amount of zoom at
* the center so the first edge could be used as intensity
* parameter */
- /* the second edge is the bulge radius, see gststretch.c for
- * comments about its customizability */
- norm_x *= smoothstep (-0.15, 0.6, r);
- norm_y *= smoothstep (-0.15, 0.6, r);
+ norm_x *= smoothstep (-0.15, cgt->radius, r);
+ norm_y *= smoothstep (-0.15, cgt->radius, r);
/* unnormalize */
*in_x = (0.5 * norm_x + cgt->x_center) * width;
More information about the Gstreamer-commits
mailing list