[FFmpeg-cvslog] fftools/ffprobe: Flush decoder after draining

Andreas Rheinhardt git at videolan.org
Wed Feb 23 13:05:02 EET 2022


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sat Feb 19 15:39:56 2022 +0100| [26cce232d7eb6bb07e6fb2883d4c52c9edf3e3d9] | committer: Andreas Rheinhardt

fftools/ffprobe: Flush decoder after draining

This is a prerequisite to continue using the decoder at all
to decode the next interval (if any).
This fixes a regression introduced in commit
2a88ebd096f3c748a2d99ed1b60b22879b3c567c and reported in ticket #8657.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=26cce232d7eb6bb07e6fb2883d4c52c9edf3e3d9
---

 fftools/ffprobe.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 8a8e3de540..4205ddedda 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2730,8 +2730,11 @@ static int read_interval_packets(WriterContext *w, InputFile *ifile,
     //Flush remaining frames that are cached in the decoder
     for (i = 0; i < fmt_ctx->nb_streams; i++) {
         pkt->stream_index = i;
-        if (do_read_frames)
+        if (do_read_frames) {
             while (process_frame(w, ifile, frame, pkt, &(int){1}) > 0);
+            if (ifile->streams[i].dec_ctx)
+                avcodec_flush_buffers(ifile->streams[i].dec_ctx);
+        }
     }
 
 end:



More information about the ffmpeg-cvslog mailing list