summaryrefslogtreecommitdiff
path: root/fftools/ffmpeg_mux.c
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2023-04-22 20:56:34 +0800
committerZhao Zhili <zhilizhao@tencent.com>2023-04-23 21:23:11 +0800
commitb56aca9b42411da444a0b267ea1dd183cbb4fbf7 (patch)
tree9e773149fd97386d8b2b67749fcdd9cd638f0be7 /fftools/ffmpeg_mux.c
parent7ecf1bff6d216b83b8634783fb9024452b63f2d1 (diff)
downloadffmpeg-b56aca9b42411da444a0b267ea1dd183cbb4fbf7.tar.gz
fftools/ffmpeg_mux: fix reporting muxer EOF as error
Fix #10327. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'fftools/ffmpeg_mux.c')
-rw-r--r--fftools/ffmpeg_mux.c12
1 files 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;
}