diff mbox series

[FFmpeg-devel,4/4] avcodec/videotoolboxenc: fix error code

Message ID tencent_A95C4A8BB2E6381085E6C967C62ABFD32806@qq.com
State New
Headers show
Series None | expand

Commit Message

Zhao Zhili Jan. 4, 2023, 2:35 a.m. UTC
From: Zhao Zhili <zhilizhao@tencent.com>

1. Fix return 0 on success.
2. Fix return OS error code passthrough.
---
 libavcodec/videotoolboxenc.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Steven Liu Jan. 4, 2023, 2:38 a.m. UTC | #1
Zhao Zhili <quinkblack@foxmail.com> 于2023年1月4日周三 10:35写道:
>
> From: Zhao Zhili <zhilizhao@tencent.com>
>
> 1. Fix return 0 on success.
> 2. Fix return OS error code passthrough.
> ---
>  libavcodec/videotoolboxenc.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
> index 3b00e542cb..56971471e4 100644
> --- a/libavcodec/videotoolboxenc.c
> +++ b/libavcodec/videotoolboxenc.c
> @@ -2555,6 +2555,7 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>      pool = VTCompressionSessionGetPixelBufferPool(vtctx->session);
>      if(!pool){
>          av_log(avctx, AV_LOG_ERROR, "Error getting pixel buffer pool.\n");
> +        status = AVERROR_EXTERNAL;
>          goto pe_cleanup;
>      }
>
> @@ -2564,6 +2565,7 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>
>      if(status != kCVReturnSuccess){
>          av_log(avctx, AV_LOG_ERROR, "Error creating frame from pool: %d\n", status);
> +        status = AVERROR_EXTERNAL;
>          goto pe_cleanup;
>      }
>
> @@ -2581,7 +2583,7 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>                 AV_LOG_ERROR,
>                 "Error sending frame for extradata: %d\n",
>                 status);
> -
> +        status = AVERROR_EXTERNAL;
>          goto pe_cleanup;
>      }
>
> @@ -2589,8 +2591,10 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>      status = VTCompressionSessionCompleteFrames(vtctx->session,
>                                                  kCMTimeIndefinite);
>
> -    if (status)
> +    if (status) {
> +        status = AVERROR_EXTERNAL;
>          goto pe_cleanup;
> +    }
>
>      status = vtenc_q_pop(vtctx, 0, &buf, NULL);
>      if (status) {
> --
> 2.35.3
>
> _______________________________________________
> 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".


LGTM

Thanks
Steven
Zhao Zhili Jan. 11, 2023, 3:24 a.m. UTC | #2
> On Jan 4, 2023, at 10:38, Steven Liu <lingjiujianke@gmail.com> wrote:
> 
> Zhao Zhili <quinkblack@foxmail.com> 于2023年1月4日周三 10:35写道:
>> 
>> From: Zhao Zhili <zhilizhao@tencent.com>
>> 
>> 1. Fix return 0 on success.
>> 2. Fix return OS error code passthrough.
>> ---
>> libavcodec/videotoolboxenc.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>> 
>> diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
>> index 3b00e542cb..56971471e4 100644
>> --- a/libavcodec/videotoolboxenc.c
>> +++ b/libavcodec/videotoolboxenc.c
>> @@ -2555,6 +2555,7 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>>     pool = VTCompressionSessionGetPixelBufferPool(vtctx->session);
>>     if(!pool){
>>         av_log(avctx, AV_LOG_ERROR, "Error getting pixel buffer pool.\n");
>> +        status = AVERROR_EXTERNAL;
>>         goto pe_cleanup;
>>     }
>> 
>> @@ -2564,6 +2565,7 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>> 
>>     if(status != kCVReturnSuccess){
>>         av_log(avctx, AV_LOG_ERROR, "Error creating frame from pool: %d\n", status);
>> +        status = AVERROR_EXTERNAL;
>>         goto pe_cleanup;
>>     }
>> 
>> @@ -2581,7 +2583,7 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>>                AV_LOG_ERROR,
>>                "Error sending frame for extradata: %d\n",
>>                status);
>> -
>> +        status = AVERROR_EXTERNAL;
>>         goto pe_cleanup;
>>     }
>> 
>> @@ -2589,8 +2591,10 @@ static int vtenc_populate_extradata(AVCodecContext   *avctx,
>>     status = VTCompressionSessionCompleteFrames(vtctx->session,
>>                                                 kCMTimeIndefinite);
>> 
>> -    if (status)
>> +    if (status) {
>> +        status = AVERROR_EXTERNAL;
>>         goto pe_cleanup;
>> +    }
>> 
>>     status = vtenc_q_pop(vtctx, 0, &buf, NULL);
>>     if (status) {
>> --
>> 2.35.3
>> 
>> _______________________________________________
>> 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".
> 
> 
> LGTM

Pushed patch v2 with minor change of commit message, thanks for the review.

> 
> Thanks
> Steven
> 
> 
>
diff mbox series

Patch

diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
index 3b00e542cb..56971471e4 100644
--- a/libavcodec/videotoolboxenc.c
+++ b/libavcodec/videotoolboxenc.c
@@ -2555,6 +2555,7 @@  static int vtenc_populate_extradata(AVCodecContext   *avctx,
     pool = VTCompressionSessionGetPixelBufferPool(vtctx->session);
     if(!pool){
         av_log(avctx, AV_LOG_ERROR, "Error getting pixel buffer pool.\n");
+        status = AVERROR_EXTERNAL;
         goto pe_cleanup;
     }
 
@@ -2564,6 +2565,7 @@  static int vtenc_populate_extradata(AVCodecContext   *avctx,
 
     if(status != kCVReturnSuccess){
         av_log(avctx, AV_LOG_ERROR, "Error creating frame from pool: %d\n", status);
+        status = AVERROR_EXTERNAL;
         goto pe_cleanup;
     }
 
@@ -2581,7 +2583,7 @@  static int vtenc_populate_extradata(AVCodecContext   *avctx,
                AV_LOG_ERROR,
                "Error sending frame for extradata: %d\n",
                status);
-
+        status = AVERROR_EXTERNAL;
         goto pe_cleanup;
     }
 
@@ -2589,8 +2591,10 @@  static int vtenc_populate_extradata(AVCodecContext   *avctx,
     status = VTCompressionSessionCompleteFrames(vtctx->session,
                                                 kCMTimeIndefinite);
 
-    if (status)
+    if (status) {
+        status = AVERROR_EXTERNAL;
         goto pe_cleanup;
+    }
 
     status = vtenc_q_pop(vtctx, 0, &buf, NULL);
     if (status) {