* [FFmpeg-devel] [PATCH 1/2] lavf/vf_setpts: unset output framerate
@ 2024-03-27 15:08 Anton Khirnov
2024-03-27 15:08 ` [FFmpeg-devel] [PATCH 2/2] lavfi/setpts: unset frame durations Anton Khirnov
0 siblings, 1 reply; 2+ messages in thread
From: Anton Khirnov @ 2024-03-27 15:08 UTC (permalink / raw)
To: ffmpeg-devel
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 --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
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] lavfi/setpts: unset frame durations
2024-03-27 15:08 [FFmpeg-devel] [PATCH 1/2] lavf/vf_setpts: unset output framerate Anton Khirnov
@ 2024-03-27 15:08 ` Anton Khirnov
0 siblings, 0 replies; 2+ messages in thread
From: Anton Khirnov @ 2024-03-27 15:08 UTC (permalink / raw)
To: ffmpeg-devel
Actual frame durations are, in general, not computable without buffering
a frame.
---
libavfilter/setpts.c | 1 +
tests/ref/fate/filter-setpts | 100 +++++++++++++++++------------------
2 files changed, 51 insertions(+), 50 deletions(-)
diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index 4f02a9a617..60cf2b642e 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -205,6 +205,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
d = eval_pts(setpts, inlink, frame, frame->pts);
frame->pts = D2TS(d);
+ frame->duration = 0;
av_log(inlink->dst, AV_LOG_TRACE,
"N:%"PRId64" PTS:%s T:%f",
diff --git a/tests/ref/fate/filter-setpts b/tests/ref/fate/filter-setpts
index 8aa7a1e6a0..08e0203831 100644
--- a/tests/ref/fate/filter-setpts
+++ b/tests/ref/fate/filter-setpts
@@ -3,53 +3,53 @@
#codec_id 0: rawvideo
#dimensions 0: 352x288
#sar 0: 0/1
-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
+0, 0, 0, 0, 152064, 0x05b789ef
+0, 28, 28, 0, 152064, 0x4bb46551
+0, 57, 57, 0, 152064, 0x9dddf64a
+0, 86, 86, 0, 152064, 0x2a8380b0
+0, 115, 115, 0, 152064, 0x4de3b652
+0, 144, 144, 0, 152064, 0xedb5a8e6
+0, 172, 172, 0, 152064, 0xe20f7c23
+0, 201, 201, 0, 152064, 0x5ab58bac
+0, 229, 229, 0, 152064, 0x1f1b8026
+0, 258, 258, 0, 152064, 0x91373915
+0, 286, 286, 0, 152064, 0x02344760
+0, 314, 314, 0, 152064, 0x30f5fcd5
+0, 343, 343, 0, 152064, 0xc711ad61
+0, 371, 371, 0, 152064, 0x24eca223
+0, 399, 399, 0, 152064, 0x52a48ddd
+0, 427, 427, 0, 152064, 0xa91c0f05
+0, 456, 456, 0, 152064, 0x8e364e18
+0, 484, 484, 0, 152064, 0xb15d38c8
+0, 512, 512, 0, 152064, 0xf25f6acc
+0, 541, 541, 0, 152064, 0xf34ddbff
+0, 570, 570, 0, 152064, 0xfc7bf570
+0, 598, 598, 0, 152064, 0x9dc72412
+0, 627, 627, 0, 152064, 0x445d1d59
+0, 656, 656, 0, 152064, 0x2f2768ef
+0, 685, 685, 0, 152064, 0xce09f9d6
+0, 714, 714, 0, 152064, 0x95579936
+0, 743, 743, 0, 152064, 0x43d796b5
+0, 772, 772, 0, 152064, 0xd780d887
+0, 800, 800, 0, 152064, 0x76d2a455
+0, 829, 829, 0, 152064, 0x6dc3650e
+0, 858, 858, 0, 152064, 0x0f9d6aca
+0, 887, 887, 0, 152064, 0xe295c51e
+0, 915, 915, 0, 152064, 0xd766fc8d
+0, 944, 944, 0, 152064, 0xe22f7a30
+0, 972, 972, 0, 152064, 0x7fea4378
+0, 1000, 1000, 0, 152064, 0xfa8d94fb
+0, 1029, 1029, 0, 152064, 0x4c9737ab
+0, 1057, 1057, 0, 152064, 0xa50d01f8
+0, 1085, 1085, 0, 152064, 0x0b07594c
+0, 1113, 1113, 0, 152064, 0x88734edd
+0, 1142, 1142, 0, 152064, 0xd2735925
+0, 1170, 1170, 0, 152064, 0xd4e49e08
+0, 1198, 1198, 0, 152064, 0x20cebfa9
+0, 1227, 1227, 0, 152064, 0x575c20ec
+0, 1255, 1255, 0, 152064, 0xfd500471
+0, 1284, 1284, 0, 152064, 0x61b47e73
+0, 1313, 1313, 0, 152064, 0x09ef53ff
+0, 1341, 1341, 0, 152064, 0x6e88c5c2
+0, 1370, 1370, 0, 152064, 0xbb87b483
+0, 1399, 1399, 0, 152064, 0x4bbad8ea
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-03-27 15:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-27 15:08 [FFmpeg-devel] [PATCH 1/2] lavf/vf_setpts: unset output framerate Anton Khirnov
2024-03-27 15:08 ` [FFmpeg-devel] [PATCH 2/2] lavfi/setpts: unset frame durations Anton Khirnov
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git