alpha: Remove some unneeded calculations and instance struct fields
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 19 Mar 2010 17:18:08 +0000 (18:18 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 19 Mar 2010 18:30:32 +0000 (19:30 +0100)
And document the instance struct fields a bit better

gst/alpha/gstalpha.c
gst/alpha/gstalpha.h

index 1c32cb89525c1e9a55d36931eebf42c73621b5a5..b5cb37e83e5daacaec736356779bdcf58771f270 100644 (file)
@@ -737,17 +737,17 @@ gst_alpha_chroma_key_i420 (const guint8 * src, guint8 * dest, gint width,
 static void
 gst_alpha_init_params (GstAlpha * alpha)
 {
-  float kgl;
-  float tmp;
-  float tmp1, tmp2;
+  gfloat kgl;
+  gfloat tmp;
+  gfloat tmp1, tmp2;
+  gfloat y;
   const gint *matrix;
 
   matrix =
       (alpha->out_sdtv) ? cog_rgb_to_ycbcr_matrix_8bit_sdtv :
       cog_rgb_to_ycbcr_matrix_8bit_hdtv;
 
-  alpha->y =
-      (matrix[0] * ((gint) alpha->target_r) +
+  y = (matrix[0] * ((gint) alpha->target_r) +
       matrix[1] * ((gint) alpha->target_g) +
       matrix[2] * ((gint) alpha->target_b) + matrix[3]) >> 8;
   /* Cb,Cr without offset here because the chroma keying
@@ -766,8 +766,6 @@ gst_alpha_init_params (GstAlpha * alpha)
   alpha->cb = 127 * (tmp1 / kgl);
   alpha->cr = 127 * (tmp2 / kgl);
 
-  alpha->accept_angle_cos = cos (M_PI * alpha->angle / 180);
-  alpha->accept_angle_sin = sin (M_PI * alpha->angle / 180);
   tmp = 15 * tan (M_PI * alpha->angle / 180);
   tmp = MIN (tmp, 255);
   alpha->accept_angle_tg = tmp;
@@ -776,7 +774,7 @@ gst_alpha_init_params (GstAlpha * alpha)
   alpha->accept_angle_ctg = tmp;
   tmp = 1 / (kgl);
   alpha->one_over_kc = 255 * 2 * tmp - 255;
-  tmp = 15 * (float) (alpha->y) / kgl;
+  tmp = 15 * y / kgl;
   tmp = MIN (tmp, 255);
   alpha->kfgy_scale = tmp;
   alpha->kg = MIN (kgl, 127);
index 2b116dba74f9ddf6624547a3224d9c0b5d5b4b24..bc13763c7b3b7d67d580ed5b98f1163feabd7d72 100644 (file)
@@ -60,11 +60,14 @@ struct _GstAlpha
 {
   GstVideoFilter parent;
 
+  /* <private> */
+
   /* caps */
   GstVideoFormat in_format, out_format;
   gint width, height;
   gboolean in_sdtv, out_sdtv;
 
+  /* properties */
   gdouble alpha;
 
   guint target_r;
@@ -75,21 +78,20 @@ struct _GstAlpha
 
   gfloat angle;
   gfloat noise_level;
-  guint noise_level2;
   guint black_sensitivity;
   guint white_sensitivity;
 
-  gfloat y;                     /* chroma color */
+  /* processing function */
+  void (*process) (const guint8 *src, guint8 *dest, gint width, gint height, GstAlpha *alpha);
+
+  /* precalculated values for chroma keying */
   gint8 cb, cr;
   gint8 kg;
-  gfloat accept_angle_cos;
-  gfloat accept_angle_sin;
   guint8 accept_angle_tg;
   guint8 accept_angle_ctg;
   guint8 one_over_kc;
   guint8 kfgy_scale;
-
-  void (*process) (const guint8 *src, guint8 *dest, gint width, gint height, GstAlpha *alpha);
+  guint noise_level2;
 };
 
 struct _GstAlphaClass