Message ID | 20230420155617.10611-1-jamrial@gmail.com |
---|---|
State | Accepted |
Commit | adeb5b6c67f84ba3a6b527c374e9d41129473b22 |
Headers | show |
Series | [FFmpeg-devel] avcodec/pdvdec: honor the requested avctx->skip_frame value | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
LGTM
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);
The decoder is tagged as being FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM, so might as well make use of it. Signed-off-by: James Almer <jamrial@gmail.com> --- libavcodec/pdvdec.c | 5 +++++ 1 file changed, 5 insertions(+)