[FFmpeg-cvslog] fftools/ffmpeg_mux: fix reporting muxer EOF as error

Zhao Zhili git at videolan.org
Sun Apr 23 10:19:20 EEST 2023


ffmpeg | branch: master | Zhao Zhili <zhilizhao at tencent.com> | Sat Apr 22 20:56:34 2023 +0800| [b56aca9b42411da444a0b267ea1dd183cbb4fbf7] | committer: Zhao Zhili

fftools/ffmpeg_mux: fix reporting muxer EOF as error

Fix #10327.

Signed-off-by: Zhao Zhili <zhilizhao at tencent.com>

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

 fftools/ffmpeg_mux.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c
index a2e8873ad2..fddb783b00 100644
--- a/fftools/ffmpeg_mux.c
+++ b/fftools/ffmpeg_mux.c
@@ -214,9 +214,15 @@ static void *muxer_thread(void *arg)
         ost = of->streams[stream_idx];
         ret = sync_queue_process(mux, ost, ret < 0 ? NULL : pkt, &stream_eof);
         av_packet_unref(pkt);
-        if (ret == AVERROR_EOF && stream_eof)
-            tq_receive_finish(mux->tq, stream_idx);
-        else if (ret < 0) {
+        if (ret == AVERROR_EOF) {
+            if (stream_eof) {
+                tq_receive_finish(mux->tq, stream_idx);
+            } else {
+                av_log(mux, AV_LOG_VERBOSE, "Muxer returned EOF\n");
+                ret = 0;
+                break;
+            }
+        } else if (ret < 0) {
             av_log(mux, AV_LOG_ERROR, "Error muxing a packet\n");
             break;
         }



More information about the ffmpeg-cvslog mailing list