diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2007-06-12 08:38:06 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2007-06-12 08:38:06 +0000 |
commit | 2e541b29d47803a0c9a616c99c1e19dc6eb08d88 (patch) | |
tree | a48b0b748bb302261b18c5ecf7198a5d88c7192c /gst | |
parent | 4d835514902a7ab5f5d7e4478c4a8862a7cd9fa4 (diff) |
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 <thiagossantos at gmail dot com>
* 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.
Diffstat (limited to 'gst')
-rw-r--r-- | gst/playback/gstqueue2.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gst/playback/gstqueue2.c b/gst/playback/gstqueue2.c index bf52907f9..d512d80fc 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; |