From 3859af01e97d1c8f107b9ddf7f0983342e8e6998 Mon Sep 17 00:00:00 2001 From: jkyu Date: Thu, 22 Jun 2017 00:12:50 -0400 Subject: enc: Add restriction to vp9 encoder frame rate to avoid hang Signed-off-by: jkyu --- src/gen9_vp9_encoder.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gen9_vp9_encoder.c b/src/gen9_vp9_encoder.c index a9f2c8ca..858e1baa 100644 --- a/src/gen9_vp9_encoder.c +++ b/src/gen9_vp9_encoder.c @@ -46,6 +46,7 @@ #include "vp9_probs.h" #include "gen9_vp9_const_def.h" +#define MAX_VP9_ENCODER_FRAMERATE 60 #define MAX_VP9_ENCODER_SURFACES 64 #define MAX_URB_SIZE 4096 /* In register */ @@ -3723,6 +3724,11 @@ gen9_encode_vp9_check_parameter(VADriverContextP ctx, vp9_state->gop_size = encoder_context->brc.gop_size; vp9_state->framerate = encoder_context->brc.framerate[0]; + if ((vp9_state->framerate.num / vp9_state->framerate.den) > MAX_VP9_ENCODER_FRAMERATE) { + vp9_state->framerate.num = MAX_VP9_ENCODER_FRAMERATE * vp9_state->framerate.den; + i965_log_info(ctx, "gen9_encode_vp9_check_parameter: Too high frame rate(num: %d, den: %d), max supported is %d fps.\n", + vp9_state->framerate.num, vp9_state->framerate.den, MAX_VP9_ENCODER_FRAMERATE); + } if (encoder_context->rate_control_mode == VA_RC_CBR || !encoder_context->brc.target_percentage[0]) { -- cgit v1.2.1