[FFmpeg-cvslog] avformat/hlsenc: check discont_program_date_time before use it in parse_playlist

Steven Liu git at videolan.org
Thu May 12 11:39:49 EEST 2022


ffmpeg | branch: master | Steven Liu <lq at chinaffmpeg.org> | Sun May  8 09:15:40 2022 +0800| [ea6ed838c3fe0e2462163d35cbbed772f4bcff9f] | committer: Steven Liu

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 <zhilizhao at tencent.com>
Signed-off-by: Steven Liu <lq at chinaffmpeg.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ea6ed838c3fe0e2462163d35cbbed772f4bcff9f
---

 libavformat/hlsenc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

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;



More information about the ffmpeg-cvslog mailing list