From 07dc9ba0712c26be86f031fb6f77bee177cbb828 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Tue, 17 Jan 2017 13:52:20 +0100 Subject: [PATCH] decodebin2: Set a time limit on "upstream" multiqueues Those multiqueue are the ones dealing with adaptive demuxers. They should have a time limit set so that they don't end up buffering too much data. They would previously be set with no limits at all, which would cause them to grow indefinitely until downstream blocks. --- gst/playback/gstdecodebin2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index b17f124..65346cf 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -241,7 +241,7 @@ enum * as low as possible (try to aim for 5 buffers) */ #define AUTO_PLAY_SIZE_BYTES 2 * 1024 * 1024 #define AUTO_PLAY_SIZE_BUFFERS 5 -#define AUTO_PLAY_SIZE_TIME 0 +#define AUTO_PLAY_SIZE_TIME 5 * GST_SECOND #define DEFAULT_SUBTITLE_ENCODING NULL #define DEFAULT_USE_BUFFERING FALSE @@ -3732,7 +3732,7 @@ decodebin_set_queue_size_full (GstDecodeBin * dbin, GstElement * multiqueue, if ((max_buffers = dbin->max_size_buffers) == 0) max_buffers = AUTO_PLAY_SIZE_BUFFERS; /* this is a multiqueue with disabled buffering, don't limit max_time */ - if (dbin->use_buffering) + if (use_buffering) max_time = 0; else if ((max_time = dbin->max_size_time) == 0) max_time = AUTO_PLAY_SIZE_TIME; -- 2.7.4