From 2c394df69df3a27992fce5312b584aac68a8cfcd Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Mon, 7 Oct 2019 14:21:58 +0900 Subject: [PATCH] hlssink2: Respect requested max-files property for decision on removing old fragments from disk hlssink2 defined "max-files" property to decide the maximum number of fragments which should be stored in disk. But we've not used the property. Instead, the size has been maintained by "playlist-length". Since "max-files" and "playlist-length" have different meaning, the decision should be done by "max-files" property. For example, an user might want expose only 3 fragments via playlist but might want to keep more files than 3 in disk. --- ext/hls/gsthlssink2.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ext/hls/gsthlssink2.c b/ext/hls/gsthlssink2.c index 275e41ccc3..f4d6b0a90b 100644 --- a/ext/hls/gsthlssink2.c +++ b/ext/hls/gsthlssink2.c @@ -295,11 +295,12 @@ gst_hls_sink2_handle_message (GstBin * bin, GstMessage * message) g_queue_push_tail (&sink->old_locations, g_strdup (sink->current_location)); - while (g_queue_get_length (&sink->old_locations) > - g_queue_get_length (sink->playlist->entries)) { - gchar *old_location = g_queue_pop_head (&sink->old_locations); - g_remove (old_location); - g_free (old_location); + if (sink->max_files > 0) { + while (g_queue_get_length (&sink->old_locations) > sink->max_files) { + gchar *old_location = g_queue_pop_head (&sink->old_locations); + g_remove (old_location); + g_free (old_location); + } } } }