diff --git a/mpp/codec/enc/h264/src/h264e_api.c b/mpp/codec/enc/h264/src/h264e_api.c index 18d7aef4..10d565ea 100644 --- a/mpp/codec/enc/h264/src/h264e_api.c +++ b/mpp/codec/enc/h264/src/h264e_api.c @@ -239,12 +239,15 @@ MPP_RET h264e_config(void *ctx, RK_S32 cmd, void *param) rc->quality); ret = MPP_ERR_VALUE; } - if ((rc->bps_target >= 100 * SZ_1M || rc->bps_target <= 1 * SZ_1K) || - (rc->bps_max >= 100 * SZ_1M || rc->bps_max <= 1 * SZ_1K) || - (rc->bps_min >= 100 * SZ_1M || rc->bps_min <= 1 * SZ_1K)) { - mpp_err("invalid bit per second %d [%d:%d] out of range 1K~100M\n", - rc->bps_target, rc->bps_min, rc->bps_max); - ret = MPP_ERR_VALUE; + if (rc->rc_mode != MPP_ENC_RC_MODE_VBR || + rc->quality != MPP_ENC_RC_QUALITY_CQP) { + if ((rc->bps_target >= 100 * SZ_1M || rc->bps_target <= 1 * SZ_1K) || + (rc->bps_max >= 100 * SZ_1M || rc->bps_max <= 1 * SZ_1K) || + (rc->bps_min >= 100 * SZ_1M || rc->bps_min <= 1 * SZ_1K)) { + mpp_err("invalid bit per second %d [%d:%d] out of range 1K~100M\n", + rc->bps_target, rc->bps_min, rc->bps_max); + ret = MPP_ERR_VALUE; + } } if (!ret) {