diff options
author | jkyu <jiankang.yu@intel.com> | 2017-06-22 00:12:50 -0400 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2018-01-18 09:27:20 +0800 |
commit | 3859af01e97d1c8f107b9ddf7f0983342e8e6998 (patch) | |
tree | 1dd4b4fb2b2ce0f14d2ca8adc1b144714c6c858c | |
parent | c3c626865e61a127ca35325675f5b057ae7df8ed (diff) | |
download | libva-intel-driver-3859af01e97d1c8f107b9ddf7f0983342e8e6998.tar.gz |
enc: Add restriction to vp9 encoder frame rate to avoid hang
Signed-off-by: jkyu <jiankang.yu@intel.com>
-rw-r--r-- | src/gen9_vp9_encoder.c | 6 |
1 files changed, 6 insertions, 0 deletions
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]) { |