summaryrefslogtreecommitdiff
path: root/gst/gaudieffects/gstdilate.c
diff options
context:
space:
mode:
authorLuis de Bethencourt <luis.bg@samsung.com>2015-03-19 13:58:21 +0000
committerLuis de Bethencourt <luis.bg@samsung.com>2015-03-19 13:58:21 +0000
commit78ebbb4fd7ca3e141db3666efb02506070064017 (patch)
tree6a3f512067d0a5dfc4e6fffa9ca06fa159797d7f /gst/gaudieffects/gstdilate.c
parent82b73713cb397e374721440d1941c970d7b71719 (diff)
gaudieffects: factorize transform code of dilate
Diffstat (limited to 'gst/gaudieffects/gstdilate.c')
-rw-r--r--gst/gaudieffects/gstdilate.c165
1 files changed, 54 insertions, 111 deletions
diff --git a/gst/gaudieffects/gstdilate.c b/gst/gaudieffects/gstdilate.c
index 8c3c013b0..e96a0d806 100644
--- a/gst/gaudieffects/gstdilate.c
+++ b/gst/gaudieffects/gstdilate.c
@@ -305,120 +305,63 @@ transform (guint32 * src, guint32 * dest, gint video_area, gint width,
guint32 *down;
guint32 *right;
- if (erode) {
-
- while (src != src_end) {
- guint32 *src_line_start = src;
- guint32 *src_line_end = src + width;
- while (src != src_line_end) {
-
- up = src - width;
- if (up < src) {
- up = src;
- }
-
- left = src - 1;
- if (left < src_line_start) {
- left = src;
- }
-
- down = src + width;
- if (down >= src_end) {
- down = src;
- }
-
- right = src + 1;
- if (right >= src_line_end) {
- right = src;
- }
-
- *dest = *src;
- out_luminance = get_luminance (*src);
-
- down_luminance = get_luminance (*down);
- if (down_luminance < out_luminance) {
- *dest = *down;
- out_luminance = down_luminance;
- }
-
- right_luminance = get_luminance (*right);
- if (right_luminance < out_luminance) {
- *dest = *right;
- out_luminance = right_luminance;
- }
-
- up_luminance = get_luminance (*up);
- if (up_luminance < out_luminance) {
- *dest = *up;
- out_luminance = up_luminance;
- }
-
- left_luminance = get_luminance (*left);
- if (left_luminance < out_luminance) {
- *dest = *left;
- }
-
- src += 1;
- dest += 1;
+ while (src != src_end) {
+ guint32 *src_line_start = src;
+ guint32 *src_line_end = src + width;
+
+ while (src != src_line_end) {
+ up = src - width;
+ if (up < src) {
+ up = src;
}
- }
- } else {
-
- while (src != src_end) {
- guint32 *src_line_start = src;
- guint32 *src_line_end = src + width;
- while (src != src_line_end) {
-
- up = src - width;
- if (up < src) {
- up = src;
- }
-
- left = src - 1;
- if (left < src_line_start) {
- left = src;
- }
-
- down = src + width;
- if (down >= src_end) {
- down = src;
- }
-
- right = src + 1;
- if (right >= src_line_end) {
- right = src;
- }
-
- *dest = *src;
- out_luminance = get_luminance (*src);
-
- down_luminance = get_luminance (*down);
- if (down_luminance > out_luminance) {
- *dest = *down;
- out_luminance = down_luminance;
- }
-
- right_luminance = get_luminance (*right);
- if (right_luminance > out_luminance) {
- *dest = *right;
- out_luminance = right_luminance;
- }
-
- up_luminance = get_luminance (*up);
- if (up_luminance > out_luminance) {
- *dest = *up;
- out_luminance = up_luminance;
- }
-
- left_luminance = get_luminance (*left);
- if (left_luminance > out_luminance) {
- *dest = *left;
- }
-
- src += 1;
- dest += 1;
+ left = src - 1;
+ if (left < src_line_start) {
+ left = src;
+ }
+
+ down = src + width;
+ if (down >= src_end) {
+ down = src;
+ }
+
+ right = src + 1;
+ if (right >= src_line_end) {
+ right = src;
+ }
+
+ *dest = *src;
+ out_luminance = get_luminance (*src);
+
+ down_luminance = get_luminance (*down);
+ if ((erode && down_luminance < out_luminance) ||
+ (!erode && down_luminance > out_luminance)) {
+ *dest = *down;
+ out_luminance = down_luminance;
}
+
+ right_luminance = get_luminance (*right);
+ if ((erode && right_luminance < out_luminance) ||
+ (!erode && right_luminance > out_luminance)) {
+ *dest = *right;
+ out_luminance = right_luminance;
+ }
+
+ up_luminance = get_luminance (*up);
+ if ((erode && up_luminance < out_luminance) ||
+ (!erode && up_luminance > out_luminance)) {
+ *dest = *up;
+ out_luminance = up_luminance;
+ }
+
+ left_luminance = get_luminance (*left);
+ if ((erode && left_luminance < out_luminance) ||
+ (!erode && left_luminance > out_luminance)) {
+ *dest = *left;
+ }
+
+ src += 1;
+ dest += 1;
}
}
}