diff --git a/daemon/main.c b/daemon/main.c index f58e6f147..c4b69d3fd 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -761,6 +761,7 @@ static void options(int *argc, char ***argv, charp_ht templates) { int delete_delay = 30; int media_expire = 0; int db_expire = 0; + int cache_expire = 0; int rtcp_interval = 0; int redis_disable_time = 10; int mqtt_publish_interval = 5000; @@ -928,7 +929,7 @@ static void options(int *argc, char ***argv, charp_ht templates) { { "db-media-cache",0,0, G_OPTION_ARG_FILENAME, &rtpe_config.db_media_cache,"Directory to store media loaded from database","PATH"}, { "preload-db-cache",0,0,G_OPTION_ARG_STRING_ARRAY,&rtpe_config.preload_db_cache,"Preload media from database for playback into file cache","INT"}, { "db-cache-reload",0,0,G_OPTION_ARG_INT, &rtpe_config.cache_refresh,"Refresh/reload cached media from DB at a certain interval","SECONDS"}, - { "db-cache-expire",0,0,G_OPTION_ARG_INT, &rtpe_config.cache_expire,"Maximum age of unused cached DB entries in files","SECONDS"}, + { "db-cache-expire",0,0,G_OPTION_ARG_INT, &cache_expire,"Maximum age of unused cached DB entries in files","SECONDS"}, { "audio-buffer-length",0,0, G_OPTION_ARG_INT,&rtpe_config.audio_buffer_length,"Length in milliseconds of audio buffer","INT"}, { "audio-buffer-delay",0,0, G_OPTION_ARG_INT,&rtpe_config.audio_buffer_delay,"Initial delay in milliseconds for buffered audio","INT"}, { "audio-player",0,0, G_OPTION_ARG_STRING, &use_audio_player, "When to enable the internal audio player","on-demand|play-media|transcoding|always"}, @@ -1236,6 +1237,10 @@ static void options(int *argc, char ***argv, charp_ht templates) { if (rtpe_config.media_expire_us < 0) die("Invalid negative media-files-expire"); + rtpe_config.cache_expire_us = cache_expire * 1000000LL; + if (rtpe_config.cache_expire_us < 0) + die("Invalid negative db-cache-expire"); + rtpe_config.db_expire_us = db_expire * 1000000LL; if (rtpe_config.db_expire_us < 0) die("Invalid negative db-media-expire"); diff --git a/daemon/media_player.c b/daemon/media_player.c index 189d15e95..b7f574d5a 100644 --- a/daemon/media_player.c +++ b/daemon/media_player.c @@ -2911,7 +2911,7 @@ static void media_player_expire_cache_entry(unsigned long long id, unsigned int int64_t mtime, atime; if (!media_player_get_cache_times(id, &mtime, &atime)) return; - int64_t limit = rtpe_now - (rtpe_config.cache_expire * 1000000LL); // db-cache-expire + int64_t limit = rtpe_now - rtpe_config.cache_expire_us; // db-cache-expire if (atime >= limit) return; if (media_player_evict_cache(id)) @@ -2919,7 +2919,7 @@ static void media_player_expire_cache_entry(unsigned long long id, unsigned int } static void media_player_expire_caches(void) { - if (rtpe_config.cache_expire <= 0) // db-cache-expire + if (rtpe_config.cache_expire_us <= 0) // db-cache-expire return; unsigned int ret = 0; diff --git a/include/main.h b/include/main.h index 2b411f0a2..0764f5b2a 100644 --- a/include/main.h +++ b/include/main.h @@ -92,7 +92,6 @@ enum endpoint_learning { X(db_refresh) \ X(cache_refresh) \ X(expiry_timer) \ - X(cache_expire) \ X(timer_accuracy) \ X(ng_client_timeout) \ X(ng_client_retries) \ @@ -107,6 +106,7 @@ enum endpoint_learning { X(offer_timeout_us) \ X(delete_delay_us) \ X(media_expire_us) \ + X(cache_expire_us) \ X(db_expire_us) \ X(rtcp_interval_us) \ X(redis_disable_time_us) \