From 58be3093449583d413e94233b27e4b1009b17704 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Tue, 29 Nov 2016 15:30:43 +0100 Subject: [PATCH] multihandlesink: Fix buffers-queued being off by one max_buffer_usage is the index of the oldest buffer in the queue, starting at zero, not the number of buffers queued. find_limits returns the index of the oldest buffer that satisfies the limits in its min_idx parameter, not the number of buffers needed. Fix this use too in order to keep passing the tests that read buffers-queued. https://bugzilla.gnome.org/show_bug.cgi?id=775351 --- gst/tcp/gstmultihandlesink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c index 3ea7f37..876cc32 100644 --- a/gst/tcp/gstmultihandlesink.c +++ b/gst/tcp/gstmultihandlesink.c @@ -1791,7 +1791,7 @@ restart: find_limits (mhsink, &usage, mhsink->bytes_min, mhsink->buffers_min, mhsink->time_min, &max, -1, -1, -1); - max_buffer_usage = MAX (max_buffer_usage, usage + 1); + max_buffer_usage = MAX (max_buffer_usage, usage); GST_LOG_OBJECT (sink, "extended queue to %d", max_buffer_usage); } @@ -1840,7 +1840,7 @@ restart: gst_buffer_unref (old); } /* save for stats */ - mhsink->buffers_queued = max_buffer_usage; + mhsink->buffers_queued = max_buffer_usage + 1; CLIENTS_UNLOCK (sink); /* and send a signal to thread if handle_set changed */ -- 2.7.4