lavc/vaapi_encode: fix p_per_i calculate issue.
authorJun Zhao <jun.zhao@intel.com>
Wed, 29 Mar 2017 09:18:59 +0000 (17:18 +0800)
committerMark Thompson <sw@jkqxz.net>
Sun, 2 Apr 2017 22:28:54 +0000 (23:28 +0100)
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 <jun.zhao@intel.com>
Signed-off-by: Leilei <leilei.shang@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
libavcodec/vaapi_encode.c

index 070ff5f..7e9c00f 100644 (file)
@@ -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;