fftools/ffmpeg_filter: sanitize framerate retrieved from the filtergraph

Lavfi uses 1/0 to signal unknown/VFR, which should not be passed to
encoders.
This commit is contained in:
Anton Khirnov 2023-07-21 16:17:35 +02:00
parent d65d0f4df1
commit 82dd4dbe3f
1 changed files with 5 additions and 2 deletions

View File

@ -1805,8 +1805,11 @@ int reap_filters(FilterGraph *fg, int flush)
if (!fgp->is_meta) if (!fgp->is_meta)
fd->bits_per_raw_sample = 0; fd->bits_per_raw_sample = 0;
if (ost->type == AVMEDIA_TYPE_VIDEO) if (ost->type == AVMEDIA_TYPE_VIDEO) {
fd->frame_rate_filter = av_buffersink_get_frame_rate(filter); 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); ret = enc_frame(ost, filtered_frame);
av_frame_unref(filtered_frame); av_frame_unref(filtered_frame);