diff options
Diffstat (limited to 'gst/rtpmanager/async_jitter_queue.c')
-rw-r--r-- | gst/rtpmanager/async_jitter_queue.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/rtpmanager/async_jitter_queue.c b/gst/rtpmanager/async_jitter_queue.c index ba14d98e..77980c98 100644 --- a/gst/rtpmanager/async_jitter_queue.c +++ b/gst/rtpmanager/async_jitter_queue.c @@ -632,6 +632,8 @@ void async_jitter_queue_set_flushing_unlocked (AsyncJitterQueue * queue, GFunc free_func, gpointer user_data) { + gpointer elem; + g_return_if_fail (queue); g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); @@ -640,7 +642,8 @@ async_jitter_queue_set_flushing_unlocked (AsyncJitterQueue * queue, if (queue->waiting_threads > 0) g_cond_broadcast (queue->cond); /* free data from queue */ - g_queue_foreach (queue->queue, free_func, user_data); + while ((elem = g_queue_pop_head (queue->queue))) + free_func (elem, user_data); } /** |