summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Koleszar <jkoleszar@google.com>2011-12-14 12:10:06 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2011-12-14 12:10:06 -0800
commit4f8f360098c2213b5936aaf03d1818c4e56126b0 (patch)
treec0a0059f4e2b546672c7f3c7d037f184d3c5cd6f
parent7d54dfc6e41d60f10a399ad205dc3942723c1df4 (diff)
parentc1c47e83b0b08ffaae6f42eeb6dd4db7040ede4f (diff)
downloadlibvpx-4f8f360098c2213b5936aaf03d1818c4e56126b0.tar
libvpx-4f8f360098c2213b5936aaf03d1818c4e56126b0.tar.gz
libvpx-4f8f360098c2213b5936aaf03d1818c4e56126b0.tar.bz2
libvpx-4f8f360098c2213b5936aaf03d1818c4e56126b0.zip
Merge "add check to ensure that cq_level falls within min and max q"
-rw-r--r--vp8/vp8_cx_iface.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/vp8/vp8_cx_iface.c b/vp8/vp8_cx_iface.c
index 5bb6b4099..de38baf7e 100644
--- a/vp8/vp8_cx_iface.c
+++ b/vp8/vp8_cx_iface.c
@@ -137,7 +137,8 @@ update_error_state(vpx_codec_alg_priv_t *ctx,
static vpx_codec_err_t validate_config(vpx_codec_alg_priv_t *ctx,
const vpx_codec_enc_cfg_t *cfg,
- const struct vp8_extracfg *vp8_cfg)
+ const struct vp8_extracfg *vp8_cfg,
+ int finalize)
{
RANGE_CHECK(cfg, g_w, 1, 16383); /* 14 bits available */
RANGE_CHECK(cfg, g_h, 1, 16383); /* 14 bits available */
@@ -193,6 +194,9 @@ static vpx_codec_err_t validate_config(vpx_codec_alg_priv_t *ctx,
RANGE_CHECK_HI(vp8_cfg, arnr_strength, 6);
RANGE_CHECK(vp8_cfg, arnr_type, 1, 3);
RANGE_CHECK(vp8_cfg, cq_level, 0, 63);
+ if(finalize && cfg->rc_end_usage == VPX_CQ)
+ RANGE_CHECK(vp8_cfg, cq_level,
+ cfg->rc_min_quantizer, cfg->rc_max_quantizer);
#if !(CONFIG_REALTIME_ONLY)
if (cfg->g_pass == VPX_RC_LAST_PASS)
@@ -439,7 +443,7 @@ static vpx_codec_err_t vp8e_set_config(vpx_codec_alg_priv_t *ctx,
if ((cfg->g_lag_in_frames > ctx->cfg.g_lag_in_frames))
ERROR("Cannot increase lag_in_frames");
- res = validate_config(ctx, cfg, &ctx->vp8_cfg);
+ res = validate_config(ctx, cfg, &ctx->vp8_cfg, 0);
if (!res)
{
@@ -505,7 +509,7 @@ static vpx_codec_err_t set_param(vpx_codec_alg_priv_t *ctx,
}
- res = validate_config(ctx, &ctx->cfg, &xcfg);
+ res = validate_config(ctx, &ctx->cfg, &xcfg, 0);
if (!res)
{
@@ -602,7 +606,7 @@ static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx,
vp8_initialize();
- res = validate_config(priv, &priv->cfg, &priv->vp8_cfg);
+ res = validate_config(priv, &priv->cfg, &priv->vp8_cfg, 0);
if (!res)
{
@@ -732,6 +736,9 @@ static vpx_codec_err_t vp8e_encode(vpx_codec_alg_priv_t *ctx,
if (img)
res = validate_img(ctx, img);
+ if (!res)
+ res = validate_config(ctx, &ctx->cfg, &ctx->vp8_cfg, 1);
+
pick_quickcompress_mode(ctx, duration, deadline);
vpx_codec_pkt_list_init(&ctx->pkt_list);