summaryrefslogtreecommitdiff
path: root/libavcodec/videotoolboxenc.c
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2023-01-04 10:37:50 +0800
committerZhao Zhili <zhilizhao@tencent.com>2023-01-11 18:57:44 +0800
commit8f35ee824000ea039067aef0478b413ee4e78fa5 (patch)
treedfe8e2798b17008a1a7ce82a7c6f5fadf8a6b59d /libavcodec/videotoolboxenc.c
parente7aca339ce67dd68fc3179af0890cd1cc46e0a83 (diff)
avcodec/videotoolboxenc: fix error code
1. Fix return 0 on error. 2. Fix return OS error code passthrough. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'libavcodec/videotoolboxenc.c')
-rw-r--r--libavcodec/videotoolboxenc.c8
1 files 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) {