aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-07-21 16:17:35 +0200
committerAnton Khirnov <anton@khirnov.net>2023-08-30 11:53:50 +0200
commit82dd4dbe3f465bc11ea8a3b05733b43ca8d44c5c (patch)
treeeafd9164a503f4a40ff56988b2b63ad18c862f7b
parentd65d0f4df1434ccb5429cd129b3bdb4a7f06f467 (diff)
downloadffmpeg-82dd4dbe3f465bc11ea8a3b05733b43ca8d44c5c.tar.gz
fftools/ffmpeg_filter: sanitize framerate retrieved from the filtergraph
Lavfi uses 1/0 to signal unknown/VFR, which should not be passed to encoders.
-rw-r--r--fftools/ffmpeg_filter.c7
1 files changed, 5 insertions, 2 deletions
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);