Merge changes I8f7d9d08,If7ebbda3
* changes:
Don't collect stats if they won't be used
Temporarily convert to 64 bits to avoid overflows
diff --git a/libvpx/vp8/encoder/onyx_if.c b/libvpx/vp8/encoder/onyx_if.c
index adc2502..4dd289c 100644
--- a/libvpx/vp8/encoder/onyx_if.c
+++ b/libvpx/vp8/encoder/onyx_if.c
@@ -4524,9 +4524,11 @@
/* Actual bits spent */
cpi->total_actual_bits += cpi->projected_frame_size;
+#if 0 && CONFIG_INTERNAL_STATS
/* Debug stats */
cpi->total_target_vs_actual +=
(cpi->this_frame_target - cpi->projected_frame_size);
+#endif
cpi->buffer_level = cpi->bits_off_target;
diff --git a/libvpx/vp8/encoder/treewriter.h b/libvpx/vp8/encoder/treewriter.h
index c02683a..4e9ed6a 100644
--- a/libvpx/vp8/encoder/treewriter.h
+++ b/libvpx/vp8/encoder/treewriter.h
@@ -14,6 +14,8 @@
/* Trees map alphabets into huffman-like codes suitable for an arithmetic
bit coder. Timothy S Murphy 11 October 2004 */
+#include <stdint.h>
+
#include "./vpx_config.h"
#include "vp8/common/treecoder.h"
@@ -48,7 +50,9 @@
vp8_prob p) {
/* Imitate existing calculation */
- return ((ct[0] * vp8_cost_zero(p)) + (ct[1] * vp8_cost_one(p))) >> 8;
+ return (unsigned int)(((((uint64_t)ct[0]) * vp8_cost_zero(p)) +
+ (((uint64_t)ct[1]) * vp8_cost_one(p))) >>
+ 8);
}
/* Small functions to write explicit values and tokens, as well as