From ea6ed838c3fe0e2462163d35cbbed772f4bcff9f Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Sun, 8 May 2022 09:15:40 +0800 Subject: avformat/hlsenc: check discont_program_date_time before use it in parse_playlist Fix ticket: 9238 In parse_playlist, the discont_program_date_time should be used after EXT-X-PROGRAM-DATE-TIME tag parsed. Tested-by: pero Reviewed-by: Zhao Zhili Signed-off-by: Steven Liu --- libavformat/hlsenc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libavformat') diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 5561be0588..3bafddfa61 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1286,8 +1286,10 @@ static int parse_playlist(AVFormatContext *s, const char *url, VariantStream *vs new_start_pos = avio_tell(vs->avf->pb); vs->size = new_start_pos - vs->start_pos; ret = hls_append_segment(s, hls, vs, vs->duration, vs->start_pos, vs->size); - vs->last_segment->discont_program_date_time = discont_program_date_time; - discont_program_date_time += vs->duration; + if (discont_program_date_time) { + vs->last_segment->discont_program_date_time = discont_program_date_time; + discont_program_date_time += vs->duration; + } if (ret < 0) goto fail; vs->start_pos = new_start_pos; -- cgit v1.2.3