summaryrefslogtreecommitdiff
path: root/fftools
diff options
context:
space:
mode:
authorThierry Foucu <tfoucu@gmail.com>2019-03-27 14:11:59 -0700
committerMichael Niedermayer <michael@niedermayer.cc>2019-03-28 21:29:20 +0100
commit0ac3befd479877f11c795ecef8bf1ce2184c5a7a (patch)
tree2c73db48bb2df30580ba64a2c821f20804a6b0b6 /fftools
parentc47fada298e684a07fb6ba047f6843f1cdd48aa8 (diff)
downloadffmpeg-0ac3befd479877f11c795ecef8bf1ce2184c5a7a.tar.gz
fftools/ffmpeg: Check if we do have also a filter_complex filter.
Right now, the code check for no filter description, but if we use a filter_complex, the code will use the AVFrame.duration which could be wrong in case of using fps filter. How to reproduce the problem: ffmpeg -f lavfi -i testsrc=duration=1 -vf fps=fps=50 -vsync 1 -f null - output 50 frames ffmpeg -f lavfi -i testsrc=duration=1 -filter_complex fps=fps=50 -vsync 1 -f null - output 51 frames With this commit, the same command will always output 50 frames. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'fftools')
-rw-r--r--fftools/ffmpeg.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 544f1a1cef..0f157d67d8 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -1079,6 +1079,7 @@ static void do_video_out(OutputFile *of,
if (!ost->filters_script &&
!ost->filters &&
+ (nb_filtergraphs == 0 || !filtergraphs[0]->graph_desc) &&
next_picture &&
ist &&
lrintf(next_picture->pkt_duration * av_q2d(ist->st->time_base) / av_q2d(enc->time_base)) > 0) {