[FFmpeg-devel] [PATCH] avcodec/audiotoolboxenc: return EAGAIN if frame_queue.available is 0 and not at->eof

Steven Liu lq at chinaffmpeg.org
Tue Jun 28 17:42:36 EEST 2022


There will return success and failure after commit 7c05b7951cb47716230c95744240bc60ec5f9433.
But the AudioConverterFillComplexBuffer will return 1 and *got_packet_ptr is 0
when frame_queue.available == 0 and at->eof == 0. So should return EAGAIN here,
this because the encode function should return either 0 or negative error code.

Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
---
 libavcodec/audiotoolboxenc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
index 00293154bf..c23deb06a9 100644
--- a/libavcodec/audiotoolboxenc.c
+++ b/libavcodec/audiotoolboxenc.c
@@ -558,7 +558,8 @@ static int ffat_encode(AVCodecContext *avctx, AVPacket *avpkt,
     } else if (ret && ret != 1) {
         av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
         ret = AVERROR_EXTERNAL;
-    }
+    } else if (ret == 1)
+	ret = AVERROR(EAGAIN);
 
     return ret;
 }
-- 
2.34.1



More information about the ffmpeg-devel mailing list