1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-08 13:22:53 +02:00

avcodec/videotoolboxenc: Don't ignore ENOMEM

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
Zhao Zhili 2024-07-07 18:21:30 +08:00
parent 2fc37c4239
commit 2eae57c862

View File

@ -2585,14 +2585,13 @@ static int vtenc_send_frame(AVCodecContext *avctx,
if (vtctx->a53_cc && side_data && side_data->size) {
sei = av_mallocz(sizeof(*sei));
if (!sei) {
av_log(avctx, AV_LOG_ERROR, "Not enough memory for closed captions, skipping\n");
} else {
int ret = ff_alloc_a53_sei(frame, 0, &sei->data, &sei->size);
if (ret < 0) {
av_log(avctx, AV_LOG_ERROR, "Not enough memory for closed captions, skipping\n");
av_free(sei);
sei = NULL;
}
status = AVERROR(ENOMEM);
goto out;
}
status = ff_alloc_a53_sei(frame, 0, &sei->data, &sei->size);
if (status < 0) {
av_free(sei);
goto out;
}
}
#endif
@ -2608,15 +2607,19 @@ static int vtenc_send_frame(AVCodecContext *avctx,
NULL
);
if (frame_dict) CFRelease(frame_dict);
CFRelease(cv_img);
if (status) {
av_log(avctx, AV_LOG_ERROR, "Error: cannot encode frame: %d\n", status);
return AVERROR_EXTERNAL;
status = AVERROR_EXTERNAL;
// Not necessary, just in case new code put after here
goto out;
}
return 0;
out:
if (frame_dict)
CFRelease(frame_dict);
CFRelease(cv_img);
return status;
}
static av_cold int vtenc_frame(