[FFmpeg-cvslog] fftools/ffmpeg_filter: stop using InputStream.pts for filter EOF ts

Anton Khirnov git at videolan.org
Tue May 2 12:31:29 EEST 2023


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Wed Apr 26 00:09:50 2023 +0200| [ae95cd85dc73319a704f1092b7542978ef8869dd] | committer: Anton Khirnov

fftools/ffmpeg_filter: stop using InputStream.pts for filter EOF ts

Use InputStream.last_frame_pts/duration instead, which is more accurate.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ae95cd85dc73319a704f1092b7542978ef8869dd
---

 fftools/ffmpeg.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index e9b083b05a..3a0d1b4559 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -1382,7 +1382,9 @@ static int send_filter_eof(InputStream *ist)
     int i, ret;
 
     for (i = 0; i < ist->nb_filters; i++) {
-        ret = ifilter_send_eof(ist->filters[i], ist->pts, AV_TIME_BASE_Q);
+        int64_t end_pts = ist->last_frame_pts == AV_NOPTS_VALUE ? AV_NOPTS_VALUE :
+                          ist->last_frame_pts + ist->last_frame_duration_est;
+        ret = ifilter_send_eof(ist->filters[i], end_pts, ist->last_frame_tb);
         if (ret < 0)
             return ret;
     }



More information about the ffmpeg-cvslog mailing list