From: Edward Hervey Date: Tue, 19 Oct 2010 16:09:53 +0000 (+0200) Subject: queue2: Only call update_buffering if needed. X-Git-Tag: RELEASE-0.10.32~267 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8f12a5e7cd1c6441da81cae9cc0a2799c9121054;p=platform%2Fupstream%2Fgstreamer.git queue2: Only call update_buffering if needed. update_buffering is so big it will never be inlined (and shouldn't), we therefore move the check outside of it. --- diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c index 92cc484..4d3e373 100644 --- a/plugins/elements/gstqueue2.c +++ b/plugins/elements/gstqueue2.c @@ -797,7 +797,7 @@ update_buffering (GstQueue2 * queue) gint64 percent; gboolean post = FALSE; - if (!queue->use_buffering || queue->high_percent <= 0) + if (queue->high_percent <= 0) return; #define GET_PERCENT(format,alt_max) ((queue->max_level.format) > 0 ? (queue->cur_level.format) * 100 / ((alt_max) > 0 ? MIN ((alt_max), (queue->max_level.format)) : (queue->max_level.format)) : 0) @@ -1751,7 +1751,8 @@ gst_queue2_create_write (GstQueue2 * queue, GstBuffer * buffer) update_cur_level (queue, queue->current); /* update the buffering status */ - update_buffering (queue); + if (queue->use_buffering) + update_buffering (queue); GST_INFO_OBJECT (queue, "cur_level.bytes %u (max %" G_GUINT64_FORMAT ")", queue->cur_level.bytes, QUEUE_MAX_BYTES (queue)); @@ -1861,7 +1862,8 @@ gst_queue2_locked_enqueue (GstQueue2 * queue, gpointer item, gboolean isbuffer) if (item) { /* update the buffering status */ - update_buffering (queue); + if (queue->use_buffering) + update_buffering (queue); if (QUEUE_IS_USING_QUEUE (queue)) { g_queue_push_tail (queue->queue, item); @@ -1921,7 +1923,8 @@ gst_queue2_locked_dequeue (GstQueue2 * queue, gboolean * is_buffer) /* update the byterate stats */ update_out_rates (queue); /* update the buffering */ - update_buffering (queue); + if (queue->use_buffering) + update_buffering (queue); } else if (GST_IS_EVENT (item)) { GstEvent *event = GST_EVENT_CAST (item);