diff mbox series

[FFmpeg-devel] avformat/hlsenc: Add resend_headers option

Message ID 20220625153552.85500-1-heng.hu.1989@gmail.com
State New
Headers show
Series [FFmpeg-devel] avformat/hlsenc: Add resend_headers option | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
andriy/make_armv7_RPi4 success Make finished
andriy/make_fate_armv7_RPi4 success Make fate finished

Commit Message

hu heng June 25, 2022, 3:35 p.m. UTC
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.

Signed-off-by: huheng <heng.hu.1989@gmail.com>
---
 libavformat/hlsenc.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Steven Liu June 27, 2022, 2:24 a.m. UTC | #1
huheng <heng.hu.1989@gmail.com> 于2022年6月25日周六 23:36写道:
>
> 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.
>
> Signed-off-by: huheng <heng.hu.1989@gmail.com>
> ---
>  libavformat/hlsenc.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> index 3bafddfa61..ee5c5afe56 100644
> --- a/libavformat/hlsenc.c
> +++ b/libavformat/hlsenc.c
> @@ -2631,6 +2631,11 @@ 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);
> +
Is it need check hls->segment_type == SEGMENT_TYPE_MPEGTS here?
> +            if (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++;
> --
> 2.36.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

Thanks
Steven
hu heng June 27, 2022, 1:23 p.m. UTC | #2
Your are right, I will send a new version of this patch.

Thanks.

Steven Liu <lingjiujianke@gmail.com> 于2022年6月27日周一 10:25写道:

> huheng <heng.hu.1989@gmail.com> 于2022年6月25日周六 23:36写道:
> >
> > 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.
> >
> > Signed-off-by: huheng <heng.hu.1989@gmail.com>
> > ---
> >  libavformat/hlsenc.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> > index 3bafddfa61..ee5c5afe56 100644
> > --- a/libavformat/hlsenc.c
> > +++ b/libavformat/hlsenc.c
> > @@ -2631,6 +2631,11 @@ 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);
> > +
> Is it need check hls->segment_type == SEGMENT_TYPE_MPEGTS here?
> > +            if (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++;
> > --
> > 2.36.1
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
> Thanks
> Steven
>
diff mbox series

Patch

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 3bafddfa61..ee5c5afe56 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -2631,6 +2631,11 @@  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 (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++;