controller: Add benchmark for getting a value array of the control points
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Sun, 21 Feb 2010 16:36:55 +0000 (17:36 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 9 Mar 2010 20:57:16 +0000 (20:57 +0000)
tests/benchmarks/controller.c

index 10ab69f..03ef151 100644 (file)
@@ -147,6 +147,27 @@ main (gint argc, gchar * argv[])
   printf ("random insert of control-points: %" GST_TIME_FORMAT "\n",
       GST_TIME_ARGS (elapsed));
 
+  {
+    GstClockTime sample_duration =
+        gst_util_uint64_scale_int (1, GST_SECOND, 44100);
+    GstValueArray va = { "freq",
+      BLOCK_SIZE * NUM_CP,
+      sample_duration,
+      NULL
+    };
+
+    gdouble *values = g_new0 (gdouble, BLOCK_SIZE * NUM_CP);
+    va.values = (gpointer *) values;
+
+    bt = gst_util_get_timestamp ();
+    gst_control_source_get_value_array (GST_CONTROL_SOURCE (csource), 0, &va);
+    ct = gst_util_get_timestamp ();
+    g_free (values);
+    elapsed = GST_CLOCK_DIFF (bt, ct);
+    printf ("linear array for control-points: %" GST_TIME_FORMAT "\n",
+        GST_TIME_ARGS (elapsed));
+  }
+
   g_object_unref (csource);
 
   /* play, this test sequential reads */
@@ -160,7 +181,7 @@ main (gint argc, gchar * argv[])
 
   ct = gst_util_get_timestamp ();
   elapsed = GST_CLOCK_DIFF (bt, ct);
-  printf ("linear read   of control-points: %" GST_TIME_FORMAT "\n",
+  printf ("linear read of control-points  : %" GST_TIME_FORMAT "\n",
       GST_TIME_ARGS (elapsed));
 
   /* cleanup */