From 8d4bdf99e5650019e25174de3ff41c8c3396a904 Mon Sep 17 00:00:00 2001 From: huheng Date: Mon, 27 Jun 2022 21:30:11 +0800 Subject: [PATCH] avformat/hlsenc: Add resend_headers option Add pat and pmt table at start of each segment in single_file mode enhanced compatibility of hls stream. Because some hls clients separate parsing segment of hls stream, the absence of pat/pmt will cause parsing to fail. Reviewed-by: Steven Liu Signed-off-by: huheng --- libavformat/hlsenc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 7c097b4bf2..6f49ae1aa2 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -2635,6 +2635,9 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) vs->start_pos += vs->size; if (hls->key_info_file || hls->encrypt) ret = hls_start(s, vs); + if (hls->segment_type == SEGMENT_TYPE_MPEGTS && oc->oformat->priv_class && oc->priv_data) { + av_opt_set(oc->priv_data, "mpegts_flags", "resend_headers", 0); + } } else if (hls->max_seg_size > 0) { if (vs->size + vs->start_pos >= hls->max_seg_size) { vs->sequence++;