[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