From c820c2d4bfb7e2573f7bf8e2a3544a98e5a11343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= Date: Thu, 13 Aug 2020 00:27:09 +0300 Subject: [PATCH] avformat/mpegts: only reset timestamps to NOPTS for DVB teletext While having the possibility of non-NOPTS values that can suddenly jump in time due to adjustments to match PCR is not nice for DVB subtitles, apparently the parser for this format bases its behavior on whether the packets' timestamps are NOPTS or not. Thus while we can adjust timestamps, we should exclude DVB subtitles from the timestamp unsetting logic. Fixes #8844 --- libavformat/mpegts.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index f71f18a57d91c..50d4d5e9bc6b8 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -1343,7 +1343,8 @@ static int mpegts_push_data(MpegTSFilter *filter, } } - if (!pcr_found) { + if (pes->st->codecpar->codec_id == AV_CODEC_ID_DVB_TELETEXT && + !pcr_found) { av_log(pes->stream, AV_LOG_VERBOSE, "Forcing DTS/PTS to be unset for a " "non-trustworthy PES packet for PID %d as "