From 2e541b29d47803a0c9a616c99c1e19dc6eb08d88 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 12 Jun 2007 08:38:06 +0000 Subject: [PATCH] gst/playback/gstqueue2.c: Fix a division by zero when the max percent is <= 0. Fixes #446572. also update the bufferi... Original commit message from CVS: Patches by: Thiago Sousa Santos * gst/playback/gstqueue2.c: (update_buffering), (gst_queue_locked_enqueue): Fix a division by zero when the max percent is <= 0. Fixes #446572. also update the buffering status when receiving events. Fixes #446551. --- ChangeLog | 9 +++++++++ gst/playback/gstqueue2.c | 15 +++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2147e89..193edd4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-06-12 Wim Taymans + + Patches by: Thiago Sousa Santos + + * gst/playback/gstqueue2.c: (update_buffering), + (gst_queue_locked_enqueue): + Fix a division by zero when the max percent is <= 0. Fixes #446572. + also update the buffering status when receiving events. Fixes #446551. + 2007-06-11 Wim Taymans Based on patch by: Thiago Sousa Santos diff --git a/gst/playback/gstqueue2.c b/gst/playback/gstqueue2.c index bf52907..d512d80 100644 --- a/gst/playback/gstqueue2.c +++ b/gst/playback/gstqueue2.c @@ -642,7 +642,7 @@ update_buffering (GstQueue * queue) gint percent; gboolean post = FALSE; - if (!queue->use_buffering) + if (!queue->use_buffering || queue->high_percent <= 0) return; #define GET_PERCENT(format) ((queue->max_level.format) > 0 ? \ @@ -997,8 +997,6 @@ gst_queue_locked_enqueue (GstQueue * queue, gpointer item) apply_buffer (queue, buffer, &queue->sink_segment); /* update the byterate stats */ update_rates (queue); - /* update the buffering status */ - update_buffering (queue); if (QUEUE_IS_USING_TEMP_FILE (queue)) { gst_queue_write_buffer_to_file (queue, buffer); @@ -1039,9 +1037,14 @@ gst_queue_locked_enqueue (GstQueue * queue, gpointer item) item = NULL; } - if (!QUEUE_IS_USING_TEMP_FILE (queue) && item) - g_queue_push_tail (queue->queue, item); - GST_QUEUE_SIGNAL_ADD (queue); + if (item) { + /* update the buffering status */ + update_buffering (queue); + + if (!QUEUE_IS_USING_TEMP_FILE (queue)) + g_queue_push_tail (queue->queue, item); + GST_QUEUE_SIGNAL_ADD (queue); + } return; -- 2.7.4