From 7fb522718ece37da7f37097f5a482623a7559445 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 15 Jun 2012 15:36:41 +0200 Subject: [PATCH] queue2: fix percent scaling Use _scale functions to scale the percent values. Correctly scale the percent values in the buffering ranges. --- plugins/elements/gstqueue2.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c index 158da10..fa7747c 100644 --- a/plugins/elements/gstqueue2.c +++ b/plugins/elements/gstqueue2.c @@ -2723,7 +2723,9 @@ gst_queue2_handle_src_query (GstPad * pad, GstObject * parent, GstQuery * query) start = 0; /* get our available data relative to the duration */ if (duration != -1) - stop = GST_FORMAT_PERCENT_MAX * writing_pos / duration; + stop = + gst_util_uint64_scale (GST_FORMAT_PERCENT_MAX, writing_pos, + duration); else stop = -1; break; @@ -2747,8 +2749,12 @@ gst_queue2_handle_src_query (GstPad * pad, GstObject * parent, GstQuery * query) range_stop = 0; break; } - range_start = 100 * queued_ranges->offset / duration; - range_stop = 100 * queued_ranges->writing_pos / duration; + range_start = + gst_util_uint64_scale (GST_FORMAT_PERCENT_MAX, + queued_ranges->offset, duration); + range_stop = + gst_util_uint64_scale (GST_FORMAT_PERCENT_MAX, + queued_ranges->writing_pos, duration); break; case GST_FORMAT_BYTES: range_start = queued_ranges->offset; -- 2.7.4