From fa6716c66d31385a0f306c2a3f46f44e0d928ff9 Mon Sep 17 00:00:00 2001 From: Simon Thelen Date: Wed, 9 Jul 2014 21:40:43 +0200 Subject: [PATCH] libavformat/segment: change segment_list_size behavior to match hls_list_size behavior. Make the segment muxer keep segment_list_size segments instead of segment_list_size + 1 segments. This patch also changes the documentation for segment_list_size to reduce possible confusion over how many segments are kept. this allows the segment list to be limited to containing only one segment which used to be impossible because a segment_list_size of 0 kept all the segments and a segment_list_size of 1 kept 2 segments. Signed-off-by: Simon Thelen Signed-off-by: Michael Niedermayer --- doc/muxers.texi | 2 +- libavformat/segment.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index 55e06a3437..2de6a4ee92 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -822,7 +822,7 @@ Select the listing format. @end table @item segment_list_size @var{size} -Update the list file so that it contains at most the last @var{size} +Update the list file so that it contains at most @var{size} segments. If 0 the list file will contain all the segments. Default value is 0. diff --git a/libavformat/segment.c b/libavformat/segment.c index f8227d149e..3de462326a 100644 --- a/libavformat/segment.c +++ b/libavformat/segment.c @@ -333,7 +333,7 @@ static int segment_end(AVFormatContext *s, int write_trailer, int is_last) seg->segment_list_entries_end = entry; /* drop first item */ - if (seg->list_size && seg->segment_count > seg->list_size) { + if (seg->list_size && seg->segment_count >= seg->list_size) { entry = seg->segment_list_entries; seg->segment_list_entries = seg->segment_list_entries->next; av_free(entry->filename);