[FFmpeg-devel] [PATCH] avfilter/framesync: fix shortest with eof_action=pass

Gyan ffmpeg at gyani.pro
Wed Jun 5 17:28:27 EEST 2019


With current order, shortest gets ignored with eof_action=pass

Gyan
-------------- next part --------------
From 61834c8a9d8b01c2a82a001d2974d6389f7f7c49 Mon Sep 17 00:00:00 2001
From: Gyan Doshi <ffmpeg at gyani.pro>
Date: Wed, 5 Jun 2019 19:52:04 +0530
Subject: [PATCH] avfilter/framesync: fix shortest with eof_action=pass

Shifted check of shortest to after repeatlast,
to ensure shortest=1 is always honoured.
---
 libavfilter/framesync.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavfilter/framesync.c b/libavfilter/framesync.c
index 22d3f091a3..bc95f7d904 100644
--- a/libavfilter/framesync.c
+++ b/libavfilter/framesync.c
@@ -127,16 +127,16 @@ int ff_framesync_configure(FFFrameSync *fs)
         fs->opt_shortest = 1;
         fs->opt_eof_action = EOF_ACTION_ENDALL;
     }
-    if (fs->opt_shortest) {
-        for (i = 0; i < fs->nb_in; i++)
-            fs->in[i].after = EXT_STOP;
-    }
     if (!fs->opt_repeatlast) {
         for (i = 1; i < fs->nb_in; i++) {
             fs->in[i].after = EXT_NULL;
             fs->in[i].sync  = 0;
         }
     }
+    if (fs->opt_shortest) {
+        for (i = 0; i < fs->nb_in; i++)
+            fs->in[i].after = EXT_STOP;
+    }
 
     if (!fs->time_base.num) {
         for (i = 0; i < fs->nb_in; i++) {
-- 
2.21.0


More information about the ffmpeg-devel mailing list