aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-11-02 19:57:59 +0100
committerAnton Khirnov <anton@khirnov.net>2023-12-12 08:24:18 +0100
commit4b8a171beb385c949cbe73fa3f5366c4cdccf72f (patch)
treed0990b016da684af2fb0f3f886321d13768d4bbb
parent7665139656280a2f77ee8d047dd998c1b78af7eb (diff)
downloadffmpeg-4b8a171beb385c949cbe73fa3f5366c4cdccf72f.tar.gz
fftools/ffmpeg_filter: make sub2video heartbeat more robust
Avoid making decisions based on current graph input state, which makes the output dependent on the order in which the frames from different inputs are interleaved. Makes the output of fate-filter-overlay-dvdsub-2397 more correct - the subtitle appears two frames later, which is closer to its PTS as stored in the file.
-rw-r--r--fftools/ffmpeg_filter.c3
-rw-r--r--tests/ref/fate/filter-overlay-dvdsub-23974
-rw-r--r--tests/ref/fate/sub2video8
3 files changed, 8 insertions, 7 deletions
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 3172ae25ec..69c28a6b2b 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -2280,8 +2280,7 @@ void ifilter_sub2video_heartbeat(InputFilter *ifilter, int64_t pts, AVRational t
or if we need to initialize the system, update the
overlayed subpicture and its start/end times */
sub2video_update(ifp, pts2 + 1, NULL);
-
- if (av_buffersrc_get_nb_failed_requests(ifp->filter))
+ else
sub2video_push_ref(ifp, pts2);
}
diff --git a/tests/ref/fate/filter-overlay-dvdsub-2397 b/tests/ref/fate/filter-overlay-dvdsub-2397
index 7df4f50776..45c026f540 100644
--- a/tests/ref/fate/filter-overlay-dvdsub-2397
+++ b/tests/ref/fate/filter-overlay-dvdsub-2397
@@ -489,12 +489,12 @@
1, 3877, 3877, 10, 2013, 0x95a39f9c
1, 3887, 3887, 10, 2013, 0x4f7ea123
1, 3897, 3897, 10, 2013, 0x9efb9ba1
-0, 117, 117, 1, 518400, 0xbf8523da
+0, 117, 117, 1, 518400, 0x61e0f688
1, 3907, 3907, 10, 2013, 0xf395b2cd
1, 3917, 3917, 10, 2013, 0x261a881e
1, 3927, 3927, 10, 2013, 0x7f2d9f72
1, 3937, 3937, 10, 2013, 0x0105b38d
-0, 118, 118, 1, 518400, 0x41890ed6
+0, 118, 118, 1, 518400, 0xa47de755
1, 3952, 3952, 10, 2013, 0x0e5db67e
1, 3962, 3962, 10, 2013, 0xfc9baf97
0, 119, 119, 1, 518400, 0x588534fc
diff --git a/tests/ref/fate/sub2video b/tests/ref/fate/sub2video
index 80abe9c905..76347322f3 100644
--- a/tests/ref/fate/sub2video
+++ b/tests/ref/fate/sub2video
@@ -68,7 +68,8 @@
0, 258, 258, 1, 518400, 0x34cdddee
0, 269, 269, 1, 518400, 0xbab197ea
1, 53910000, 53910000, 2696000, 2095, 0x61bb15ed
-0, 270, 270, 1, 518400, 0x4db4ce51
+0, 270, 270, 1, 518400, 0xbab197ea
+0, 271, 271, 1, 518400, 0x4db4ce51
0, 283, 283, 1, 518400, 0xbab197ea
1, 56663000, 56663000, 1262000, 1013, 0xc9ae89b7
0, 284, 284, 1, 518400, 0xe6bc0ea9
@@ -137,7 +138,7 @@
1, 168049000, 168049000, 1900000, 1312, 0x0bf20e8d
0, 850, 850, 1, 518400, 0xbab197ea
1, 170035000, 170035000, 1524000, 1279, 0xb6c2dafe
-0, 851, 851, 1, 518400, 0x8780239e
+0, 851, 851, 1, 518400, 0xbab197ea
0, 858, 858, 1, 518400, 0xbab197ea
0, 861, 861, 1, 518400, 0x6eb72347
1, 172203000, 172203000, 1695000, 1826, 0x9a1ac769
@@ -161,7 +162,8 @@
0, 976, 976, 1, 518400, 0x923d1ce7
0, 981, 981, 1, 518400, 0xbab197ea
1, 196361000, 196361000, 1524000, 1715, 0x695ca41e
-0, 982, 982, 1, 518400, 0x6e652cd2
+0, 982, 982, 1, 518400, 0xbab197ea
+0, 983, 983, 1, 518400, 0x6e652cd2
0, 989, 989, 1, 518400, 0xbab197ea
1, 197946000, 197946000, 1160000, 789, 0xc63a189e
0, 990, 990, 1, 518400, 0x25113966