diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/examples/spectrum/demo-audiotest.c | 19 | ||||
-rw-r--r-- | tests/examples/spectrum/demo-osssrc.c | 19 |
2 files changed, 24 insertions, 14 deletions
diff --git a/tests/examples/spectrum/demo-audiotest.c b/tests/examples/spectrum/demo-audiotest.c index d21857a2..d04552d1 100644 --- a/tests/examples/spectrum/demo-audiotest.c +++ b/tests/examples/spectrum/demo-audiotest.c @@ -93,16 +93,21 @@ draw_spectrum (gfloat * data) /* process delayed message */ static gboolean -delayed_spectrum_update (GstClock * sync_clock, GstClockTime time, - GstClockID id, gpointer user_data) +delayed_idle_spectrum_update (gpointer user_data) { - if (!GST_CLOCK_TIME_IS_VALID (time)) - goto done; - draw_spectrum ((gfloat *) user_data); - -done: g_free (user_data); + return (FALSE); +} + +static gboolean +delayed_spectrum_update (GstClock * sync_clock, GstClockTime time, + GstClockID id, gpointer user_data) +{ + if (GST_CLOCK_TIME_IS_VALID (time)) + g_idle_add (delayed_idle_spectrum_update, user_data); + else + g_free (user_data); return (TRUE); } diff --git a/tests/examples/spectrum/demo-osssrc.c b/tests/examples/spectrum/demo-osssrc.c index dd19ca1f..c7ae8462 100644 --- a/tests/examples/spectrum/demo-osssrc.c +++ b/tests/examples/spectrum/demo-osssrc.c @@ -82,16 +82,21 @@ draw_spectrum (gfloat * data) /* process delayed message */ static gboolean -delayed_spectrum_update (GstClock * sync_clock, GstClockTime time, - GstClockID id, gpointer user_data) +delayed_idle_spectrum_update (gpointer user_data) { - if (!GST_CLOCK_TIME_IS_VALID (time)) - goto done; - draw_spectrum ((gfloat *) user_data); - -done: g_free (user_data); + return (FALSE); +} + +static gboolean +delayed_spectrum_update (GstClock * sync_clock, GstClockTime time, + GstClockID id, gpointer user_data) +{ + if (GST_CLOCK_TIME_IS_VALID (time)) + g_idle_add (delayed_idle_spectrum_update, user_data); + else + g_free (user_data); return (TRUE); } |