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 <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Simon Thelen 2014-07-09 21:40:43 +02:00 committed by Michael Niedermayer
parent 37a0ac1d82
commit fa6716c66d
2 changed files with 2 additions and 2 deletions

View File

@ -822,7 +822,7 @@ Select the listing format.
@end table @end table
@item segment_list_size @var{size} @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 segments. If 0 the list file will contain all the segments. Default
value is 0. value is 0.

View File

@ -333,7 +333,7 @@ static int segment_end(AVFormatContext *s, int write_trailer, int is_last)
seg->segment_list_entries_end = entry; seg->segment_list_entries_end = entry;
/* drop first item */ /* 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; entry = seg->segment_list_entries;
seg->segment_list_entries = seg->segment_list_entries->next; seg->segment_list_entries = seg->segment_list_entries->next;
av_free(entry->filename); av_free(entry->filename);