[FFmpeg-devel] [PATCH v2] avformat/hls: Partially revert "reduce default max reload to 3"

softworkz ffmpegagent at gmail.com
Thu Feb 27 18:36:56 EET 2025


From: softworkz <softworkz at hotmail.com>

(setting to 100 as a reasonable compromise)

The change has caused regressions for many users and consumers.
Playlist reloads only happen when a playlist doesn't indicate that it
has ended (via #EXT-X-ENDLIST), which means that the addition of future
segments is still expected.
It is well possible that an HLS server is temporarily unable to serve
further segments but resumes after some time, either indicating a
discontinuity or even by fully catching up.
With a segment length of 3s, a max_reload value of 1000 corresponds to
a duration of 50 minutes which appears to be a reasonable default.
---
    avformat/hls: Partially revert "reduce default max reload to 3"
    
    This change has caused regressions for many users and consumers.
    Playlist reloads only happen when a playlist doesn't indicate that it
    has ended (via #EXT-X-ENDLIST), which means that the addition of future
    segments is still expected. It is well possible that an HLS server is
    temporarily unable to serve further segments but resumes after some
    time, either indicating a discontinuity or even by fully catching up.
    With a segment length of 3s, a max_reload value of 1000 corresponds to a
    duration of 50 minutes which appears to be a reasonable default.
    
    V2
    
     * reduced from 1000 to 100 (halfway) according to Michael's calcularion
       :-)

Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-51%2Fsoftworkz%2Fsubmit_hls_reload-v2
Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-51/softworkz/submit_hls_reload-v2
Pull-Request: https://github.com/ffstaging/FFmpeg/pull/51

Range-diff vs v1:

 1:  cc92f8691b ! 1:  e960ffab23 avformat/hls: Revert "reduce default max reload to 3"
     @@ Metadata
      Author: softworkz <softworkz at hotmail.com>
      
       ## Commit message ##
     -    avformat/hls: Revert "reduce default max reload to 3"
     +    avformat/hls: Partially revert "reduce default max reload to 3"
      
     -    This change has caused regressions for many users and consumers.
     +    (setting to 100 as a reasonable compromise)
     +
     +    The change has caused regressions for many users and consumers.
          Playlist reloads only happen when a playlist doesn't indicate that it
          has ended (via #EXT-X-ENDLIST), which means that the addition of future
          segments is still expected.
     @@ libavformat/hls.c: static const AVOption hls_options[] = {
               INT_MIN, INT_MAX, FLAGS},
           {"max_reload", "Maximum number of times a insufficient list is attempted to be reloaded",
      -        OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 3}, 0, INT_MAX, FLAGS},
     -+        OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
     ++        OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 100}, 0, INT_MAX, FLAGS},
           {"m3u8_hold_counters", "The maximum number of times to load m3u8 when it refreshes without new segments",
               OFFSET(m3u8_hold_counters), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
           {"http_persistent", "Use persistent HTTP connections",


 libavformat/hls.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/hls.c b/libavformat/hls.c
index 045741c3b4..116dfcae95 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2577,7 +2577,7 @@ static const AVOption hls_options[] = {
         {.str = "3gp,aac,avi,ac3,eac3,flac,mkv,m3u8,m4a,m4s,m4v,mpg,mov,mp2,mp3,mp4,mpeg,mpegts,ogg,ogv,oga,ts,vob,wav"},
         INT_MIN, INT_MAX, FLAGS},
     {"max_reload", "Maximum number of times a insufficient list is attempted to be reloaded",
-        OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 3}, 0, INT_MAX, FLAGS},
+        OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 100}, 0, INT_MAX, FLAGS},
     {"m3u8_hold_counters", "The maximum number of times to load m3u8 when it refreshes without new segments",
         OFFSET(m3u8_hold_counters), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
     {"http_persistent", "Use persistent HTTP connections",

base-commit: ced9fddec0e45e1ce1b3425a1fed66af971e934c
-- 
ffmpeg-codebot


More information about the ffmpeg-devel mailing list