Prevent external frame size changes in two-pass
authorJohn Koleszar <jkoleszar@google.com>
Wed, 23 May 2012 19:07:53 +0000 (12:07 -0700)
committerJohn Koleszar <jkoleszar@google.com>
Wed, 23 May 2012 20:49:05 +0000 (13:49 -0700)
The two-pass code does not support the case where the application
changes the frame size dynamically. Add this case to the validation
checks in the vpx_codec_enc_config_set() path.

Change-Id: Idadc42c7c3bd566ecdbce30d8dd720add097f992

vp8/vp8_cx_iface.c

index 9a6bc30..ca06648 100644 (file)
@@ -447,7 +447,7 @@ static vpx_codec_err_t vp8e_set_config(vpx_codec_alg_priv_t       *ctx,
     vpx_codec_err_t res;
 
     if (((cfg->g_w != ctx->cfg.g_w) || (cfg->g_h != ctx->cfg.g_h))
-        && cfg->g_lag_in_frames > 1)
+        && (cfg->g_lag_in_frames > 1 || cfg->g_pass != VPX_RC_ONE_PASS))
         ERROR("Cannot change width or height after initialization");
 
     /* Prevent increasing lag_in_frames. This check is stricter than it needs