diff options
author | James Almer <jamrial@gmail.com> | 2023-04-20 12:50:01 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2023-04-20 13:04:34 -0300 |
commit | adeb5b6c67f84ba3a6b527c374e9d41129473b22 (patch) | |
tree | 46d5b3857d88bbfdadbe8ec9d9cbd908007d1ca7 /libavcodec/pdvdec.c | |
parent | 0dceda12e7c3d10865e1167407878381efa5a138 (diff) | |
download | ffmpeg-adeb5b6c67f84ba3a6b527c374e9d41129473b22.tar.gz |
avcodec/pdvdec: honor the requested avctx->skip_frame value
The decoder is tagged as being FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM, so might as
well make use of it.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/pdvdec.c')
-rw-r--r-- | libavcodec/pdvdec.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/pdvdec.c b/libavcodec/pdvdec.c index d1a3d1d3f9..b1fc19b1c9 100644 --- a/libavcodec/pdvdec.c +++ b/libavcodec/pdvdec.c @@ -64,6 +64,11 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame, uint8_t *dst, *prev = prev_frame->data[0]; int ret, zret; + if (avctx->skip_frame >= AVDISCARD_ALL || + (avctx->skip_frame >= AVDISCARD_NONINTRA && + !(avpkt->flags & AV_PKT_FLAG_KEY))) + return avpkt->size; + zret = inflateReset(zstream); if (zret != Z_OK) { av_log(avctx, AV_LOG_ERROR, "Could not reset inflate: %d.\n", zret); |