diff mbox series

[FFmpeg-devel,v2] avcodec/audiotoolboxenc: return external error if encode failed

Message ID 20220624055957.48149-1-lq@chinaffmpeg.org
State Accepted
Commit 7c05b7951cb47716230c95744240bc60ec5f9433
Headers show
Series [FFmpeg-devel,v2] avcodec/audiotoolboxenc: return external error if encode failed | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
andriy/make_armv7_RPi4 success Make finished
andriy/make_fate_armv7_RPi4 success Make fate finished

Commit Message

Liu Steven June 24, 2022, 5:59 a.m. UTC
because the AudioConverterFillComplexBuffer can return 0 or 1 if
success.
so set the ret to 0 it AudioConverterFillComplexBuffer success and
return ret value for success or return AVERROR_EXTERNAL when
AudioConverterFillComplexBuffer failed.
BTW change the error message log level from warning to error.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
---
 libavcodec/audiotoolboxenc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Zhao Zhili June 24, 2022, 6:58 a.m. UTC | #1
> On Jun 24, 2022, at 1:59 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
> 
> because the AudioConverterFillComplexBuffer can return 0 or 1 if
> success.
> so set the ret to 0 it AudioConverterFillComplexBuffer success and
> return ret value for success or return AVERROR_EXTERNAL when
> AudioConverterFillComplexBuffer failed.
> BTW change the error message log level from warning to error.
> 
> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> ---
> libavcodec/audiotoolboxenc.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
> index f8305ab89b..00293154bf 100644
> --- a/libavcodec/audiotoolboxenc.c
> +++ b/libavcodec/audiotoolboxenc.c
> @@ -554,11 +554,13 @@ 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_WARNING, "Encode error: %i\n", ret);
> +        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
> +        ret = AVERROR_EXTERNAL;
>     }
> 
> -    return 0;
> +    return ret;
> }
> 

LGTM.

> static av_cold void ffat_encode_flush(AVCodecContext *avctx)
> -- 
> 2.25.0
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Steven Liu June 24, 2022, 7:05 a.m. UTC | #2
"zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年6月24日周五 14:59写道:
>
>
>
> > On Jun 24, 2022, at 1:59 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
> >
> > because the AudioConverterFillComplexBuffer can return 0 or 1 if
> > success.
> > so set the ret to 0 it AudioConverterFillComplexBuffer success and
> > return ret value for success or return AVERROR_EXTERNAL when
> > AudioConverterFillComplexBuffer failed.
> > BTW change the error message log level from warning to error.
> >
> > Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> > ---
> > libavcodec/audiotoolboxenc.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
> > index f8305ab89b..00293154bf 100644
> > --- a/libavcodec/audiotoolboxenc.c
> > +++ b/libavcodec/audiotoolboxenc.c
> > @@ -554,11 +554,13 @@ 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_WARNING, "Encode error: %i\n", ret);
> > +        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
> > +        ret = AVERROR_EXTERNAL;
> >     }
> >
> > -    return 0;
> > +    return ret;
> > }
> >
>
> LGTM.

Applied, Thanks
>
> > static av_cold void ffat_encode_flush(AVCodecContext *avctx)
> > --
> > 2.25.0
> >
> > _______________________________________________

Thanks
Steven
James Almer Aug. 19, 2022, 3:14 p.m. UTC | #3
On 6/24/2022 4:05 AM, Steven Liu wrote:
> "zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年6月24日周五 14:59写道:
>>
>>
>>
>>> On Jun 24, 2022, at 1:59 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
>>>
>>> because the AudioConverterFillComplexBuffer can return 0 or 1 if
>>> success.
>>> so set the ret to 0 it AudioConverterFillComplexBuffer success and
>>> return ret value for success or return AVERROR_EXTERNAL when
>>> AudioConverterFillComplexBuffer failed.
>>> BTW change the error message log level from warning to error.
>>>
>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
>>> ---
>>> libavcodec/audiotoolboxenc.c | 6 ++++--
>>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
>>> index f8305ab89b..00293154bf 100644
>>> --- a/libavcodec/audiotoolboxenc.c
>>> +++ b/libavcodec/audiotoolboxenc.c
>>> @@ -554,11 +554,13 @@ 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_WARNING, "Encode error: %i\n", ret);
>>> +        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
>>> +        ret = AVERROR_EXTERNAL;
>>>      }
>>>
>>> -    return 0;
>>> +    return ret;
>>> }
>>>
>>
>> LGTM.
> 
> Applied, Thanks

This is probably the source of the regression described in 
https://trac.ffmpeg.org/ticket/9866

Can you look at it?
Zhao Zhili Aug. 22, 2022, 2:48 a.m. UTC | #4
> On Aug 19, 2022, at 11:14 PM, James Almer <jamrial@gmail.com> wrote:
> 
> On 6/24/2022 4:05 AM, Steven Liu wrote:
>> "zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年6月24日周五 14:59写道:
>>> 
>>> 
>>> 
>>>> On Jun 24, 2022, at 1:59 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
>>>> 
>>>> because the AudioConverterFillComplexBuffer can return 0 or 1 if
>>>> success.
>>>> so set the ret to 0 it AudioConverterFillComplexBuffer success and
>>>> return ret value for success or return AVERROR_EXTERNAL when
>>>> AudioConverterFillComplexBuffer failed.
>>>> BTW change the error message log level from warning to error.
>>>> 
>>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
>>>> ---
>>>> libavcodec/audiotoolboxenc.c | 6 ++++--
>>>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>>> 
>>>> diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
>>>> index f8305ab89b..00293154bf 100644
>>>> --- a/libavcodec/audiotoolboxenc.c
>>>> +++ b/libavcodec/audiotoolboxenc.c
>>>> @@ -554,11 +554,13 @@ 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_WARNING, "Encode error: %i\n", ret);
>>>> +        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
>>>> +        ret = AVERROR_EXTERNAL;
>>>>     }
>>>> 
>>>> -    return 0;
>>>> +    return ret;
>>>> }
>>>> 
>>> 
>>> LGTM.
>> Applied, Thanks
> 
> This is probably the source of the regression described in https://trac.ffmpeg.org/ticket/9866
> 
> Can you look at it?

There is a patch which doesn’t get apply yet:

http://ffmpeg.org/pipermail/ffmpeg-devel/2022-June/298199.html

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Steven Liu Aug. 22, 2022, 3:01 a.m. UTC | #5
"zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年8月22日周一 10:49写道:
>
>
>
> > On Aug 19, 2022, at 11:14 PM, James Almer <jamrial@gmail.com> wrote:
> >
> > On 6/24/2022 4:05 AM, Steven Liu wrote:
> >> "zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年6月24日周五 14:59写道:
> >>>
> >>>
> >>>
> >>>> On Jun 24, 2022, at 1:59 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
> >>>>
> >>>> because the AudioConverterFillComplexBuffer can return 0 or 1 if
> >>>> success.
> >>>> so set the ret to 0 it AudioConverterFillComplexBuffer success and
> >>>> return ret value for success or return AVERROR_EXTERNAL when
> >>>> AudioConverterFillComplexBuffer failed.
> >>>> BTW change the error message log level from warning to error.
> >>>>
> >>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> >>>> ---
> >>>> libavcodec/audiotoolboxenc.c | 6 ++++--
> >>>> 1 file changed, 4 insertions(+), 2 deletions(-)
> >>>>
> >>>> diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
> >>>> index f8305ab89b..00293154bf 100644
> >>>> --- a/libavcodec/audiotoolboxenc.c
> >>>> +++ b/libavcodec/audiotoolboxenc.c
> >>>> @@ -554,11 +554,13 @@ 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_WARNING, "Encode error: %i\n", ret);
> >>>> +        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
> >>>> +        ret = AVERROR_EXTERNAL;
> >>>>     }
> >>>>
> >>>> -    return 0;
> >>>> +    return ret;
> >>>> }
> >>>>
> >>>
> >>> LGTM.
> >> Applied, Thanks
> >
> > This is probably the source of the regression described in https://trac.ffmpeg.org/ticket/9866
> >
> > Can you look at it?
>
> There is a patch which doesn’t get apply yet:
>
> http://ffmpeg.org/pipermail/ffmpeg-devel/2022-June/298199.html

commit as 627543f58a3166810b9cd9c8b483678c82a99be9
>
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

Thanks
Andreas Rheinhardt Oct. 5, 2022, 12:14 p.m. UTC | #6
Steven Liu:
> "zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年8月22日周一 10:49写道:
>>
>>
>>
>>> On Aug 19, 2022, at 11:14 PM, James Almer <jamrial@gmail.com> wrote:
>>>
>>> On 6/24/2022 4:05 AM, Steven Liu wrote:
>>>> "zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年6月24日周五 14:59写道:
>>>>>
>>>>>
>>>>>
>>>>>> On Jun 24, 2022, at 1:59 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
>>>>>>
>>>>>> because the AudioConverterFillComplexBuffer can return 0 or 1 if
>>>>>> success.
>>>>>> so set the ret to 0 it AudioConverterFillComplexBuffer success and
>>>>>> return ret value for success or return AVERROR_EXTERNAL when
>>>>>> AudioConverterFillComplexBuffer failed.
>>>>>> BTW change the error message log level from warning to error.
>>>>>>
>>>>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
>>>>>> ---
>>>>>> libavcodec/audiotoolboxenc.c | 6 ++++--
>>>>>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
>>>>>> index f8305ab89b..00293154bf 100644
>>>>>> --- a/libavcodec/audiotoolboxenc.c
>>>>>> +++ b/libavcodec/audiotoolboxenc.c
>>>>>> @@ -554,11 +554,13 @@ 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_WARNING, "Encode error: %i\n", ret);
>>>>>> +        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
>>>>>> +        ret = AVERROR_EXTERNAL;
>>>>>>     }
>>>>>>
>>>>>> -    return 0;
>>>>>> +    return ret;
>>>>>> }
>>>>>>
>>>>>
>>>>> LGTM.
>>>> Applied, Thanks
>>>
>>> This is probably the source of the regression described in https://trac.ffmpeg.org/ticket/9866
>>>
>>> Can you look at it?
>>
>> There is a patch which doesn’t get apply yet:
>>
>> http://ffmpeg.org/pipermail/ffmpeg-devel/2022-June/298199.html
> 
> commit as 627543f58a3166810b9cd9c8b483678c82a99be9
>>

You should backport this fix to 5.1. See ticket #9960.

- Andreas
Steven Liu Oct. 5, 2022, 3:25 p.m. UTC | #7
Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2022年10月5日周三 20:14写道:
>
> Steven Liu:
> > "zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年8月22日周一 10:49写道:
> >>
> >>
> >>
> >>> On Aug 19, 2022, at 11:14 PM, James Almer <jamrial@gmail.com> wrote:
> >>>
> >>> On 6/24/2022 4:05 AM, Steven Liu wrote:
> >>>> "zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2022年6月24日周五 14:59写道:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> On Jun 24, 2022, at 1:59 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
> >>>>>>
> >>>>>> because the AudioConverterFillComplexBuffer can return 0 or 1 if
> >>>>>> success.
> >>>>>> so set the ret to 0 it AudioConverterFillComplexBuffer success and
> >>>>>> return ret value for success or return AVERROR_EXTERNAL when
> >>>>>> AudioConverterFillComplexBuffer failed.
> >>>>>> BTW change the error message log level from warning to error.
> >>>>>>
> >>>>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> >>>>>> ---
> >>>>>> libavcodec/audiotoolboxenc.c | 6 ++++--
> >>>>>> 1 file changed, 4 insertions(+), 2 deletions(-)
> >>>>>>
> >>>>>> diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
> >>>>>> index f8305ab89b..00293154bf 100644
> >>>>>> --- a/libavcodec/audiotoolboxenc.c
> >>>>>> +++ b/libavcodec/audiotoolboxenc.c
> >>>>>> @@ -554,11 +554,13 @@ 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_WARNING, "Encode error: %i\n", ret);
> >>>>>> +        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
> >>>>>> +        ret = AVERROR_EXTERNAL;
> >>>>>>     }
> >>>>>>
> >>>>>> -    return 0;
> >>>>>> +    return ret;
> >>>>>> }
> >>>>>>
> >>>>>
> >>>>> LGTM.
> >>>> Applied, Thanks
> >>>
> >>> This is probably the source of the regression described in https://trac.ffmpeg.org/ticket/9866
> >>>
> >>> Can you look at it?
> >>
> >> There is a patch which doesn’t get apply yet:
> >>
> >> http://ffmpeg.org/pipermail/ffmpeg-devel/2022-June/298199.html
> >
> > commit as 627543f58a3166810b9cd9c8b483678c82a99be9
> >>
>
> You should backport this fix to 5.1. See ticket #9960.
Ok, cherry-picked.


Thanks

Steven
diff mbox series

Patch

diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
index f8305ab89b..00293154bf 100644
--- a/libavcodec/audiotoolboxenc.c
+++ b/libavcodec/audiotoolboxenc.c
@@ -554,11 +554,13 @@  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_WARNING, "Encode error: %i\n", ret);
+        av_log(avctx, AV_LOG_ERROR, "Encode error: %i\n", ret);
+        ret = AVERROR_EXTERNAL;
     }
 
-    return 0;
+    return ret;
 }
 
 static av_cold void ffat_encode_flush(AVCodecContext *avctx)