[FFmpeg-devel] [PATCH] avcodec/audiotoolboxenc: return EAGAIN if frame_queue.available is 0 and not at->eof
"zhilizhao(赵志立)"
quinkblack at foxmail.com
Tue Jun 28 18:06:02 EEST 2022
> On Jun 28, 2022, at 10:42 PM, Steven Liu <lq at chinaffmpeg.org> wrote:
>
> 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);
How about keep the old behavior before 7c05b7951, and return early in the error
path?
diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
index 00293154bf..8bbaabd960 100644
--- a/libavcodec/audiotoolboxenc.c
+++ b/libavcodec/audiotoolboxenc.c
@@ -554,13 +554,12 @@ static int ffat_encode(AVCodecContext *avctx, AVPacket *avpkt,
avctx->frame_size,
&avpkt->pts,
&avpkt->duration);
- ret = 0;
} else if (ret && ret != 1) {
av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
- ret = AVERROR_EXTERNAL;
+ return AVERROR_EXTERNAL;
}
- return ret;
+ return 0;
}
static av_cold void ffat_encode_flush(AVCodecContext *avctx)
>
> return ret;
> }
> --
> 2.34.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list