diff --git a/ChangeLog b/ChangeLog index 2147e89e4a..193edd45a3 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 bf52907f9c..d512d80fcf 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;