ref: b9c4f9a7db02835a4fe84e9e9e140b33e3563b91
parent: 7621a19aa53c7b26b4bf4ba30f2c7f65f8503f9d
author: Paul Wilkins <paulwilkins@google.com>
date: Wed Nov 12 04:36:49 EST 2014
Fix 32 bit build emms problem. Add extra vp9_clear_system_state() calls to fix double / mmx issue introduced into first pass code for 32 bit builds. Change-Id: I84cd2986b80d83650a091ab25c43755efeb82e03
--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -486,8 +486,8 @@
const YV12_BUFFER_CONFIG *first_ref_buf = lst_yv12;
LAYER_CONTEXT *const lc = is_two_pass_svc(cpi) ?
&cpi->svc.layer_context[cpi->svc.spatial_layer_id] : NULL;
- double intra_factor = 0.0;
- double brightness_factor = 0.0;
+ double intra_factor;
+ double brightness_factor;
#if CONFIG_FP_MB_STATS
if (cpi->use_fp_mb_stats) {
@@ -497,6 +497,9 @@
vp9_clear_system_state();
+ intra_factor = 0.0;
+ brightness_factor = 0.0;
+
set_first_pass_params(cpi);
vp9_set_quantizer(cm, find_fp_qindex(cm->bit_depth));
@@ -640,6 +643,7 @@
}
#endif // CONFIG_VP9_HIGHBITDEPTH
+ vp9_clear_system_state();
log_intra = log(this_error + 1.0);
if (log_intra < 10.0)
intra_factor += 1.0 + ((10.0 - log_intra) * 0.05);
@@ -938,7 +942,6 @@
vp9_clear_system_state();
}
- vp9_clear_system_state();
{
FIRSTPASS_STATS fps;
// The minimum error here insures some bit allocation to frames even