1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-04 22:03:09 +02:00

avcodec/vt: Don't restart decoder when confronted with ReferenceMissingErr

Otherwise the decoder may enter an loop of repeated state resets.
This can happen for streams with CRA but no IDR.

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
Zhao Zhili
2025-03-18 20:58:31 +08:00
parent 26f2f03e0d
commit c6214b0d69

View File

@ -728,8 +728,12 @@ static void videotoolbox_decoder_callback(void *opaque,
}
if (!image_buffer) {
if (status != kVTVideoDecoderReferenceMissingErr)
vtctx->reconfig_needed = true;
av_log(vtctx->logctx, status ? AV_LOG_WARNING : AV_LOG_DEBUG,
"vt decoder cb: output image buffer is null: %i\n", status);
"vt decoder cb: output image buffer is null: %i, reconfig %d\n",
status, vtctx->reconfig_needed);
return;
}
@ -1066,10 +1070,8 @@ int ff_videotoolbox_common_end_frame(AVCodecContext *avctx, AVFrame *frame)
return AVERROR_UNKNOWN;
}
if (!vtctx->frame) {
vtctx->reconfig_needed = true;
if (!vtctx->frame)
return AVERROR_UNKNOWN;
}
return videotoolbox_buffer_create(avctx, frame);
}