diff mbox series

[FFmpeg-devel,09/18] fftools/ffmpeg_filter: sanitize framerate retrieved from the filtergraph

Message ID 20230826151144.24858-9-anton@khirnov.net
State Accepted
Commit 82dd4dbe3f465bc11ea8a3b05733b43ca8d44c5c
Headers show
Series [FFmpeg-devel,01/18] fftools/ffmpeg: stop explicitly closing output streams on input EOF | 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 Aug. 26, 2023, 3:11 p.m. UTC
Lavfi uses 1/0 to signal unknown/VFR, which should not be passed to
encoders.
---
 fftools/ffmpeg_filter.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 925b5116cc..177a6f7e5c 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -1805,8 +1805,11 @@  int reap_filters(FilterGraph *fg, int flush)
             if (!fgp->is_meta)
                 fd->bits_per_raw_sample = 0;
 
-            if (ost->type == AVMEDIA_TYPE_VIDEO)
-                fd->frame_rate_filter = av_buffersink_get_frame_rate(filter);
+            if (ost->type == AVMEDIA_TYPE_VIDEO) {
+                AVRational fr = av_buffersink_get_frame_rate(filter);
+                if (fr.num > 0 && fr.den > 0)
+                    fd->frame_rate_filter = fr;
+            }
 
             ret = enc_frame(ost, filtered_frame);
             av_frame_unref(filtered_frame);