[MOVED FROM BAD 17/29] shapewipe: Don't do pointer dereferences in the processing...
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 10 Dec 2009 09:40:10 +0000 (10:40 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 12 Feb 2010 10:12:34 +0000 (11:12 +0100)
Lowers the time taken there in my testcase from 6.91% to 6.20%
as measured by callgrind.

gst/shapewipe/gstshapewipe.c

index 6b209d0..f45bde5 100644 (file)
@@ -763,6 +763,7 @@ gst_shape_wipe_blend_ayuv_##depth (GstShapeWipe * self, GstBuffer * inbuf, \
   gfloat position = self->mask_position; \
   gfloat low = position - (self->mask_border / 2.0f); \
   gfloat high = position + (self->mask_border / 2.0f); \
+  gint width = self->width, height = self->height; \
   \
   if (low < 0.0f) { \
     high = 0.0f; \
@@ -774,8 +775,8 @@ gst_shape_wipe_blend_ayuv_##depth (GstShapeWipe * self, GstBuffer * inbuf, \
     high = 1.0f; \
   } \
   \
-  for (i = 0; i < self->height; i++) { \
-    for (j = 0; j < self->width; j++) { \
+  for (i = 0; i < height; i++) { \
+    for (j = 0; j < width; j++) { \
       gfloat in = *mask / scale; \
       \
       if (in < low) { \
@@ -824,6 +825,7 @@ gst_shape_wipe_blend_##name##_##depth (GstShapeWipe * self, GstBuffer * inbuf, \
   gfloat position = self->mask_position; \
   gfloat low = position - (self->mask_border / 2.0f); \
   gfloat high = position + (self->mask_border / 2.0f); \
+  gint width = self->width, height = self->height; \
   \
   if (low < 0.0f) { \
     high = 0.0f; \
@@ -835,8 +837,8 @@ gst_shape_wipe_blend_##name##_##depth (GstShapeWipe * self, GstBuffer * inbuf, \
     high = 1.0f; \
   } \
   \
-  for (i = 0; i < self->height; i++) { \
-    for (j = 0; j < self->width; j++) { \
+  for (i = 0; i < height; i++) { \
+    for (j = 0; j < width; j++) { \
       gfloat in = *mask / scale; \
       \
       if (in < low) { \