[FFmpeg-cvslog] avcodec/ffv1dec: set the FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability
James Almer
git at videolan.org
Sat Mar 15 23:44:53 EET 2025
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Mar 15 16:09:28 2025 -0300| [3f57063c58faf6b931ebdd239ac568f77c878cc3] | committer: James Almer
avcodec/ffv1dec: set the FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM capability
Will prevent decoding frame data during probing.
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f57063c58faf6b931ebdd239ac568f77c878cc3
---
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,
};
More information about the ffmpeg-cvslog
mailing list