diff options
author | Senthilnathan M <senthil.codr@gmail.com> | 2014-03-01 13:13:51 +0530 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-03-01 15:13:23 +0100 |
commit | 561bfce2033de0daf4d73bdf4232c65becbed8bf (patch) | |
tree | a5ec899b970f02b8c37c9d20546294f6a43c2577 /libavformat/hlsenc.c | |
parent | 5972bcfac9106b9615ce1277deeaf6460ff738fc (diff) | |
download | ffmpeg-561bfce2033de0daf4d73bdf4232c65becbed8bf.tar.gz |
HLS: Handle the case when hls_list_size=0. Playlist file should contain all the segments. Fixes bug #3376.
Signed-off-by: Senthilnathan M <senthil.codr@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/hlsenc.c')
-rw-r--r-- | libavformat/hlsenc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 3b50397010..1b5ef0e4b1 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -102,7 +102,7 @@ static int append_entry(HLSContext *hls, uint64_t duration) hls->end_list = en; - if (hls->nb_entries >= hls->size) { + if (hls->size && hls->nb_entries >= hls->size) { en = hls->list; hls->list = en->next; av_free(en); @@ -145,7 +145,7 @@ static int hls_window(AVFormatContext *s, int last) avio_printf(hls->pb, "#EXT-X-VERSION:3\n"); avio_printf(hls->pb, "#EXT-X-TARGETDURATION:%d\n", target_duration); avio_printf(hls->pb, "#EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", - FFMAX(0, hls->sequence - hls->size)); + FFMAX(0, hls->sequence - hls->nb_entries)); for (en = hls->list; en; en = en->next) { avio_printf(hls->pb, "#EXTINF:%d,\n", en->duration); |