[FFmpeg-devel] [PATCH 07/25] fftools/ffmpeg: stop using InputStream.pts in ts_discontinuity_detect()

Anton Khirnov anton at khirnov.net
Wed Apr 19 22:52:25 EEST 2023


ts_discontinuity_detect() is applied right after demuxing, while
InputStream.pts is a post-decoding timestamp, which may be delayed with
respect to demuxing by an arbitrary amount (e.g. depending on the thread
count when frame threading is used).
---
 fftools/ffmpeg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index a7e856e9e2..cc087ea7de 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -2121,7 +2121,7 @@ static void ts_discontinuity_detect(InputFile *ifile, InputStream *ist,
         int64_t delta = pkt_dts - ist->next_dts;
         if (fmt_is_discont) {
             if (FFABS(delta) > 1LL * dts_delta_threshold * AV_TIME_BASE ||
-                pkt_dts + AV_TIME_BASE/10 < FFMAX(ist->pts, ist->dts)) {
+                pkt_dts + AV_TIME_BASE/10 < ist->dts) {
                 ifile->ts_offset_discont -= delta;
                 av_log(NULL, AV_LOG_WARNING,
                        "timestamp discontinuity for stream #%d:%d "
-- 
2.39.1



More information about the ffmpeg-devel mailing list