Sebastian DrÃ¶ge slomo at kemper.freedesktop.org
Mon Aug 9 10:26:01 PDT 2010

```Module: gst-plugins-bad
Branch: master
Commit: 1652a3ef5710a18d77a3c28498f5d6f84c2aee05

Author: Filippo Argiolas <filippo.argiolas at gmail.com>
Date:   Thu Aug  5 12:29:16 2010 +0200

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
-  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;

```