From 3f57063c58faf6b931ebdd239ac568f77c878cc3 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sat, 15 Mar 2025 16:09:28 -0300 Subject: [PATCH] avcodec/ffv1dec: set the FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability Will prevent decoding frame data during probing. Signed-off-by: James Almer --- libavcodec/ffv1dec.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c index b731f11297..aa60a6c31b 100644 --- a/libavcodec/ffv1dec.c +++ b/libavcodec/ffv1dec.c @@ -697,6 +697,13 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe, if (ret < 0) return ret; + if (avctx->debug & FF_DEBUG_PICT_INFO) + av_log(avctx, AV_LOG_DEBUG, "ver:%d keyframe:%d coder:%d ec:%d slices:%d bps:%d\n", + f->version, !!f->key_frame, f->ac, f->ec, f->slice_count, f->avctx->bits_per_raw_sample); + + if (avctx->skip_frame >= AVDISCARD_ALL) + return avpkt->size; + ret = ff_progress_frame_get_buffer(avctx, &f->picture, AV_GET_BUFFER_FLAG_REF); if (ret < 0) @@ -714,10 +721,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe, p->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST; } - if (avctx->debug & FF_DEBUG_PICT_INFO) - av_log(avctx, AV_LOG_DEBUG, "ver:%d keyframe:%d coder:%d ec:%d slices:%d bps:%d\n", - f->version, !!(p->flags & AV_FRAME_FLAG_KEY), f->ac, f->ec, f->slice_count, f->avctx->bits_per_raw_sample); - ff_thread_finish_setup(avctx); ret = decode_slices(avctx, c, avpkt); @@ -821,5 +824,6 @@ const FFCodec ff_ffv1_decoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_SLICE_THREADS, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP | + FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM | FF_CODEC_CAP_USES_PROGRESSFRAMES, };