[FFmpeg-devel] [PATCH] avformat/mpegts: make sure mpegts_read_header always stops at the first pmt

Ross Nicholson phunkyfish at gmail.com
Sun Nov 15 11:39:11 EET 2020


On Sat, 14 Nov 2020 at 23:40, Marton Balint <cus at passwd.hu> wrote:

> mpegts_read_header stops parsing the file at the first PMT. However the
> check
> that ensured this was wrong because streams can also be added before the
> first
> PMT is received (e.g. EIT).
>
> So let's make sure we are in the header reading phase by checking if
> ts->pkt is
> unset instead of checking if the number of streams found so far is 0.
>
> Signed-off-by: Marton Balint <cus at passwd.hu>
> ---
>  libavformat/mpegts.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> index 80d010db6c..a2003c6632 100644
> --- a/libavformat/mpegts.c
> +++ b/libavformat/mpegts.c
> @@ -2355,7 +2355,7 @@ static void pmt_cb(MpegTSFilter *filter, const
> uint8_t *section, int section_len
>          goto out;
>
>      // stop parsing after pmt, we found header
> -    if (!ts->stream->nb_streams)
> +    if (!ts->pkt)
>          ts->stop_parse = 2;
>
>      set_pmt_found(ts, h->id);
> --
> 2.26.2
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


Thanks for this. With this fix streams with embedded EIT data open in
approx 1-1.5 seconds as opposed to 10-15 seconds without the fix. If
possible also having this fix in the 4.3 branch as well as master would be
great.


More information about the ffmpeg-devel mailing list