From 08087f54626780b6955e470d59b1c7eff6c57f72 Mon Sep 17 00:00:00 2001 From: Jun Zhao Date: Wed, 29 Mar 2017 17:18:59 +0800 Subject: [PATCH] lavc/vaapi_encode: fix p_per_i calculate issue. now gop_size <= (max_b_frames + 1) * p_per_i + 1 (IDR frame), so celing p_per_i = (gop_size - 1 + max_b_frames) / (max_b_frames + 1) Signed-off-by: Jun Zhao Signed-off-by: Leilei Signed-off-by: Mark Thompson --- libavcodec/vaapi_encode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 070ff5f244..7e9c00f51d 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -1433,7 +1433,7 @@ av_cold int ff_vaapi_encode_init(AVCodecContext *avctx) ctx->output_order = - ctx->output_delay - 1; // Currently we never generate I frames, only IDR. - ctx->p_per_i = ((avctx->gop_size + avctx->max_b_frames) / + ctx->p_per_i = ((avctx->gop_size - 1 + avctx->max_b_frames) / (avctx->max_b_frames + 1)); ctx->b_per_p = avctx->max_b_frames;