Fix example apps by drawing in the main-loop.

This commit is contained in:
Stefan Kost 2009-01-27 23:09:05 +02:00
parent 3c1f1b195f
commit 00fdca0c14
2 changed files with 24 additions and 14 deletions

View file

@ -92,17 +92,22 @@ draw_spectrum (gfloat * data)
}
/* process delayed message */
static gboolean
delayed_idle_spectrum_update (gpointer user_data)
{
draw_spectrum ((gfloat *) user_data);
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))
goto done;
draw_spectrum ((gfloat *) user_data);
done:
g_free (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);
}

View file

@ -81,17 +81,22 @@ draw_spectrum (gfloat * data)
}
/* process delayed message */
static gboolean
delayed_idle_spectrum_update (gpointer user_data)
{
draw_spectrum ((gfloat *) user_data);
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))
goto done;
draw_spectrum ((gfloat *) user_data);
done:
g_free (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);
}