[FFmpeg-devel] [PATCH] fftools/ffmpeg_mux: fix regression with muxer EOF

2023-04-21 Thread Zhao Zhili
From: Zhao Zhili 

Regression introduced by b40856.

Fix #10327.
---
 fftools/ffmpeg_mux.c | 11 ---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c
index a2e8873ad2..b4b4dab8fd 100644
--- a/fftools/ffmpeg_mux.c
+++ b/fftools/ffmpeg_mux.c
@@ -214,9 +214,14 @@ 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 {
+ret = 0;
+break;
+}
+} else if (ret < 0) {
 av_log(mux, AV_LOG_ERROR, "Error muxing a packet\n");
 break;
 }
-- 
2.25.1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".


Re: [FFmpeg-devel] [PATCH] fftools/ffmpeg_mux: fix regression with muxer EOF

2023-04-22 Thread Anton Khirnov
Quoting Zhao Zhili (2023-04-21 18:58:09)
> From: Zhao Zhili 
> 
> Regression introduced by b40856.
> 
> Fix #10327.

The commit message is entirely useless, it tells the reader nothing
about what the problem is or how it is fixed.

> ---
>  fftools/ffmpeg_mux.c | 11 ---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c
> index a2e8873ad2..b4b4dab8fd 100644
> --- a/fftools/ffmpeg_mux.c
> +++ b/fftools/ffmpeg_mux.c
> @@ -214,9 +214,14 @@ 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 {
> +ret = 0;
> +break;

All the other exit paths from the loop have a log message saying why it
happened, this one should as well.

-- 
Anton Khirnov
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".