[gst-cvs] gst-plugins-base: Run liboil benchmark multiple times

David Schleef ds at kemper.freedesktop.org
Fri May 22 21:30:21 PDT 2009


Module: gst-plugins-base
Branch: master
Commit: 1dae15d762a7d27201e5390acf2f157d4a0984d2
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=1dae15d762a7d27201e5390acf2f157d4a0984d2

Author: David Schleef <ds at schleef.org>
Date:   Fri May 22 17:31:14 2009 -0700

Run liboil benchmark multiple times

The statistics function requires multiple runs, otherwise
it causes a divide by zero error.

---

 gst/audioresample/gstaudioresample.c |   33 +++++++++++++--------------------
 1 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/gst/audioresample/gstaudioresample.c b/gst/audioresample/gstaudioresample.c
index 8fa0457..99b1d86 100644
--- a/gst/audioresample/gstaudioresample.c
+++ b/gst/audioresample/gstaudioresample.c
@@ -1355,6 +1355,7 @@ _benchmark_integer_resampling (void)
   OilProfile a, b;
   gdouble av, bv;
   SpeexResamplerState *sta, *stb;
+  int i;
 
   oil_profile_init (&a);
   oil_profile_init (&b);
@@ -1372,29 +1373,21 @@ _benchmark_integer_resampling (void)
     return FALSE;
   }
 
-  /* Warm up cache */
-  if (!_benchmark_int_float (sta))
-    goto error;
-  if (!_benchmark_int_float (sta))
-    goto error;
-
   /* Benchmark */
-  oil_profile_start (&a);
-  if (!_benchmark_int_float (sta))
-    goto error;
-  oil_profile_stop (&a);
-
-  /* Warm up cache */
-  if (!_benchmark_int_int (stb))
-    goto error;
-  if (!_benchmark_int_int (stb))
-    goto error;
+  for (i = 0; i < 10; i++) {
+    oil_profile_start (&a);
+    if (!_benchmark_int_float (sta))
+      goto error;
+    oil_profile_stop (&a);
+  }
 
   /* Benchmark */
-  oil_profile_start (&b);
-  if (!_benchmark_int_int (stb))
-    goto error;
-  oil_profile_stop (&b);
+  for (i = 0; i < 10; i++) {
+    oil_profile_start (&b);
+    if (!_benchmark_int_int (stb))
+      goto error;
+    oil_profile_stop (&b);
+  }
 
   /* Handle results */
   oil_profile_get_ave_std (&a, &av, NULL);





More information about the Gstreamer-commits mailing list