diff mbox series

[FFmpeg-devel,1/2] lavf/vf_setpts: unset output framerate

Message ID 20240327150841.8311-1-anton@khirnov.net
State Accepted
Commit f121d954ac89060cb7b07da230479cffe5bf9e5c
Headers show
Series [FFmpeg-devel,1/2] lavf/vf_setpts: unset output framerate | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Anton Khirnov March 27, 2024, 3:08 p.m. UTC
This filter produces VFR output in general.

Avoids dropping frames in the setpts test.
---
 libavfilter/setpts.c         | 17 ++++++-
 tests/ref/fate/filter-setpts | 89 +++++++++++++++++++++---------------
 2 files changed, 67 insertions(+), 39 deletions(-)
diff mbox series

Patch

diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index 88a8d6af86..4f02a9a617 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -150,6 +150,13 @@  static int config_input(AVFilterLink *inlink)
     return 0;
 }
 
+static int config_output_video(AVFilterLink *outlink)
+{
+    outlink->frame_rate = (AVRational){ 1, 0 };
+
+    return 0;
+}
+
 #define BUF_SIZE 64
 
 static inline char *double2int64str(char *buf, double v)
@@ -322,6 +329,14 @@  static const AVFilterPad avfilter_vf_setpts_inputs[] = {
     },
 };
 
+static const AVFilterPad outputs_video[] = {
+    {
+        .name         = "default",
+        .type         = AVMEDIA_TYPE_VIDEO,
+        .config_props = config_output_video,
+    },
+};
+
 const AVFilter ff_vf_setpts = {
     .name            = "setpts",
     .description     = NULL_IF_CONFIG_SMALL("Set PTS for the output video frame."),
@@ -335,7 +350,7 @@  const AVFilter ff_vf_setpts = {
     .priv_class = &setpts_class,
 
     FILTER_INPUTS(avfilter_vf_setpts_inputs),
-    FILTER_OUTPUTS(ff_video_default_filterpad),
+    FILTER_OUTPUTS(outputs_video),
 };
 #endif /* CONFIG_SETPTS_FILTER */
 
diff --git a/tests/ref/fate/filter-setpts b/tests/ref/fate/filter-setpts
index efdcf6a16e..8aa7a1e6a0 100644
--- a/tests/ref/fate/filter-setpts
+++ b/tests/ref/fate/filter-setpts
@@ -1,42 +1,55 @@ 
-#tb 0: 1/25
+#tb 0: 1/1000
 #media_type 0: video
 #codec_id 0: rawvideo
 #dimensions 0: 352x288
 #sar 0: 0/1
-0,          0,          0,        1,   152064, 0x05b789ef
-0,          1,          1,        1,   152064, 0x4bb46551
-0,          2,          2,        1,   152064, 0x9dddf64a
-0,          3,          3,        1,   152064, 0x2a8380b0
-0,          4,          4,        1,   152064, 0x4de3b652
-0,          5,          5,        1,   152064, 0xedb5a8e6
-0,          6,          6,        1,   152064, 0x5ab58bac
-0,          7,          7,        1,   152064, 0x1f1b8026
-0,          8,          8,        1,   152064, 0x91373915
-0,          9,          9,        1,   152064, 0x30f5fcd5
-0,         10,         10,        1,   152064, 0xc711ad61
-0,         11,         11,        1,   152064, 0x52a48ddd
-0,         12,         12,        1,   152064, 0xa91c0f05
-0,         13,         13,        1,   152064, 0x8e364e18
-0,         14,         14,        1,   152064, 0xf25f6acc
-0,         15,         15,        1,   152064, 0xf34ddbff
-0,         16,         16,        1,   152064, 0x9dc72412
-0,         17,         17,        1,   152064, 0x445d1d59
-0,         18,         18,        1,   152064, 0x2f2768ef
-0,         19,         19,        1,   152064, 0x95579936
-0,         20,         20,        1,   152064, 0x43d796b5
-0,         21,         21,        1,   152064, 0x76d2a455
-0,         22,         22,        1,   152064, 0x6dc3650e
-0,         23,         23,        1,   152064, 0x0f9d6aca
-0,         24,         24,        1,   152064, 0xd766fc8d
-0,         25,         25,        1,   152064, 0xe22f7a30
-0,         26,         26,        1,   152064, 0xfa8d94fb
-0,         27,         27,        1,   152064, 0x4c9737ab
-0,         28,         28,        1,   152064, 0xa50d01f8
-0,         29,         29,        1,   152064, 0x88734edd
-0,         30,         30,        1,   152064, 0xd2735925
-0,         31,         31,        1,   152064, 0x20cebfa9
-0,         32,         32,        1,   152064, 0x575c20ec
-0,         33,         33,        1,   152064, 0x61b47e73
-0,         34,         34,        1,   152064, 0x09ef53ff
-0,         35,         35,        1,   152064, 0x6e88c5c2
-0,         36,         36,        1,   152064, 0x4bbad8ea
+0,          0,          0,       40,   152064, 0x05b789ef
+0,         28,         28,       40,   152064, 0x4bb46551
+0,         57,         57,       40,   152064, 0x9dddf64a
+0,         86,         86,       40,   152064, 0x2a8380b0
+0,        115,        115,       40,   152064, 0x4de3b652
+0,        144,        144,       40,   152064, 0xedb5a8e6
+0,        172,        172,       40,   152064, 0xe20f7c23
+0,        201,        201,       40,   152064, 0x5ab58bac
+0,        229,        229,       40,   152064, 0x1f1b8026
+0,        258,        258,       40,   152064, 0x91373915
+0,        286,        286,       40,   152064, 0x02344760
+0,        314,        314,       40,   152064, 0x30f5fcd5
+0,        343,        343,       40,   152064, 0xc711ad61
+0,        371,        371,       40,   152064, 0x24eca223
+0,        399,        399,       40,   152064, 0x52a48ddd
+0,        427,        427,       40,   152064, 0xa91c0f05
+0,        456,        456,       40,   152064, 0x8e364e18
+0,        484,        484,       40,   152064, 0xb15d38c8
+0,        512,        512,       40,   152064, 0xf25f6acc
+0,        541,        541,       40,   152064, 0xf34ddbff
+0,        570,        570,       40,   152064, 0xfc7bf570
+0,        598,        598,       40,   152064, 0x9dc72412
+0,        627,        627,       40,   152064, 0x445d1d59
+0,        656,        656,       40,   152064, 0x2f2768ef
+0,        685,        685,       40,   152064, 0xce09f9d6
+0,        714,        714,       40,   152064, 0x95579936
+0,        743,        743,       40,   152064, 0x43d796b5
+0,        772,        772,       40,   152064, 0xd780d887
+0,        800,        800,       40,   152064, 0x76d2a455
+0,        829,        829,       40,   152064, 0x6dc3650e
+0,        858,        858,       40,   152064, 0x0f9d6aca
+0,        887,        887,       40,   152064, 0xe295c51e
+0,        915,        915,       40,   152064, 0xd766fc8d
+0,        944,        944,       40,   152064, 0xe22f7a30
+0,        972,        972,       40,   152064, 0x7fea4378
+0,       1000,       1000,       40,   152064, 0xfa8d94fb
+0,       1029,       1029,       40,   152064, 0x4c9737ab
+0,       1057,       1057,       40,   152064, 0xa50d01f8
+0,       1085,       1085,       40,   152064, 0x0b07594c
+0,       1113,       1113,       40,   152064, 0x88734edd
+0,       1142,       1142,       40,   152064, 0xd2735925
+0,       1170,       1170,       40,   152064, 0xd4e49e08
+0,       1198,       1198,       40,   152064, 0x20cebfa9
+0,       1227,       1227,       40,   152064, 0x575c20ec
+0,       1255,       1255,       40,   152064, 0xfd500471
+0,       1284,       1284,       40,   152064, 0x61b47e73
+0,       1313,       1313,       40,   152064, 0x09ef53ff
+0,       1341,       1341,       40,   152064, 0x6e88c5c2
+0,       1370,       1370,       40,   152064, 0xbb87b483
+0,       1399,       1399,       40,   152064, 0x4bbad8ea